{"version":3,"file":"warpview-editor.mjs","sources":["../../../projects/warpview-editor-ng/src/lib/model/utils.ts","../../../projects/warpview-editor-ng/src/lib/model/config.ts","../../../projects/warpview-editor-ng/src/lib/model/logger.ts","../../../projects/warpview-editor-ng/src/lib/model/bubblingEvent.ts","../../../projects/warpview-editor-ng/src/lib/model/ref.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/W10CompletionItemProvider.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/editorUtils.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/WSCompletionItemProvider.ts","../../../projects/warpview-editor-ng/src/lib/model/monarch.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/WSLanguageConfiguration.ts","../../../projects/warpview-editor-ng/src/lib/model/wsGlobals.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/W10HoverProvider.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/WSHoverProvider.ts","../../../projects/warpview-editor-ng/src/lib/model/refFLows.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/FLoWSCompletionItemProvider.ts","../../../projects/warpview-editor-ng/src/lib/model/flowsGlobals.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/FLoWSHoverProvider.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/FLoWSLanguageConfiguration.ts","../../../projects/warpview-editor-ng/src/lib/model/monarchFlows.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/ProviderRegistrar.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/events-comments-reducers.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/providers/CodeReview.ts","../../../projects/warpview-editor-ng/src/lib/model/warpScriptParser.ts","../../../projects/warpview-editor-ng/src/lib/model/jsonLib.ts","../../../projects/warpview-editor-ng/src/lib/model/gts.lib.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-result/warp-view-result.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-result/warp-view-result.html","../../../projects/warpview-editor-ng/src/lib/model/editorConfig.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-raw-result/warp-view-raw-result.component.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-raw-result/warp-view-raw-result.component.html","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-image-result/warp-view-image-result.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-image-result/warp-view-image-result.html","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/warp-view-editor.component.ts","../../../projects/warpview-editor-ng/src/lib/elements/warp-view-editor/warp-view-editor.component.html","../../../projects/warpview-editor-ng/src/lib/warp-view-editor-angular.module.ts","../../../projects/warpview-editor-ng/src/lib/model/buttonConfig.ts","../../../projects/warpview-editor-ng/public-api.ts","../../../projects/warpview-editor-ng/warpview-editor.ts"],"sourcesContent":["/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nexport class Utils {\n\n  static mergeDeep(...sources: any[]): any {\n    // Variables\n    const extended = {};\n    const deep = true;\n    let i = 0;\n    // Merge the object into the extended object\n    // Loop through each object and conduct a merge\n    for (; i < sources.length; i++) {\n      const obj = sources[i];\n      Utils.merge(obj, extended, deep);\n    }\n\n    return extended;\n  }\n\n  static merge(obj: any, extended: any, deep: boolean) {\n    for (const prop in obj) {\n      if (obj.hasOwnProperty(prop)) {\n        // If property is an object, merge properties\n        if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n          extended[prop] = Utils.mergeDeep(extended[prop], obj[prop]);\n        } else {\n          extended[prop] = obj[prop];\n        }\n      }\n    }\n  }\n\n  static toArray(obj: any): any[] {\n    const arr = [];\n    Object.keys(obj).forEach(k => arr.push(obj[k]));\n    return arr;\n  }\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {ButtonConfig} from './buttonConfig';\nimport {EditorConfig} from './editorConfig';\n\nexport class Config {\n  buttons?: ButtonConfig = {\n    class: ''\n  };\n  execButton?: ButtonConfig = {\n    class: '',\n    label: 'Execute'\n  };\n  datavizButton?: ButtonConfig = {\n    class: '',\n    label: 'Visualize'\n  };\n  hover? = true;\n  readOnly? = false;\n  messageClass? = '';\n  errorClass? = '';\n  addLocalHeader? = false;\n  httpHeaders?: { [key: string]: string; };\n  editor: EditorConfig = {\n    quickSuggestionsDelay: 10,\n    quickSuggestions: true,\n    tabSize: 2,\n    minLineNumber: 10,\n    enableDebug: false,\n    rawResultsReadOnly: false,\n  };\n  snippets?: { [key: string]: any; };\n  codeReview?: {\n    enabled: boolean,\n    readonly?: boolean,\n    currentUser?: string,\n    cancelButton?: ButtonConfig,\n    addButton?: ButtonConfig,\n    replyButton?: ButtonConfig,\n    removeButton?: ButtonConfig,\n    editButton?: ButtonConfig\n  } = {\n    enabled: false,\n    readonly: false,\n    cancelButton: {\n      class: '',\n      label: 'Cancel'\n    },\n    addButton: {\n      class: '',\n      label: 'Add comment'\n    },\n    replyButton: {\n      label: 'Reply'\n    },\n    removeButton: {\n      label: 'Remove'\n    },\n    editButton: {\n      label: 'Edit'\n    }\n  };\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nexport class Logger {\n\n  className: string;\n  isDebug = false;\n\n  constructor(className: any, isDebug: boolean = false) {\n    this.className = className.name;\n    this.isDebug = isDebug;\n  }\n\n  setDebug(debug: boolean) {\n    this.isDebug = debug;\n  }\n\n  log(level: LEVEL, methods: any[], args: any[]) {\n    let logChain = [];\n    logChain.push(`[${this.className}] ${methods.join(' - ')}`);\n    logChain = logChain.concat(args);\n    switch (level) {\n      case LEVEL.DEBUG: {\n        if (this.isDebug) {\n          // tslint:disable-next-line:no-console\n          console.debug(...logChain);\n        }\n        break;\n      }\n      case LEVEL.ERROR: {\n        console.error(...logChain);\n        break;\n      }\n      case LEVEL.INFO: {\n        console.log(...logChain);\n        break;\n      }\n      case LEVEL.WARN: {\n        console.warn(...logChain);\n        break;\n      }\n      default: {\n        if (this.isDebug) {\n          console.log(...logChain);\n        }\n      }\n    }\n  }\n\n  debug(methods: any[], ...args: any[]) {\n    this.log(LEVEL.DEBUG, methods, args);\n  }\n\n  error(methods: any[], ...args: any[]) {\n    this.log(LEVEL.ERROR, methods, args);\n  }\n\n  warn(methods: any[], ...args: any[]) {\n    this.log(LEVEL.WARN, methods, args);\n  }\n\n  info(methods: any[], ...args: any[]) {\n    this.log(LEVEL.INFO, methods, args);\n  }\n}\n\n/**\n *\n */\nexport enum LEVEL {\n  DEBUG, ERROR, WARN, INFO\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {ElementRef} from '@angular/core';\n\n\nexport class BubblingEvents {\n\n  /**\n   * Angular provides support for custom events via Output properties and the EventEmitter. Unlike DOM events Angular custom events do not bubble.\n   * see : http://blog.davidjs.com/2018/02/angular-custom-event-bubbling/\n   * This class allow to create events that can bubble up outside angular element webcomponents\n   */\n  static emitBubblingEvent(el: ElementRef, eventname: string, eventdetail?: any) {\n    el.nativeElement.dispatchEvent(new CustomEvent(eventname, { bubbles: true, detail: eventdetail, composed: true }));\n  }\n\n}\n","export class WarpScript {\n  static reference:any[] = [{\"name\":\"!\",\"detail\":\"input<BOOLEAN>  !  result<BOOLEAN>\\ngtsinput<GTS>  !  gtsresult<GTS>\",\"documentation\":\"Negates a boolean.\\n\\nThe `!` function is synonymous for [`NOT`](/doc/NOT). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nSince Warp 10™ 2.1, `!` can be applied on a boolean GTS to flip all values.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gtsinput` Since 2.1, a GTS with boolean value.\\n\\n@param `gtsresult` Since 2.1, a GTS with negated boolean value. GTS is not sorted by the operation. Metadata are kept.\\n\\n\",\"tags\":[\"logic\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7F\"},{\"name\":\"!=\",\"detail\":\"p1<ANY> p2<ANY>  !=  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  !=  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  !=  outgts<GTS>\\ngts1<GTS> gts2<GTS>  !=  outputgts<GTS>\",\"documentation\":\"Tests if both parameters are different.\\n\\nThe `!=` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are different, false otherwise.\\n\\nThe two parameters must be homogeneous of numeric, boolean or string types.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `!=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 !=` is strictly equivalent of a `42 mapper.ne` MAP operation, with a simplified syntax.\\n\\n@param `p1` First parameter to compare, anything except a GTS.\\n\\n@param `p2` Second parameter to compare, anything except a GTS.\\n\\n@param `result` True if p1 and p2 are different, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values different from constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is different from gts2 value.\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7Io\"},{\"name\":\"%\",\"detail\":\"divisor<LONG> dividend<LONG>  %  modulo<LONG>\\ndivisor<DOUBLE> dividend<LONG>  %  modulo<DOUBLE>\\ndivisor<LONG> dividend<DOUBLE>  %  modulo<DOUBLE>\\ndivisor<DOUBLE> dividend<DOUBLE>  %  modulo<DOUBLE>\\ndivisor<COUNTER> dividend<COUNTER>  %  modulo<LONG>\\ndivisor<DOUBLE> dividend<COUNTER>  %  modulo<DOUBLE>\\ndivisor<COUNTER> dividend<DOUBLE>  %  modulo<DOUBLE>\\ndivisor<LONG> dividend<COUNTER>  %  modulo<LONG>\\ndivisor<COUNTER> dividend<LONG>  %  modulo<LONG>\",\"documentation\":\"The `%` operator consumes two parameters from the top of the stack and pushes back the remainder of the Euclidean division of the first one by the second one.\\n\\nThe two parameters must be of numeric types.\\n\\n@param `dividend` Number divided by divisor\\n\\n@param `divisor` Number used to divide dividend\\n\\n@param `modulo` Modulo of the two given parameters\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"8F\"},{\"name\":\"&\",\"detail\":\"p1<LONG> p2<LONG>  &  result<LONG>\\ninputgts<GTS> mask<LONG>  &  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  &  outputgts<GTS>\",\"documentation\":\"Performs a bitwise **AND** operation.\\n\\nThe `&` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **AND**.\\n\\nSince Warp 10™ 2.1, `&` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be AND to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with AND between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts AND with mask\\n\\n\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"8V\"},{\"name\":\"&&\",\"detail\":\"p1<BOOLEAN> p2<BOOLEAN>  &&  result<BOOLEAN>\\nl<LIST>  &&  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  &&  gtsresult<GTS>\",\"documentation\":\"The `&&` operator is a synonymous for [`AND`](/doc/AND).\\n\\nIt performs a logical **&&** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `&&` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical && applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with && between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"8XN\"},{\"name\":\"(\",\"detail\":\" (  mark<MARK>\",\"documentation\":\"Starts a set creation.\\n\\nThe `(` function creates a set by pushing a mark onto the stack. This is a syntactic help to better present set constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9.\"},{\"name\":\"()\",\"detail\":\"content<ANY>  ()  newset<SET>\",\"documentation\":\"The `()` function creates an empty SET on the top of the stack.\\nA Set is a collection that cannot contain duplicate elements.\\n\\nThis is an implementation of java [HashSet](https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html). NULL object is permitted. It makes no guarantees as to the iteration order of the set.\\n\\nThe SET object could not be represented on the stack.\\nIt has to be converted in a list to be displayed.\\n\\nStoring GTS into sets do not guarantee uniqueness. each GTS has a hidden id. see example.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newset` set instance, initialized with content.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"91Z\"},{\"name\":\")\",\"detail\":\"mark<MARK> v1<ANY> vN<ANY>  )  set<SET>\",\"documentation\":\"Closes a currently open set and pushes it onto the stack.\\n\\nThe `)` function pops from the stack the elements of the set up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `set` The built set\\n\\n@param `mark` The mark indicating the deepest level to consider when building the set\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9F\"},{\"name\":\"*\",\"detail\":\"p1<NUMBER> p2<NUMBER>  *  result<NUMBER>\\np1<VECTOR> p2<NUMBER>  *  result<VECTOR>\\np1<NUMBER> p2<VECTOR>  *  result<VECTOR>\\np1<MATRIX> p2<NUMBER>  *  result<MATRIX>\\np1<NUMBER> p2<MATRIX>  *  result<MATRIX>\\np1<MATRIX> p2<VECTOR>  *  result<VECTOR>\\np1<VECTOR> p2<MATRIX>  *  result<VECTOR>\\np1<MATRIX> p2<MATRIX>  *  result<VECTOR>\\np2<GTS> p1<GTS>  *  result<GTS>\\np2<GTS> p1<NUMBER>  *  result<GTS>\\np2<NUMBER> p1<GTS>  *  result<GTS>\",\"documentation\":\"The `*` operator consumes two parameters from the top of the stack and pushes back the result of multiplying both of them.\\n\\nIf you want to multiply two matrices together, they have to be of the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Multiplication result\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"9V\"},{\"name\":\"**\",\"detail\":\"b<LONG> n<LONG>  **  result<LONG>\\nb<DOUBLE> n<LONG>  **  result<DOUBLE>\\nb<LONG> n<DOUBLE>  **  result<DOUBLE>\\nb<DOUBLE> n<DOUBLE>  **  result<DOUBLE>\\nb<COUNTER> n<COUNTER>  **  result<LONG>\\nb<DOUBLE> n<COUNTER>  **  result<DOUBLE>\\nb<COUNTER> n<DOUBLE>  **  result<DOUBLE>\\nb<COUNTER> n<LONG>  **  result<LONG>\\nb<LONG> n<COUNTER>  **  result<LONG>\\nbgts<GTS> n<NUMBER>  **  outgts<GTS>\\nb<NUMBER> ngts<GTS>  **  outgts<GTS>\\nbgts<GTS> ngts<GTS>  **  outgts<GTS>\\nblist<LIST> n<NUMBER>  **  outlist<LIST>\\nb<NUMBER> nlist<LIST>  **  outlist<LIST>\\nbgts<GTS> n<NUMBER>  **  outgts<GTS>\\nb<NUMBER> ngts<GTS>  **  outgts<GTS>\",\"documentation\":\"Returns the value of the first argument raised to the power of the second argument.\\n\\nThe `**` operator consumes two parameters from the top of the stack (a base **b** and an exponent **n**) and pushes back the result raising b to the power of n,\\ni.e. b<sup>n</sup>. For special cases see [pow()](https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#pow-double-double- \\\"javadoc\\\").\\n\\nSince 2.7.1, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nAlso since 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `b` First parameter, the base\\n\\n@param `n` Second parameter, the exponent\\n\\n@param `blist` List of bases\\n\\n@param `nlist` List of exponents\\n\\n@param `bgts` Numerical GTS of bases\\n\\n@param `ngts` Numerical GTS of exponents\\n\\n@param `result` The result of b<sup>n</sup>\\n\\n@param `outlist` List of b<sup>n</sup>\\n\\n@param `outgts` GTS of b<sup>n</sup>\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9Xc\"},{\"name\":\"+\",\"detail\":\"param1<STRING> param2<STRING>  +  result<STRING>\\nparam1<LONG> param2<LONG>  +  result<LONG>\\nparam1<DOUBLE> param2<LONG>  +  result<DOUBLE>\\nparam1<COUNTER> param2<LONG>  +  result<LONG>\\nparam1<LONG> param2<DOUBLE>  +  result<DOUBLE>\\nparam1<DOUBLE> param2<DOUBLE>  +  result<DOUBLE>\\nparam1<COUNTER> param2<DOUBLE>  +  result<DOUBLE>\\nparam1<COUNTER> param2<COUNTER>  +  result<LONG>\\nparam1<DOUBLE> param2<COUNTER>  +  result<DOUBLE>\\nparam1<LONG> param2<COUNTER>  +  result<LONG>\\nparam1<LIST> param2<ANY>  +  result<LIST>\\nparam1<SET> param2<ANY>  +  result<SET>\\nparam1<VECTOR> param2<NUMBER>  +  result<VECTOR>\\nparam1<NUMBER> param2<VECTOR>  +  result<VECTOR>\\nparam1<VECTOR> param2<VECTOR>  +  result<VECTOR>\\nparam1<MACRO> param2<MACRO>  +  result<MACRO>\\nparam1<MATRIX> param2<NUMBER>  +  result<MATRIX>\\nparam1<NUMBER> param2<MATRIX>  +  result<MATRIX>\\nparam1<MATRIX> param2<MATRIX>  +  result<MATRIX>\\nparam2<GTS> param1<GTS>  +  result<GTS>\\nparam2<GTS> param1<DOUBLE>  +  result<GTS>\\nparam2<GTS> param1<LONG>  +  result<GTS>\\nparam2<GTS> param1<STRING>  +  result<GTS>\\nparam2<DOUBLE> param1<GTS>  +  result<GTS>\\nparam2<LONG> param1<GTS>  +  result<GTS>\\nparam2<STRING> param1<GTS>  +  result<GTS>\\nparam1<BYTES> param2<BYTES>  +  result<BYTES>\",\"documentation\":\"The `+` operator consumes two parameters from the top of the stack and pushes back the result of adding them.\\n\\nThe meaning of adding depends on the type of parameter:\\n\\n- If both parameters are numbers, the result is the sum of both numbers.\\n\\n- If both parameters are strings, the result is the concatenation of both strings.\\n- If both parameters are byte arrays, the result is the concatenation of both byte arrays (version 2.1+).\\n\\n- If the first parameter is a list, the + operator clones the list and appends the second parameter to the cloned list.\\n\\n- If the first parameter is a set, the + operator clones the set and appends the second parameter to the cloned set.\\n\\n- If both parameters are macros, the result is a macro concatenating the two others in any other case + with throw an exception.\\n\\n- If the first parameter is a vector, the + operator adds the second numeric parameter to each element of the vector.\\n- If the second parameter is a vector, the + operator adds the first numeric parameter to each element of the vector.\\n- If both parameters are vectors, the + operator adds each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If the first parameter is a matrix, the + operator adds the second numeric parameter to each element of the matrix.\\n- If the second parameter is a matrix, the + operator adds the first numeric parameter to each element of the matrix.\\n- If both parameters are matrices, the + operator adds each element of matrices which are on the same index. Matrices must be the same size.\\n- If one of the parameters is a Geo Time Series™, the result will be a Geo Time Series™ of type DOUBLE.\\n\\n@param `param1` First parameter\\n\\n@param `param2` Second parameter\\n\\n@param `result` Result of the addition\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9k\"},{\"name\":\"+!\",\"detail\":\"input<LIST> item<ANY>  +!  output<LIST>\\ninput<SET> item<ANY>  +!  output<SET>\",\"documentation\":\"The +! operator adds the element on top of the stack to the set or list below it. \\nThe element is added to the existing collection. \\n\\n\\n@param `input` reference to the list or set to be modified\\n\\n@param `output` copy of input list or set reference.\\n\\n@param `item` the item to append to inputlist. Depending on list content, could be any type.\\n\\n\",\"tags\":[\"lists\",\"operators\"],\"since\":\"1.2.0\",\"OPB64name\":\"9m3\"},{\"name\":\"-\",\"detail\":\"p1<LONG> p2<LONG>  -  result<LONG>\\np1<LONG> p2<DOUBLE>  -  result<DOUBLE>\\np1<DOUBLE> p2<LONG>  -  result<DOUBLE>\\np1<DOUBLE> p2<DOUBLE>  -  result<DOUBLE>\\np1<COUNTER> p2<COUNTER>  -  result<LONG>\\np1<COUNTER> p2<DOUBLE>  -  result<DOUBLE>\\np1<DOUBLE> p2<COUNTER>  -  result<DOUBLE>\\np1<LONG> p2<COUNTER>  -  result<LONG>\\np1<COUNTER> p2<LONG>  -  result<LONG>\\np1<MATRIX> p2<MATRIX>  -  result<MATRIX>\\np1<VECTOR> p2<VECTOR>  -  result<VECTOR>\\np2<GTS> p1<GTS>  -  result<GTS>\\np2<GTS> p1<NUMBER>  -  result<GTS>\\np2<NUMBER> p1<GTS>  -  result<GTS>\",\"documentation\":\"Subtracts two parameters.\\n\\nThe `-` operator consumes two parameters from the top of the stack and pushes back the result of subtracting the second one from the first one.\\n\\n- If both parameters are numbers, the result is the subtraction of both numbers.\\n\\n- If both parameters are vectors, the - operator subtracts each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If both parameters are matrices, the - operator subtracts each element of matrices which are on the same index. Matrices must be the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Subtraction result\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"AF\"},{\"name\":\"->B58\",\"detail\":\"input<STRING>  ->B58  result<STRING>\\ninput<BYTES>  ->B58  result<STRING>\",\"documentation\":\"Encodes the string on top of the stack in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58 encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIV\"},{\"name\":\"->B58C\",\"detail\":\"input<STRING> prefix<BYTES>  ->B58C  result<STRING>\\ninput<BYTES> prefix<BYTES>  ->B58C  result<STRING>\",\"documentation\":\"Encodes the string on top of the stack in [Base58Check](https://en.bitcoin.it/wiki/Base58Check_encoding).\\n\\n@param `prefix` Prefix to use for Base58Check encoding\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58Check encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIW2\"},{\"name\":\"->B64\",\"detail\":\"input<STRING>  ->B64  result<STRING>\\ninput<BYTES>  ->B64  result<STRING>\",\"documentation\":\"Encodes the string on top of the stack in [base64](https://en.wikipedia.org/wiki/Base64).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base64 encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYF\"},{\"name\":\"->B64URL\",\"detail\":\"input<STRING>  ->B64URL  result<STRING>\\nbytes<BYTES>  ->B64URL  result<STRING>\",\"documentation\":\"Encodes the string on top of the stack in [base64url](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).\\n\\n@param `input` String to encode\\n\\n@param `bytes` Byte array to encode\\n\\n@param `result` Base64url encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYGKJZk\"},{\"name\":\"->BIN\",\"detail\":\"input<STRING>  ->BIN  output<STRING>\\ninput<BYTES>  ->BIN  output<STRING>\\ninput<LONG>  ->BIN  output<STRING>\\ninput<BITSET>  ->BIN  output<STRING>\",\"documentation\":\"The ->BIN function converts the byte array or the string on top of the stack \\nto its binary representation.\\n\\nSince the 2.8.0 version, it also converts a **LONG** to its 64 bits binary representation. Thus, this function and [TOBIN](/doc/TOBIN) are equivalent.\\n\\nApplied on a string, `->BIN` replaces ` 'utf-8' ->BYTES ->BIN `\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that. \\n\\n@param `input` Any string or byte array.\\n\\n@param `output` Binary representation of the input.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1HJs\"},{\"name\":\"->BYTES\",\"detail\":\"input<STRING> charset<STRING>  ->BYTES  output<BYTES>\",\"documentation\":\"->BYTES function converts a string into a bytes array given a charset\\nand put the result on top of the stack.\\n\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\nBytes array cannot be represented on the stack.\\n\\n\\n@param `input` String input.\\n\\n@param `charset` Charset to use.\\n\\n@param `output` Byte array representation of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1LKG4Jk\"},{\"name\":\"->DOUBLEBITS\",\"detail\":\"number<NUMBER>  ->DOUBLEBITS  bits<LONG>\\ngts<GTS>  ->DOUBLEBITS  longgts<GTS>\",\"documentation\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"tags\":[\"math\",\"gts\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt3IpK1I3K1HKGI\"},{\"name\":\"->ENCODER\",\"detail\":\"elements<LIST>  ->ENCODER  output<GTSENCODER>\\nlgts<LIST<GTS>>  ->ENCODER  output<GTSENCODER>\\nlwrappedgts<LIST<STRING>>  ->ENCODER  output<GTSENCODER>\\nlrawwrappedgts<LIST<BYTES>>  ->ENCODER  output<GTSENCODER>\",\"documentation\":\"The `->ENCODER` function takes a list of points and encode them in a single encoder. Each point is a list of ( timestamp, latitude, longitude, elevation, value ). Since 2.1.1, a point can also be a Geo Time Series™ or a wrapped one. In that case all the points of the Geo Time Series™ are added to the encoder.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `elements` List of list of ( timestamp, latitude, longitude, elevation, value ). See example to see which element(s) can be omitted.\\n\\n@param `lgts` A list of Geo Time Series™ instances.\\n\\n@param `lwrappedgts` A list of wrapped Geo Time Series™ instances, such as produced by [`WRAP`](/doc/WRAP).\\n\\n@param `lrawwrappedgts` A list of raw wrapped Geo Time Series™ instances, such as produced by [`WRAPRAW`](/doc/WRAPRAW).\\n\\n@param `output` Encoder\\n\\n\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt4IZCEG3KH\"},{\"name\":\"->ENCODERS\",\"detail\":\"encoder<GTSENCODER>  ->ENCODERS  output<MAP>\\nwrappedencoder<STRING>  ->ENCODERS  output<MAP>\\nrawwrappedencoder<BYTES>  ->ENCODERS  output<MAP>\",\"documentation\":\"The `->ENCODERS` function converts an encoder into one encoder per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content, when a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AIt4IZCEG3KHJk\"},{\"name\":\"->FLOATBITS\",\"detail\":\"input<NUMBER>  ->FLOATBITS  result<LONG>\",\"documentation\":\"Converts a numeric value to a **FLOAT** then to a **LONG** value of the raw bits of its representation.\\n\\nOnly the lower 32 bits of the **LONG** value are significant.\\n\\n@param `input` Double to convert\\n\\n@param `result` Raw bits representation\\n\\n\",\"tags\":[\"math\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt5I3x0K388K4B\"},{\"name\":\"->GEOCELL\",\"detail\":\"hhPrefixS<STRING>  ->GEOCELL  geocell<LONG>\\nhhPrefixB<BYTES>  ->GEOCELL  geocell<LONG>\",\"documentation\":\"The `->GEOCELL` function converts a **STRING** or a **BYTES** HHCode prefix to a **LONG** geocell. The length of the input implicitly specifies the resolution of the cell.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `hhPrefixS` A HHCode prefix representing a cell. Resolution is twice the length of the **STRING**.\\n\\n@param `hhPrefixB` A HHCode prefix representing a cell. Resolution is four times the length of the **BYTES**.\\n\\n@param `geocell` The geocell representation.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJx2GJlB\"},{\"name\":\"->GEOHASH\",\"detail\":\"lat<DOUBLE> lon<DOUBLE>  ->GEOHASH  geohash<STRING>\\nhhcode<LONG>  ->GEOHASH  geohash<STRING>\\nshape<GEOSHAPE>  ->GEOHASH  geohashes<LIST<STRING>>\",\"documentation\":\"The `->GEOHASH` function packs a latitude and a longitude into a STRING [Geohash](https://en.wikipedia.org/wiki/Geohash), converts a [HHCode](https://en.wikipedia.org/wiki/HHCode) into its Geohash counterpart, or converts a `GEOSHAPE` into a list of Geohashes covering the same geographical area.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `geohash` Geohash string packing the specified latitude and longitude.\\n\\n@param `hhcode` HHCode to transform.\\n\\n@param `shape` `GEOSHAPE` to convert.\\n\\n@param `geohashes` List of Geohashes covering the same area as `shape`.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt6GJx7FKC7\"},{\"name\":\"->GEOJSON\",\"detail\":\"shape<GEOSHAPE>  ->GEOJSON  geojson<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->GEOJSON  geojson<STRING>\\nwkt_kml_gml<STRING>  ->GEOJSON  geojson<STRING>\\nwkb<BYTES>  ->GEOJSON  geojson<STRING>\",\"documentation\":\"The `->WKB` function converts a WKT **STRING**, WKB **BYTES**, a GML **STRING, a KML **STRING** or a **SHAPE** to a GeoJSON **STRING**.\\n\\nThe resulting GeoJSON is a string representing a MultiPolygon geometry. By default, it defines the boundaries of the covered areas and any holes it these areas, if any.\\n\\nIt is also possible for this function to return a GeoJSON representing all the cells in the GeoShape.\\n\\n GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson` The resulting GeoJSON.\\n\\n@param `wkt_kml_gml` A WKT, KML or GML string\\n\\n@param `wkb` WKB bytes\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.1\",\"OPB64name\":\"AIt6GJx9JoxD\"},{\"name\":\"->GEOSHAPE\",\"detail\":\"geocells<LIST<LONG>>  ->GEOSHAPE  geoshape<GEOSHAPE>\\nhhPrefixesS<LIST<STRING>>  ->GEOSHAPE  geoshape<GEOSHAPE>\\nhhPrefixesB<LIST<BYTES>>  ->GEOSHAPE  geoshape<GEOSHAPE>\",\"documentation\":\"The `->GEOSHAPE` function converts a list of **LONG** geocells or HHCode prefixes (**STRING** or **BYTES**) to a **GEOSHAPE**.\\n\\n@param `geocells` List of geocells, as **LONGs**.\\n\\n@param `hhPrefixesS` List of HHCode prefixes, as **STRINGs**.\\n\\n@param `hhPrefixesB` List of HHCode prefixes, as **BYTESs**.\\n\\n@param `geoshape` The resulting **GEOSHAPE**.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJxIH34FGF\"},{\"name\":\"->GML\",\"detail\":\"shape<GEOSHAPE>  ->GML  gml<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->GML  gml<STRING>\\ngeojson_wkt_kml<STRING>  ->GML  gml<STRING>\\nwkb<BYTES>  ->GML  gml<STRING>\",\"documentation\":\"The `->GML` function converts a GeoJSON **STRING**, a WKT **STRING**, WKB **BYTES**, a KML **STRING** or a **SHAPE** to a GML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml` A GeoJSON, WKT or KML string.\\n\\n@param `gml` The resulting GML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AIt6IJk\"},{\"name\":\"->GTS\",\"detail\":\"encoder<GTSENCODER>  ->GTS  output<MAP>\\nwrappedencoder<STRING>  ->GTS  output<MAP>\\nrawwrappedencoder<BYTES>  ->GTS  output<MAP>\\nlencoder<LIST<GTSENCODER>>  ->GTS  loutput<MAP>\\nlwrappedencoder<LIST<STRING>>  ->GTS  loutput<MAP>\\nlrawwrappedencoder<LIST<BYTES>>  ->GTS  loutput<MAP>\\nencoder<GTSENCODER> conversionmap<MAP>  ->GTS  conversionoutput<GTS>\\nwrappedencoder<STRING> conversionmap<MAP>  ->GTS  conversionoutput<GTS>\\nrawwrappedencoder<BYTES> conversionmap<MAP>  ->GTS  conversionoutput<GTS>\\nlencoder<LIST<GTSENCODER>> conversionmap<MAP>  ->GTS  conversionoutput<LIST<GTS>>\\nlwrappedencoder<LIST<STRING>> conversionmap<MAP>  ->GTS  conversionoutput<LIST<GTS>>\\nlrawwrappedencoder<LIST<BYTES>> conversionmap<MAP>  ->GTS  conversionoutput<LIST<GTS>>\",\"documentation\":\"The `->GTS` function converts an encoder into one GTS per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\n###### Since 2.4.0:\\n- `->GTS` function can also take a conversion MAP input. Using this conversion MAP, the output is always a list of GTS.\\n- The conversion map can also take a list of selectors for each output type.\\n- The conversion map can be empty: In this case, the GTS type is enforced by the type of the first element in the encoder input.\\n- The first selector match stops the research. It means key order matters. See Examples.\\n- A new '.type' label is added to each output GTS. This could be overridden with the 'label.type' parameter of the conversion MAP.\\n- `->GTS` function can handle encoders, or list of encoders.\\n\\n###### What is an encoder ?\\nA Geo Time Series™ is limited to the type of the first value stored.\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content.\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder. Values are GTS.\\n\\n@param `lencoder` List of encoders input (supported since 2.4.0).\\n\\n@param `lwrappedencoder` List of encoders after WRAP (supported since 2.4.0).\\n\\n@param `lrawwrappedencoder` List of encoders after WRAPRAW (supported since 2.4.0).\\n\\n@param `loutput` Map with a key/value per type encountered in the input encoder. Values are a list of GTS.\\n\\n@param `conversionmap` Map with type as keys, selectors or list of selectors as values. The special key `label.type` allow to change the default `.type` label. Set `label.type` to NULL to avoid any new label. The conversion map could be empty.\\n\\n@param `conversionoutput` A GTS, or a list of GTS.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt6K4B\"},{\"name\":\"->GTSHHCODE\",\"detail\":\"lat<NUMBER> lon<NUMBER>  ->GTSHHCODE  hhcode<STRING>\",\"documentation\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3J\"},{\"name\":\"->GTSHHCODELONG\",\"detail\":\"lat<NUMBER> lon<NUMBER>  ->GTSHHCODELONG  hhcode<STRING>\",\"documentation\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3KBIot6\"},{\"name\":\"->HEX\",\"detail\":\"input<STRING>  ->HEX  output<STRING>\\ninput<BYTES>  ->HEX  output<STRING>\\ninput<LONG>  ->HEX  output<STRING>\",\"documentation\":\"The `->HEX` function decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV).\\n\\nApplied on a string, `->HEX` replaces `'utf-8' ->BYTES ->HEX`\\n\\nSince 2.8.0 this function also converts a long to its 64 bits hexadecimal representation. Thus this function is equivalent to [TOHEX](/doc/TOHEX).\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that.\\n\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Decoded string of input, assuming utf-8 encoding of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt7GKV\"},{\"name\":\"->HHCODE\",\"detail\":\"lat<NUMBER> lon<NUMBER>  ->HHCODE  hhcode<STRING>\",\"documentation\":\"The `->HHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt7H3CEG3J\"},{\"name\":\"->HHCODELONG\",\"detail\":\"lat<NUMBER> lon<NUMBER>  ->HHCODELONG  hhcode<LONG>\",\"documentation\":\"The `->HHCODELONG` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.5\",\"OPB64name\":\"AIt7H3CEG3KBIot6\"},{\"name\":\"->JSON\",\"detail\":\"object<ANY>  ->JSON  output<STRING>\",\"documentation\":\"The `->JSON` functions serialize structures containing numbers, strings, booleans, lists, vlists and maps which do not reference the same list/map multiple times.\\n\\n@param `object` Object to serialize\\n\\n@param `output` JSON formatted string\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt9JoxD\"},{\"name\":\"->KML\",\"detail\":\"shape<GEOSHAPE>  ->KML  kml<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->KML  kml<STRING>\\ngeojson_wkt_gml<STRING>  ->KML  kml<STRING>\\nwkb<BYTES>  ->KML  kml<STRING>\",\"documentation\":\"The `->KML` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, WKB **BYTES** or a **SHAPE** to a KML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_gml` A GeoJSON, WKT or GML string.\\n\\n@param `kml` The resulting KML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AItAIJk\"},{\"name\":\"->LIST\",\"detail\":\"content<ANY*> N<LONG>  ->LIST  newlist<LIST>\",\"documentation\":\"The `->LIST` function create a list from N elements on the stack.\\nN and the N next elements on the stack are consumed.\\n\\nIf N is greater than current stack depth, the function raises an error.\\n\\n@param `N` The number of elements to take on the top of the stack to build the list.\\n\\n@param `newlist` The list of N elements. [deepest in stack ... TOP-1 ]\\n\\n@param `content` 0 to n elements\\n\\n\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItBHKCJ\"},{\"name\":\"->LONGBYTES\",\"detail\":\"number<LONG> nbbytes<LONG>  ->LONGBYTES  output<BYTES>\\nnumberList<LIST<LONG>> nbbytes<LONG>  ->LONGBYTES  output<BYTES>\",\"documentation\":\"`->LONGBYTES` converts a LONG to a byte array. It expects a number of bytes on the top of the stack.\\n\\nSince Warp 10™ 2.1, `->LONGBYTES` can also convert a list of LONG.\\n\\n@param `nbbytes` Number of bytes for number conversion: nbbytes could be 1 to 8. If less than 8, most significant bytes will be truncated.\\n\\n@param `number` must be a LONG\\n\\n@param `output` byte array, from 1 to 8 bytes per number\\n\\n@param `numberList` Since Warp 10 2.1, a list of LONG\\n\\n\",\"tags\":[\"binary\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItBIot6F__JGKB\"},{\"name\":\"->MACRO\",\"detail\":\"statements<LIST>  ->MACRO  macro<MACRO>\",\"documentation\":\"The `->MACRO->` creates a `MACRO` from a `LIST` of statements such as the ones created by `MACRO->`.\\n\\n@param `macro` `MACRO` containing the statements from `statements`.\\n\\n@param `statements` List of statements.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItCFJCHIk\"},{\"name\":\"->MAP\",\"detail\":\"content<ANY*> N<LONG>  ->MAP  newmap<MAP>\",\"documentation\":\"The ->MAP function creates a MAP from an even number N of elements on the stack. \\nN is consumed off the top of the stack. For each pair, the deepest element is the key, the shallowest is the value.\\n\\n\\n@param `content` 0 to n pairs of key-value elements. Keys must be different.\\n\\n@param `N` Number of content elements to consume on the stack. It must be even.\\n\\n@param `newmap` map instance, initialized with content.\\n\\n\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItCFK.\"},{\"name\":\"->MAT\",\"detail\":\"[ input<LIST> ]  ->MAT  result<MATRIX>\",\"documentation\":\"The `->MAT` function converts nested lists of numbers (2D array with same number of columns) into a Matrix.\\n\\nMATRIX objects cannot be represented on the stack. \\n\\nMatrix entries must be numbers.\\n\\n\\n@param `input` List of lists of values\\n\\n@param `result` A MATRIX object\\n\\n\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItCFKF\"},{\"name\":\"->MVSTRING\",\"detail\":\"input<STRING>  ->MVSTRING  mvstring<STRING>\\ninput<BYTES>  ->MVSTRING  mvstring<STRING>\\ninput<GTS>  ->MVSTRING  mvstring<STRING>\\ninput<GTSENCODER>  ->MVSTRING  mvstring<STRING>\",\"documentation\":\"The `->MVSTRING` function generates a STRING representation of an ENCODER in the format expected by the `/update` endpoint for multi values.\\n\\nWhen encountering a binary element, the function attempts to interpret it as a wrapped encoder, if that fails then it will output the element as a binary (`b64:...`) value.\\n\\n@param `input` Wrapped or unwrapped Geo Time Series™ or ENCODER.\\n\\n@param `mvstring` MultiValue format representation of the wrapped encoder/GTS.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItCK_CJJZ_DGk\"},{\"name\":\"->OPB64\",\"detail\":\"input<STRING>  ->OPB64  output<STRING>\\ninput<BYTES>  ->OPB64  output<STRING>\",\"documentation\":\"Encode a String in order preserving base64. OPB64 is a Base64 like encoding which preserves the lexicographic order of\\nthe original byte arrays in the encoded ones. This is useful to compare encoded byte arrays without having to first decode them.\\n\\n@param `input` Could be a string or a byte array.\\n\\n@param `output` OPB64 of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItEJ37qC.\"},{\"name\":\"->PICKLE\",\"detail\":\"input<ANY>  ->PICKLE  output<BYTES>\",\"documentation\":\"The `->PICKLE` function converts the object on top of the stack to a Python object and serializes it using Pickle protocol version 2.\\nThe conversion table used is as follow:\\n\\n| WarpScript | Python |\\n|------------|--------|\\n| NULL | None |\\n| BOOLEAN | bool |\\n| BYTES | bytearray |\\n| STRING | str/unicode |\\n| DOUBLE | float |\\n| LONG | int |\\n| LIST | list |\\n| MAP | dict |\\n| SET | set |\\n| GTS | dict |\\n| ENCODER | dict |\\n\\nOther types are unsupported.\\n\\nPython examples with `->PICKLE ->HEX` output:\\n\\n**Python2**\\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle\\n>>> pickle.loads(s.decode(\\\"hex\\\"))\\n[u'PICKLE', u'STRING', [5, 3.141592653589793]]\\n```\\n**Python3** \\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle, codecs\\n>>> pickle.loads(codecs.decode(s, \\\"hex\\\"))\\n['PICKLE', 'STRING', [5, 3.141592653589793]]\\n```\\n\\n@param `input` A serializable object\\n\\n@param `output` Pickle encoded content\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"AItFHJCAI3J\"},{\"name\":\"->Q\",\"detail\":\"w<DOUBLE> x<DOUBLE> y<DOUBLE> z<DOUBLE>  ->Q  result<LONG>\",\"documentation\":\"The `->Q` function consumes on the stack 4 doubles (w, x, y, z, with z being on top) representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion)\\nand push back quaternion representation into a **LONG**.\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `result` Quaternion representation\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItG\"},{\"name\":\"->RLP\",\"detail\":\"str<STRING>  ->RLP  encoded<BYTES>\\nbytes<BYTES>  ->RLP  encoded<BYTES>\\nlong<LONG>  ->RLP  encoded<BYTES>\\nlist<LIST>  ->RLP  encoded<BYTES>\",\"documentation\":\"The `->RLP` function converts an individual `LONG`, `STRING` or `BYTES` element or a list of elements (including lists) into a byte array using the [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoding.\\n\\n@param `str` `STRING` to encode. It will first be converted to `BYTES` using the `UTF-8` character set.\\n\\n@param `bytes` Byte array to encode.\\n\\n@param `long` `LONG` value to encode.\\n\\n@param `list` `LIST` to encode.\\n\\n@param `encoded` Result of encoding.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItHI4.\"},{\"name\":\"->SET\",\"detail\":\"input<LIST>  ->SET  newset<SET>\",\"documentation\":\"The -`>SET` function converts a **LIST** on top of the stack into a **SET**.\\n\\nSETs are not viewable, null will be return if it remains on the stack.\\n\\nThe order in the SET is not guaranteed, see [`()`](/doc/91Z).\\n\\n\\n@param `input` The input list\\n\\n@param `newset` The new set reference. SETs are not viewable, null remains on the stack.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItIGKF\"},{\"name\":\"->SSSS\",\"detail\":\"secret<BYTES> N<LONG> K<LONG> randomness<BOOLEAN>  ->SSSS  splits<LIST<BYTES>>\",\"documentation\":\"The `->SSSS` function splits a byte array into `N` shares so `K` of them can reconstruct the original byte array.\\n\\nThe splitting is done using a Shamir Secret Sharing Scheme as described in the [seminal paper](http://web.mit.edu/6.857/OldStuff/Fall03/ref/Shamir-HowToShareASecret.pdf) by [Adi Shamir](https://en.wikipedia.org/wiki/Adi_Shamir).\\n\\nThe principle is based on the fact that a polynomial `P` of degree `K-1` can be fully determined by `K` points (`X`,`Y`), where `Y = P(X)`. All computations are performed using arithmetic in the [Galois Field](https://en.wikipedia.org/wiki/Finite_field) [`GF(256)`](https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Finite_field_arithmetic) used for [QR/Code]() Reed Solomon error correction, its generator is `2` and its primitive polynomial `0x11D` (`x^8 + x^4 + x^3 + x^2 + 1`).\\n\\nFor each byte `B` to encode, a random polynomial `P` over `GF(256)` is chosen with the constraint that `P(0) = B`. Then `N` random values of `GF(256)` are selected and for each `X` such value, the two bytes `X` and `P(X)` are output to a share. If `X` was 0, a random value is emitted instead of `P(X)` and a new `X` value is selected. This is done to ensure the randomness of the output. It may therefore be possible that a split is longer than twice the size of the original input.\\n\\n@param `secret` Secret to split.\\n\\n@param `N` Number of splits to generated, minimum is 2, maximum is 255.\\n\\n@param `K` Number of splits needed to reconstruct `secret`, must be less or equal to `N`.\\n\\n@param `randomness` Flag indicating whether or not the byte pairs starting with `0x00` should be retained (`true`) or stripped (`false`). This parameter is optional.\\n\\n@param `splits` List of generated splits.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"AItIJpCI\"},{\"name\":\"->TSELEMENTS\",\"detail\":\"timestamp<LONG>  ->TSELEMENTS  dateAndTimeElements<LIST<LONG>>\\ntimestamp<LONG> timezone<STRING>  ->TSELEMENTS  dateAndTimeElements<LIST<LONG>>\",\"documentation\":\"The `->TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"AItJJoKBGJp4I_GI\"},{\"name\":\"->V\",\"detail\":\"list<LIST>  ->V  result<VLIST>\\nset<SET>  ->V  result<VLIST>\",\"documentation\":\"The `->V` function converts a list of objects into a Pig Vector (VLIST).\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `list` Input list\\n\\n@param `set` Input set\\n\\n@param `result` Result list\\n\\n\",\"tags\":[\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"AItL\"},{\"name\":\"->VARINT\",\"detail\":\"number<LONG>  ->VARINT  encoded<BYTES>\\nnumbers<LIST<LONG>>  ->VARINT  encoded<BYTES>\",\"documentation\":\"The `->VARINT` function encodes a `LONG` or a list of `LONG`s using [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoding. The result is a byte array containing the concatenation of the encoded numbers.\\n\\nThe `->VARINT` function is optimized for encoding unsigned `LONG`s, this means that negative numbers (with the most significant bit set to 1) will be encoded on 10 bytes. In order to reduce this footprint you can pre-process the numbers to encode so they are encoded using [ZigZag VarInt](https://developers.google.com/protocol-buffers/docs/encoding#types) encoding. The simple trick is to compute\\n\\n```\\n$value 1 << $value 63 >> ^\\n```\\n\\nthis will have the effect of alternatively encoding positive and negative numbers thus leading to a more efficient footprint for negative numbers.\\n\\nAt decoding time using `VARINT->`, simply undo the *Zig-Zag* trick:\\n\\n```\\n$unsigned 63 << 63 >> $unsigned ^ 1 >>\\n// Flip the top bit\\n$unsigned 1 63 << & ^\\n```\\n\\n@param `number` Single number to encode.\\n\\n@param `numbers` List of numbers to encode.\\n\\n@param `encoded` Byte array containing the encoded number(s).\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"AItLFK88I_F\"},{\"name\":\"->VEC\",\"detail\":\"list<LIST>  ->VEC  result<VECTOR>\\nmatrix<MATRIX>  ->VEC  result<VECTOR>\",\"documentation\":\"The `->VEC` function converts a list of numbers into a Vector.\\n\\nVectors objects cannot be represented on the stack. \\n\\nVectors entries must be numbers.\\n\\n@param `list` List to convert\\n\\n@param `matrix` Matrix with a single column\\n\\n@param `result` Vector\\n\\n\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItLGJB\"},{\"name\":\"->WKB\",\"detail\":\"shape<GEOSHAPE>  ->WKB  wkb<BYTES>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->WKB  wkb<BYTES>\\ngeojson_wkt_kml_gml<STRING>  ->WKB  wkb<BYTES>\",\"documentation\":\"The `->WKB` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, a KML **STRING** or a **SHAPE** to WKB **BYTES**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml_gml` A GeoJSON, WKT, KML or GML string.\\n\\n@param `wkb` The resulting WKB.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHo7\"},{\"name\":\"->WKT\",\"detail\":\"shape<GEOSHAPE>  ->WKT  wkt<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->WKT  wkt<STRING>\\ngeojson_kml_gml<STRING>  ->WKT  wkt<STRING>\\nwkb<BYTES>  ->WKT  wkt<STRING>\",\"documentation\":\"The `->WKT` function converts a GeoJSON **STRING**, WKB **BYTES**, a KML **STRING**, a GML **STRING** or a **SHAPE** to a WKT **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_kml_gml` A GeoJSON, KML or GML string.\\n\\n@param `wkt` The resulting WKT.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHpF\"},{\"name\":\"->Z\",\"detail\":\"longs<LIST<LONG>> bitwidth<LONG>  ->Z  z<BYTES>\",\"documentation\":\"The `->Z` function packs multiple **LONG** arguments into a byte array by interleaving the bits of the arguments. This produces a \\n[Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) value encoding the original arguments. The value might be right padded with bits set to 0 to reach a multiple of 8 bits.\\n\\n@param `bitwidth` Number of bits to consider for each LONG in 'longs', from 1 to 63.\\n\\n@param `longs` List of LONGs to pack. Each LONG *MUST* be positive, i.e. with bit 63 set to 0.\\n\\n@param `z` Byte array containing the packed values.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItP\"},{\"name\":\"/\",\"detail\":\"long<LONG> long<LONG>  /  long-result<LONG>\\ndouble<DOUBLE> long<LONG>  /  double-result<DOUBLE>\\nlong<LONG> double<DOUBLE>  /  double-result<DOUBLE>\\ndouble<DOUBLE> double<DOUBLE>  /  double-result<DOUBLE>\\ncounter<COUNTER> counter<COUNTER>  /  long-result<LONG>\\ndouble<DOUBLE> counter<COUNTER>  /  long-result<DOUBLE>\\ncounter<COUNTER> double<DOUBLE>  /  long-result<DOUBLE>\\ncounter<COUNTER> long<LONG>  /  long-result<LONG>\\nlong<LONG> counter<COUNTER>  /  long-result<LONG>\\ndouble<VECTOR> double<NUMBER>  /  double-result<VECTOR>\\nparam2<GTS> param1<GTS>  /  result<GTS>\\nparam2<GTS> param1<NUMBER>  /  result<GTS>\\nparam2<NUMBER> param1<GTS>  /  result<GTS>\",\"documentation\":\"The `/` operator consumes two parameters from the top of the stack and pushes back the result of dividing the first one by the second one.\\n\\nYou can't devide by zero.\\n\\nThe two parameters must be of numeric types, or Geo Time Series™, or a mix of the two.\\n\\n@param `long` Numeric integer\\n\\n@param `long-result` Numeric floor-rounded integer\\n\\n@param `double` Numeric floating point number\\n\\n@param `double-result` Numeric floating point number\\n\\n@param `counter` Numeric counter\\n\\n@param `param1` First parameter of the division.\\n\\n@param `param2` Second parameter of the division.\\n\\n@param `result` Resulting GTS, of type DOUBLE.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ak\"},{\"name\":\"<\",\"detail\":\"p1<NUMBER> p2<NUMBER>  <  result<BOOLEAN>\\np1<STRING> p2<STRING>  <  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  <  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  <  outgts<GTS>\\ngts1<GTS> gts2<GTS>  <  outputgts<GTS>\",\"documentation\":\"The `<` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 < p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <` is strictly equivalent of a `42 mapper.lt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 < p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E.\"},{\"name\":\"<<\",\"detail\":\"number<LONG> shift<LONG>  <<  result<LONG>\\ninputgts<GTS> number<LONG>  <<  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  <<  outputgts<GTS>\",\"documentation\":\"Shifts the bits of a long by a number of positions to the left. The least significant bit is filled with 0 after each shift.\\n\\nSince Warp 10™ 2.1, `<<` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2k\"},{\"name\":\"<=\",\"detail\":\"p1<NUMBER> p2<NUMBER>  <=  result<BOOLEAN>\\np1<STRING> p2<STRING>  <=  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  <=  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  <=  outgts<GTS>\\ngts1<GTS> gts2<GTS>  <=  outputgts<GTS>\",\"documentation\":\"The `<=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 <= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <=` is strictly equivalent of a `42 mapper.le` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 <= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less or equal than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2o\"},{\"name\":\"==\",\"detail\":\"p1<ANY> p2<ANY>  ==  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  ==  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  ==  outgts<GTS>\\ngts1<GTS> gts2<GTS>  ==  outputgts<GTS>\",\"documentation\":\"Tests if both parameters are equal.\\n\\nThe `==` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are equal, false otherwise.\\n\\nThe two parameters must be of numeric, boolean, vector, matrix or string types.\\nFor vector or matrix, the parameters must be the same size.\\n\\nSince 2.1.0, as every other comparison operators, `==` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 ==` is strictly equivalent of a `42 mapper.eq` MAP operation, with a simplified syntax.\\n\\nSince 2.1.1, `==` can be use to check equality between Lists, Maps and Sets. For for details about how this is defined, check the [java documentation](https://docs.oracle.com/en/java/javase/index.html).\\n\\n@param `p1` First parameter to compare\\n\\n@param `p2` Second parameter to compare\\n\\n@param `result` True if p1 and p2 are equal, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values equal to constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value equals gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EIo\"},{\"name\":\">\",\"detail\":\"p1<NUMBER> p2<NUMBER>  >  result<BOOLEAN>\\np1<STRING> p2<STRING>  >  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  >  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  >  outgts<GTS>\\ngts1<GTS> gts2<GTS>  >  outputgts<GTS>\",\"documentation\":\"The `>` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 > p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >` is strictly equivalent of a `42 mapper.gt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 > p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EV\"},{\"name\":\">=\",\"detail\":\"p1<NUMBER> p2<NUMBER>  >=  result<BOOLEAN>\\np1<STRING> p2<STRING>  >=  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  >=  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  >=  outgts<GTS>\\ngts1<GTS> gts2<GTS>  >=  outputgts<GTS>\",\"documentation\":\"The `>=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 >= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >=` is strictly equivalent of a `42 mapper.ge` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 >= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater or equal than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYo\"},{\"name\":\">>\",\"detail\":\"number<LONG> shift<LONG>  >>  result<LONG>\\ninputgts<GTS> number<LONG>  >>  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  >>  outputgts<GTS>\",\"documentation\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after shifting depends on the sign of the unshifted long.\\n\\nSince Warp 10™ 2.1, `>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYs\"},{\"name\":\">>>\",\"detail\":\"number<LONG> shift<LONG>  >>>  result<LONG>\\ninputgts<GTS> number<LONG>  >>>  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  >>>  outputgts<GTS>\",\"documentation\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after each shift is set to 0, regardless of the sign of \\nthe unshifted long.\\n\\nSince Warp 10™ 2.1, `>>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYsy\"},{\"name\":\"ABI->\",\"detail\":\"json<STRING>  ABI->  abi<MAP>\",\"documentation\":\"The `ABI->` function parses a JSON structure describing an [`ABI`](https://docs.soliditylang.org/en/develop/abi-spec.html) and produces a `MAP` with individual entries for each definition appearing in the JSON spec.\\n\\n@param `json` JSON representation of the ABI, as produced by `solc --abi`.\\n\\n@param `abi` `MAP` containing entries for each function, error or event described in the `ABI`.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"FJ88AIs\"},{\"name\":\"ABI.SIG\",\"detail\":\"abi<MAP>  ABI.SIG  signature<STRING>\",\"documentation\":\"Computes the signature of an [ABI](https://docs.soliditylang.org/en/v0.8.13/abi-spec.html) element. The element can be of type `function` or `event`.\\n\\n@param `abi` ABI description of the element whose signature must be generated.\\n\\n@param `signature` Hex encoded and `0x` prefixed 32 bits signature of the ABI.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ABI.SIG\"},{\"name\":\"ABS\",\"detail\":\"value<LONG>  ABS  result<LONG>\\nvalue<COUNTER>  ABS  result<LONG>\\nvalue<DOUBLE>  ABS  result<DOUBLE>\\nlvalue<LIST<LONG>>  ABS  lresult<LIST<LONG>>\\nlvalue<LIST<COUNTER>>  ABS  lresult<LIST<LONG>>\\nlvalue<LIST<DOUBLE>>  ABS  lresult<LIST<DOUBLE>>\\ngts<GTS>  ABS  gtsresult<GTS>\",\"documentation\":\"Computes the absolute value of a number value.\\n\\nThe `ABS` function consumes a numeric value from the top of the stack and pushes back its absolute value.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` A numeric value\\n\\n@param `result` The absolute value of the given numeric value.\\n\\n@param `lvalue` A list of numeric values\\n\\n@param `lresult` A list of the absolute values of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the absolute values of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ABS\"},{\"name\":\"ACCEL.CACHE\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.CACHE` function will enable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.CACHE\"},{\"name\":\"ACCEL.NOCACHE\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOCACHE` function will disable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOCACHE\"},{\"name\":\"ACCEL.NOPERSIST\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOPERSIST` function will disable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOPERSIST\"},{\"name\":\"ACCEL.PERSIST\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.PERSIST` function will enable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.PERSIST\"},{\"name\":\"ACCEL.REPORT\",\"detail\":\" ACCEL.REPORT  report<MAP>\",\"documentation\":\"The `ACCEL.REPORT` function will produce a map containing informations related to the Warp 10 Accelerator. The following table describes the various keys present in this map:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `accelerated` | Boolean indicating whether or not the last [`FETCH`](/doc/FETCH) accessed the in-memory data managed by the Warp 10 Accelerator. |\\n| `status` | Boolean indicating whether or not the Warp 10 Accelerator is enabled. |\\n| `cache` | Boolean indicating if the in-memory data will be considered for update, fetch and delete operations. |\\n| `persist` | Boolean indicating if the persistent data will be considered for update, fetch and delete operations. |\\n| `chunkcount` | Number of chunks managed by the accelerator for its in-memory data. |\\n| `chunkspan` | Length of each chunk expressed in platform time units. |\\n\\n@param `report` Map containing informations related to the Warp 10 Accelerator\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.REPORT\"},{\"name\":\"ACOS\",\"detail\":\"value<NUMBER>  ACOS  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  ACOS  lresult<LIST<DOUBLE>>\\ngts<GTS>  ACOS  gtsresult<GTS>\",\"documentation\":\"The `ACOS` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arccosine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arccosine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arccosine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arccosine in radians of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ACOS\"},{\"name\":\"ADDDAYS\",\"detail\":\"timestamp<LONG> timezone<STRING> days<LONG>  ADDDAYS  result<LONG>\\ntimestamp<LONG> days<LONG>  ADDDAYS  result<LONG>\\ntselements<LIST<LONG>> days<LONG>  ADDDAYS  tselementsresult<LIST<LONG>>\",\"documentation\":\"Adds days to a timestamp or a tselements.\\n\\nThe `ADDDAYS` function consumes from the top of the stack a number (positive or negative) of days, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the days and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `days` The number of days to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDDAYS\"},{\"name\":\"ADDDURATION\",\"detail\":\"timestamp<LONG> timezone<STRING> duration<STRING>  ADDDURATION  result<LONG>\\ntimestamp<LONG> timezone<STRING> duration<STRING> factor<LONG>  ADDDURATION  result<LONG>\\ntimestamp<LONG> duration<STRING>  ADDDURATION  result<LONG>\\ntimestamp<LONG> duration<STRING> factor<LONG>  ADDDURATION  result<LONG>\\ntselements<LIST<LONG>> duration<STRING>  ADDDURATION  tselementsresult<LIST<LONG>>\\ntselements<LIST<LONG>> duration<STRING> factor<LONG>  ADDDURATION  tselementsresult<LIST<LONG>>\",\"documentation\":\"Adds an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) to a timestamp or a tselements.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `duration` The duration\\n\\n@param `factor` The number of durations to add. Can be negative. Default to 1 if not set.\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"2.4.0\",\"OPB64name\":\"ADDDURATION\"},{\"name\":\"ADDEXACT\",\"detail\":\"x<NUMBER> y<NUMBER>  ADDEXACT  sum<LONG>\\nlist<LIST<NUMBER>>  ADDEXACT  ssum<LONG>\\nlx<LIST<NUMBER>> y<NUMBER>  ADDEXACT  lsum<LIST<LONG>>\\ngts<GTS>  ADDEXACT  gsum<GTS>\\ngtsx<GTS> y<NUMBER>  ADDEXACT  gtssum<GTS>\",\"documentation\":\"The `ADDEXACT` function consumes two LONGs from the top of the stack and puts back the sum. If the sum overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `sum` The sum of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `ssum` The sum of all the elements of list\\n\\n@param `gsum` The sum of all the values of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lsum` List of **LONG** where each value is the sum of y and an element in lx\\n\\n@param `gtssum` GTS of **LONG** values where each value is the sum of y and an element in gtsx\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"ADDEXACT\"},{\"name\":\"ADDMONTHS\",\"detail\":\"timestamp<LONG> timezone<STRING> months<LONG>  ADDMONTHS  result<LONG>\\ntimestamp<LONG> months<LONG>  ADDMONTHS  result<LONG>\\ntselements<LIST<LONG>> months<LONG>  ADDMONTHS  tselementsresult<LIST<LONG>>\",\"documentation\":\"Adds months to a timestamp or a tselements.\\n\\nThe `ADDMONTHS` function consumes from the top of the stack a number (positive or negative) of months, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the months and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `months` The number of months to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDMONTHS\"},{\"name\":\"ADDVALUE\",\"detail\":\"gts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<STRING>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<BYTES>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<BOOLEAN>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<DOUBLE>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<LONG>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<GTSENCODER>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<GTS>  ADDVALUE  result<GTS>\",\"documentation\":\"The `ADDVALUE` function adds a value to a GTS, without checking for tick duplicates. The added data point is appended to the GTS.\\nThe [`SETVALUE`](/doc/SETVALUE) overrides an existing value.\\n\\nThe `ADDVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `ADDVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, for example by using [`GET`](/doc/GET)\\nwith value 0 as parameter.\\n\\nIf latitude or longitude are NaN (not a number), value has only timestamp, elevation, value.\\nIf elevation is NaN (not a number), value has only timestamp, latitude, longitude, value.\\nIf elevation is NaN and longitude or latitude are NaN, value has only timestamp, value.\\n\\nWhen adding a Geo Time Series™ or GTS Encoder value, the value will be wrapped (as when using `WRAPRAW`) and added as a binary value.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Series™\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `result` The Geo Time Series™ with the new datapoint added\\n\\n@param `elevation` Elevation or NaN\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ADDVALUE\"},{\"name\":\"ADDYEARS\",\"detail\":\"timestamp<LONG> timezone<STRING> years<LONG>  ADDYEARS  result<LONG>\\ntimestamp<LONG> years<LONG>  ADDYEARS  result<LONG>\\ntselements<LIST<LONG>> years<LONG>  ADDYEARS  tselementsresult<LIST<LONG>>\",\"documentation\":\"Adds years to a timestamp or a tselements.\\n\\nThe `ADDYEARS` function consumes from the top of the stack a number (positive or negative) of years, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the years and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `years` The number of years to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDYEARS\"},{\"name\":\"AESUNWRAP\",\"detail\":\"key<BYTES> data<BYTES>  AESUNWRAP  decoded<BYTES>\",\"documentation\":\"Unwraps a byte array with the [AES WRAP](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") and pushes back the decrypted data into an bytes array.\\n\\n`AESUNWRAP` removes the a 64bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) added by [`AESWRAP`](/doc/AESWRAP) WarpScript function\\n\\n@param `data` Encoded Byte array.\\n\\n@param `key` Byte array, 128, 192 or 256 bits key.\\n\\n@param `decoded` Decoded Byte array.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESUNWRAP\"},{\"name\":\"AESWRAP\",\"detail\":\"string<STRING> key<BYTES>  AESWRAP  encrypted<BYTES>\\nbytes<BYTES> key<BYTES>  AESWRAP  encrypted<BYTES>\",\"documentation\":\"Wraps a byte array or String with the [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt) algorithm and pushes a byte array containing the encrypted data onto the stack.\\n\\n`AESWRAP` adds a 64 bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) prefix to the input in order to protect the encrypted data against AES block determinism as [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") uses a fixed Initialization Vector.\\n\\n@param `key` 128, 192 or 256 bits key to use for encryption.\\n\\n@param `string` String data to encrypt.\\n\\n@param `bytes` Byte array to encrypt.\\n\\n@param `encrypted` Encrypted result.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESWRAP\"},{\"name\":\"AGO\",\"detail\":\"offset<NUMBER>  AGO  timestamp<LONG>\",\"documentation\":\"The `AGO` function is a shortcut which enables you to compute timestamps by specifying an offset from the current time.\\n\\n@param `offset` The numbers of ticks in platform time unit to subtract, truncated if floating-point.\\n\\n@param `timestamp` The computed timestamp\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"AGO\"},{\"name\":\"AND\",\"detail\":\"p1<BOOLEAN> p2<BOOLEAN>  AND  result<BOOLEAN>\\nl<LIST>  AND  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  AND  gtsresult<GTS>\",\"documentation\":\"The `AND` operator is a synonymous for [`&&`](/doc/8XN).\\n\\nIt performs a logical **AND** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `AND` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical AND applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with AND between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"AND\"},{\"name\":\"APPEND\",\"detail\":\"inputlist<LIST> newitems<LIST>  APPEND  outputlist<LIST>\\ninputmap<MAP> newitems<MAP>  APPEND  outputmap<MAP>\\ninputGTS<GTS> newitems<GTS>  APPEND  outputGTS<GTS>\\ninputset<SET> newitems<SET>  APPEND  outputset<SET>\\ninputset<SET> newitems<LIST>  APPEND  outputset<SET>\\ninputlist<LIST> newitems<SET>  APPEND  outputlist<LIST>\",\"documentation\":\"The `APPEND` function consumes two paramters from the top of the stack and appends the LIST, MAP or GTS on top of the stack to the one just below.\\nThe augmented LIST, MAP or GTS is then pushed back on the stack.\\n\\n@param `newitems` items to append to input.\\n\\n@param `inputlist` LIST to be modified.\\n\\n@param `outputlist` The LIST that has been modified\\n\\n@param `inputmap` MAP to be modified.\\n\\n@param `outputmap` The MAP that has been modified \\n\\n@param `inputGTS` GTS to be modified.\\n\\n@param `outputGTS` The GTS that has been modified\\n\\n@param `inputset` SET to be modified.\\n\\n@param `outputset` The SET that has been modified\\n\\n\",\"tags\":[\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPEND\"},{\"name\":\"APPLY\",\"detail\":\"[ gts<LIST<GTS>+> labels<LIST> op<OPERATOR> ]  APPLY  result<LIST<GTS>>\",\"documentation\":\"The `APPLY` framework provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can do. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` List of resulting GTS, one per equivalence class.\\n\\n@param `op` Operation to perform.\\n\\n\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPLY\"},{\"name\":\"ASENCODERS\",\"detail\":\"gts<GTS>  ASENCODERS  encoder<GTSENCODER>\\nlgts<LIST<GTS>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\\nwrappedgts<STRING>  ASENCODERS  encoder<GTSENCODER>\\nlwrappedgts<LIST<STRING>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\\nrawwrappedgts<BYTES>  ASENCODERS  encoder<GTSENCODER>\\nlrawwrappedgts<LIST<BYTES>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\\nencoder<GTSENCODER>  ASENCODERS  encoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\",\"documentation\":\"The `ASENCODERS` function consumes a Geo Time Series™, a wrap or a raw wrap, or a list thereof and convert each one into an encoder.\\n\\n@param `gts` Geo Time Series™ to be converted.\\n\\n@param `lgts` List of Geo Time Series™ to be converted.\\n\\n@param `wrappedgts` Wrapped Geo Time Series™ to be converted.\\n\\n@param `lwrappedgts` List of wrapped Geo Time Series™ to be converted.\\n\\n@param `rawwrappedgts` Raw wrapped Geo Time Series™ to be converted.\\n\\n@param `lrawwrappedgts` List of raw wrapped Geo Time Series™ to be converted.\\n\\n@param `encoder` Encoder of the given Geo Time Series™.\\n\\n@param `lencoder` List of encoder, one for each given Geo Time Series™.\\n\\n\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"2.2.0\",\"OPB64name\":\"ASENCODERS\"},{\"name\":\"ASIN\",\"detail\":\"value<NUMBER>  ASIN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  ASIN  lresult<LIST<DOUBLE>>\\ngts<GTS>  ASIN  gtsresult<GTS>\",\"documentation\":\"The `ASIN` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arcsine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arcsine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arcsine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arcsine in radians of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASIN\"},{\"name\":\"ASREGS\",\"detail\":\"macro<MACRO> vars<LIST<STRING>>  ASREGS  macro<MACRO>\\nmacro<MACRO>  ASREGS  macro<MACRO>\",\"documentation\":\"Replaces in a macro the uses of the given symbols by the use of registers.\\n\\nIf there are not enough registers available, replace each of the symbols from the start of the list until all registers are used.\\n\\nSince 2.6.0, the list of symbols is optional. In that case, `ASREGS` first recursively extracts all the symbols from given the macro and uses that list to do the replacement.\\n\\n@param `macro` Macro to transform.\\n\\n@param `vars` List of symbols.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ASREGS\"},{\"name\":\"ASSERT\",\"detail\":\"condition<BOOLEAN>  ASSERT \",\"documentation\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise.\\n\\nThe `ASSERT` function consumes a **BOOLEAN** parameter from the top of the stack. If the boolean is **true** the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception.\\n\\n`ASSERT` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n\",\"tags\":[\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASSERT\"},{\"name\":\"ASSERTMSG\",\"detail\":\"condition<BOOLEAN> message<STRING>  ASSERTMSG \",\"documentation\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise and displays a message.\\n\\nThe `ASSERTMSG` function consumes a **BOOLEAN** parameter and a **STRING** parameter from the top of the stack. If the boolean is **true**, the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception with a message displaying the **STRING** parameter.\\n\\n`ASSERTMSG` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n@param `message` The exception message to display if the test fails\\n\\n\",\"tags\":[\"debug\"],\"since\":\"1.2.13\",\"OPB64name\":\"ASSERTMSG\"},{\"name\":\"ATAN\",\"detail\":\"value<NUMBER>  ATAN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  ATAN  lresult<LIST<DOUBLE>>\\ngts<GTS>  ATAN  gtsresult<GTS>\",\"documentation\":\"The `ATAN` function consumes a floating point number between -1 et 1 from the top of the stack and pushes back its arctangent in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arctangent in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arctangent in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arctangent in radians of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATAN\"},{\"name\":\"ATAN2\",\"detail\":\"y<NUMBER> x<NUMBER>  ATAN2  result<DOUBLE>\\ny<NUMBER> lx<LIST<NUMBER>>  ATAN2  lresult<LIST<DOUBLE>>\\nly<LIST<NUMBER>> x<NUMBER>  ATAN2  lresult<LIST<DOUBLE>>\\ny<NUMBER> gtsx<GTS>  ATAN2  gtsresult<GTS>\\ngtsy<GTS> x<NUMBER>  ATAN2  gtsresult<GTS>\",\"documentation\":\"ATAN2 function returns the polar angle theta (azimut) from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta). This method computes the phase theta by computing an arc tangent of y/x in the range of `] -pi  pi ]`.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `result` theta in polar coordinates\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `lresult` List of thetas in polar coordinates\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `gtsresult` Numerical GTS of thetas in polar coordinates\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.2.13\",\"OPB64name\":\"ATAN2\"},{\"name\":\"ATBUCKET\",\"detail\":\"gts<GTS> index<LONG>  ATBUCKET  result<LIST>\",\"documentation\":\"The `ATBUCKET` function consumes a bucketized GTS from the stack, looks at its `index`-th bucket and puts on the stack a\\nlist with the timestamp, latitude, longitude, elevation and value for this bucket.\\n\\n@param `gts` Bucketized Geo Time Series™\\n\\n@param `index` Index of the bucket\\n\\n@param `result` List with the timestamp, latitude, longitude, elevation and value for the index-th bucket of the GTS\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATBUCKET\"},{\"name\":\"ATINDEX\",\"detail\":\"gts<GTS> index<NUMBER>  ATINDEX  data<LIST>\\nlgts<LIST<GTS>> index<NUMBER>  ATINDEX  ldata<LIST<LIST>>\",\"documentation\":\"The `ATINDEX` function consumes a Geo Time Series™ or a list thereof from the stack, looks at its index-th point and put on the stack a list with the timestamp, longitude,\\nlatitude, elevation and value for the `index`-th point of the GTS.\\n\\nSince 2.1, the index can be negative. In this case, the effective index is index + size of the GTS.\\n\\n@param `index` Index of the tick, truncated if floating-point.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATINDEX\"},{\"name\":\"ATTICK\",\"detail\":\"gts<GTS> timestamp<LONG>  ATTICK  data<LIST>\\nlgts<LIST<GTS>> timestamp<LONG>  ATTICK  ldata<LIST<LIST>>\\ngts<GTS> timestamp<COUNTER>  ATTICK  data<LIST>\\nlgts<LIST<GTS>> timestamp<COUNTER>  ATTICK  ldata<LIST<LIST>>\\ngts<GTS> timestamp<DOUBLE>  ATTICK  data<LIST>\\nlgts<LIST<GTS>> timestamp<DOUBLE>  ATTICK  ldata<LIST<LIST>>\",\"documentation\":\"The `ATTICK` function consumes a Geo Time Series™ from the stack, looks at its tick-th tick (the data point with a timestamp tick) and put on the\\nstack a list with the timestamp, latitude, longitude, elevation and value for that data point.\\n\\nIf there is no data point with tick timestamp, it returns a list with timestamp, latitude, longitude and elevation at **NaN** and value at **null**.\\n\\n@param `timestamp` Timestamp at which to take the data, if it is a floating-point value, it is truncated.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTICK\"},{\"name\":\"ATTRIBUTES\",\"detail\":\"gts<GTS>  ATTRIBUTES  return<MAP>\\nencoder<GTSENCODER>  ATTRIBUTES  return<MAP>\",\"documentation\":\"Retrieves the attributes of a Geo Time Series™.\\n\\nThe `ATTRIBUTES` function takes a **GTS** on top of the stack and push back a **MAP** including all its attributes.\\n\\nAn attribute corresponds to a tag for a specific series.\\nThe attribute system allows the user to add some information that can change in a series.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `encoder` The input Geo Time Series™ Encoder\\n\\n@param `return` The attributes MAP of the input Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTRIBUTES\"},{\"name\":\"AUTHENTICATE\",\"detail\":\"token<STRING>  AUTHENTICATE \",\"documentation\":\"The `AUTHENTICATE` function authenticates the current stack with the **read token** on top of the stack. This function removes the token from the stack.\\n\\nInside a WarpScript, the stack could be authenticated only once. An exception is thrown when the stack is already authenticated.\\n\\nIn macros, use ISAUTHENTICATED to make sure the stack is not already authenticated.\\n\\n@param `token` Read token\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"AUTHENTICATE\"},{\"name\":\"B58->\",\"detail\":\"base58<STRING>  B58->  decoded<BYTES>\",\"documentation\":\"Decodes a STRING encoded in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58 encoded STRING to decode.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsAIs\"},{\"name\":\"B58C->\",\"detail\":\"base58<STRING> prefix<BYTES>  B58C->  decoded<BYTES>\",\"documentation\":\"Decodes a STRING encoded in [Base58Check](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58Check encoded STRING to decode.\\n\\n@param `prefix` Base58Check prefix used at encoding time.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsFmoy\"},{\"name\":\"B64->\",\"detail\":\"content<STRING>  B64->  result<BYTES>\",\"documentation\":\"Decodes the [base64](http://tools.ietf.org/html/rfc4648#section-4) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoAIs\"},{\"name\":\"B64TOHEX\",\"detail\":\"content<STRING>  B64TOHEX  result<STRING>\",\"documentation\":\"Decodes the  [base64](http://tools.ietf.org/html/rfc4648#section-4) content on top of the stack and immediately re-encode it in hexadecimal.\\nThis enables you to convert encoded content which would not be valid UTF-8 encoding from base64 to hexadecimal. \\nAs the string are URL encoded, the symbol `+` have to be replaced by `%2B`, otherwise a space will replace the `+` in the string.\\n\\n@param `content` String to convert\\n\\n@param `result` Hexadecimal converted string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"B64TOHEX\"},{\"name\":\"B64URL->\",\"detail\":\"content<STRING>  B64URL->  result<BYTES>\",\"documentation\":\"Decodes the [base64url](http://tools.ietf.org/html/rfc4648#section-5) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoKK8BAIs\"},{\"name\":\"BBOX\",\"detail\":\"gts<GTS>  BBOX  [  minlat<DOUBLE>  minlon<DOUBLE>  maxlat<DOUBLE>  maxlon<DOUBLE>  ]\\nlgts<LIST<GTS>>  BBOX  extremas<LIST<LIST<DOUBLE>>>\",\"documentation\":\"The `BBOX` function computes the bounding box of a Geo Time Series™ or a list thereof. It returns a list with extremas (West, South, East, North), or a list of list of extremas.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `minlat` Latitude of lower left of bounding box.\\n\\n@param `minlon` Longitude of lower left of bounding box.\\n\\n@param `maxlat` Latitude of upper right of bounding box.\\n\\n@param `maxlon` Longitude of upper right of bounding box.\\n\\n@param `extremas` List of list containing minlat, minlon, maxlat, maxlon, for every GTS in lgts.\\n\\n\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BBOX\"},{\"name\":\"BIN->\",\"detail\":\"binary<STRING>  BIN->  result<BYTES>\",\"documentation\":\"The `->BIN` function decodes a binary string representation into a bytes array.\\n\\n@param `binary` The binary string representation\\n\\n@param `result` The bytes array\\n\\n\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"FZ_DAIs\"},{\"name\":\"BINTOHEX\",\"detail\":\"content<STRING>  BINTOHEX  result<STRING>\",\"documentation\":\"Converts a string representing a binary number into a string representing a hexadecimal number.\\n\\nThe `BINTOHEX` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from binary to hexadecimal.\\n\\n@param `content` The string representing a binary number\\n\\n@param `result` The string representing a hexadecimal number\\n\\n\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"BINTOHEX\"},{\"name\":\"BITCOUNT\",\"detail\":\"bitset<BITSET>  BITCOUNT  cardinality<LONG> length<LONG>\",\"documentation\":\"Returns the logical size and the cardinality of a [BitSet](https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html).\\n\\nThe `BITCOUNT` function consumes a bitset on the top of the stack and push back its logical size and its cardinality.\\n  * The logical size is the index of the highest bit set to true plus one.\\n  * The cardinality is the number of bit set to true.\\n\\n@param `bitset` The BitSet to count\\n\\n@param `length` The logical size of the BitSet\\n\\n@param `cardinality` The number of bits set to true\\n\\n\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITCOUNT\"},{\"name\":\"BITGET\",\"detail\":\"bitset<BITSET> index<LONG>  BITGET  return<BOOLEAN>\",\"documentation\":\"Returns the value of the bit with the specified index.\\n\\nThe `BITGET` function consumes a bitset and a long on the top of the stack. It returns the value of the bit with the specified index. The bit index starts at 0 from the right.\\n\\n@param `index` The bit index\\n\\n@param `bitset` The bitset\\n\\n@param `return` The value of the bit with the specified index\\n\\n\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.5\",\"OPB64name\":\"BITGET\"},{\"name\":\"BITSTOBYTES\",\"detail\":\"bitset<BITSET>  BITSTOBYTES  result<BYTES>\",\"documentation\":\"Converts a bitset into a bytes array.\\n\\n@param `bitset` Bitset\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"bitset\",\"binary\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITSTOBYTES\"},{\"name\":\"BOOTSTRAP\",\"detail\":\"\",\"documentation\":\"This function is executed systematically before the WarpScript stack is available for anything else. By default this function does nothing, it is equivalent \\nto [`NOOP`](/doc/NOOP).\\n\\nIf bootstrap code was specified in the Warp 10 platform configuration, for either or all of `egress`, `mobius` or `runner`, the `BOOTSTRAP` function might\\nhave been redefined and actual code could be executed.\\n\\nThis function is not meant to be used in user provided scripts.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"BOOTSTRAP\"},{\"name\":\"BREAK\",\"detail\":\"\",\"documentation\":\"The `BREAK` function breaks out of the current loop. It takes no argument.\\n\\n> If used outside a loop, an error is thown\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"BREAK\"},{\"name\":\"BUCKETCOUNT\",\"detail\":\"gts<GTS>  BUCKETCOUNT  result<LONG>\",\"documentation\":\"The function `BUCKETCOUNT` consumes a GTS off the stack and pushes its bucketcount onto the stack.\\n\\n> Note: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Number of buckets\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETCOUNT\"},{\"name\":\"BUCKETIZE\",\"detail\":\"[ gts<GTS+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\\n[ gts<GTS+> macro<MACRO> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>+> macro<MACRO> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\",\"documentation\":\"The `BUCKETIZE` framework allow to realign datapoints:\\n- A **bucket** is a time interval which spans a certain number of time units called the **bucketspan**\\n- BUCKETIZE sort the geotimeserie input, starts by computing the last bucket defined by **lastbucket**, always going backward in time.\\n- BUCKETIZE ends when there is no more ticks to compute, or when **bucketcount** is reached.\\n\\nThe **bucketizer** is a function that aggregates all the datapoints that falls into the bucket. It means their timestamp belongs to range `](bucketEnd - bucketspan);bucketEnd]`. If there is no datapoint in the bucket range, there is no aggregate output for the bucket, and `BUCKETIZE` jumps to the next non empty bucket.\\n\\n\\n###### Parameters\\n\\n| last bucket | bucket span | bucket count | |\\n|---|---|---|---|\\n| 0 | span |0 | `BUCKETIZE` will choose last bucket as multiple of the bucket span, and will adjust bucketcount to cover all the input time range. This is the most straightforward way to use `BUCKETIZE`. As last bucket is a multiple of bucket span, **results will be aligned**. |\\n| lastbucket | span | 0 | `BUCKETIZE` will adjust bucketcount to cover all the input time range. As lastbucket is fixed, **results will be aligned**. |\\n| 0 | span | count | `BUCKETIZE` will choose the GTS last tick as last bucket, and stop computation as soon as bucket count is reached. Results may not be aligned. |\\n| 0 | 0 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts + 1) / bucket count`. Results may not be aligned.|\\n| 0 | -1 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts) / (bucket count - 1)`. Results may not be aligned.|\\n\\n\\nAll the output will be bucketized. The bucket span and last bucket can be retrieved with [`BUCKETSPAN`](/doc/BUCKETSPAN) and [`BUCKETCOUNT`](/doc/BUCKETCOUNT).\\n\\nUp to bucketization, the other WarpLib functions will process the series differently. Empty buckets will be considered as values. You may need to remove the bucketized property from a GTS, with [`UNBUCKETIZE`](/doc/UNBUCKETIZE) function.\\n\\n###### Aggregators\\n\\nYou can use `BUCKETIZE` with 3 different type of aggregators:\\n- The WarpLib aggregators: they are all named **bucketizer.xxx**, you will find them in the [bucketizer section](/tags/bucketizer).\\n- A macro: for each bucket, BUCKETIZE will push a new sub Geo Time Series™ which will contain the ticks and values that falls in current bucket, then execute the macro. The macro can process the GTS, and let the aggregation result on the stack.\\n- A MACROBUCKETIZER: see [`MACROBUCKETIZER`](/doc/MACROBUCKETIZER) documentation.\\n\\n\\nIf the bucketizer argument is NULL, then BUCKETIZE do not create any new Geo Time Series™ but instead sets the lastbucket, bucketspan and bucketcount of its inputs without processing their data.\\n\\n`BUCKETIZE` output is always a list of GTS, even if the input is a single GTS.\\n\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so the first value of the geo time series is at the beginning of the first bucket.\\n\\n@param `bucketspan` Width in time units of each bucket. If `bucketspan` is 0 but `bucketcount` is set, WarpScript will compute `bucketspan` so `bucketcount` buckets cover the complete set of values from firsttick to lasttick. If this value is set to -1, the number of buckets is computed so the first tick is towards the end of the first bucket.\\n\\n@param `lastbucket` Specifies the timestamp in time units since the Unix Epoch of the end of the most recent bucket. If you set this value to 0, this timestamp will be computed automatically so it covers the most recent value of the geo time series and falls on a `bucketspan` boundary.\\n\\n@param `gts` One or more Geo Time Series™\\n\\n@param `gtsList` One or more lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS\\n\\n\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETIZE\"},{\"name\":\"BUCKETIZE.CALENDAR\",\"detail\":\"[ gts<GTS+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\\n[ gts<GTS+> macro<MACRO> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\\n[ gts<GTS+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> timezone<STRING> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\\n[ gts<GTS+> macro<MACRO> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> timezone<STRING> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\",\"documentation\":\"Creates bucketized Geo Time Series with buckets that span a calendar duration that can be irregular (e.g. taking into account leap years and daylight saving time).\\n\\nInstead of using a bucketspan like the BUCKETIZE framework, it uses a bucketduration: a STRING in [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format, as `PyYmMwWdDThHmMsS` similarly to that of ADDDURATION function. However, complex bucketdurations that can be non-positive from some ticks are not allowed.\\n\\nIn the result, the tick of each bucket is its index, which is equal to the number of buckets that are ended since Unix Epoch. In particular, the tick of the bucket that contains Unix Epoch is always 0. The resulting GTS is considered bucketized for further operations. Then, the function UNBUCKETIZE.CALENDAR can be used to replace bucket indices with their timestamp end boundaries.\\n\\nThis function answers the limitation of BUCKETIZE to regular buckets. For instance, BUCKETIZE.CALENDAR can be used with a duration of one month (`P1M`) or one year (`P1Y`).\\n\\nThe delta between Unix Epoch and the first timestamp of bucket 0th is called the bucketoffset. The bucketoffset, bucketduration and buckettimezone are stored in the attributes.\\n\\nSee also the macros: [@senx/cal/BUCKETIZE.bymonth](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.bymonth.mc2), [@senx/cal/BUCKETIZE.byyear](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.byyear.mc2).\\n\\n\\n@param `timezone` The timezone to consider. Default to UTC\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so every value of the GTS falls in a bucket.\\n\\n@param `bucketduration` Width in ISO 8601 duration format of each bucket.\\n\\n@param `lastbucket` Specifies the timestamp in platform time units of the end boundary of the most recent bucket. For coherency with BUCKETIZE, this value can not be set to 0.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS in the new time referential\\n\\n\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"BUCKETIZE.CALENDAR\"},{\"name\":\"BUCKETSPAN\",\"detail\":\"gts<GTS>  BUCKETSPAN  result<LONG>\",\"documentation\":\"The function `BUCKETSPAN` consumes a GTS off the stack and pushes its bucketspan onto the stack.\\n\\n> when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Bucketspan\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETSPAN\"},{\"name\":\"BYTES->\",\"detail\":\"bytes<BYTES> charset<STRING>  BYTES->  result<STRING>\",\"documentation\":\"Converts a bytes array into a string with given a charset and put the string on top of the stack.\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\n\\n@param `charset` Charset to use\\n\\n@param `bytes` Bytes array to convert\\n\\n@param `result` String converted byte array\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"F__JGKBhEV\"},{\"name\":\"BYTESTOBITS\",\"detail\":\"bytesarray<BYTES>  BYTESTOBITS  result<BITSET>\",\"documentation\":\"Converts a byte array into a bitset.\\n\\n@param `bytesarray` Bytes array\\n\\n@param `result` Bitset\\n\\n\",\"tags\":[\"bitset\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BYTESTOBITS\"},{\"name\":\"CALL\",\"detail\":\"params<STRING> program<STRING>  CALL  result<STRING>\",\"documentation\":\"The `CALL` function invokes the external program whose path (relative to the `warpscript.call.directory` directory) is on top of the stack. The calling convention will pass to the external\\nprogram the **STRING** object below the path on a line by itself on standard input after having URL encoded the **STRING**. The invoked\\nprogram is expected to return a URL encoded **STRING** object if invocation was successful, or a string starting with a space and followed by a URL encoded error message if an error was encoutered.\\n\\nIf you need to pass complex structures to the invoked program, you can use functions such as [`->JSON`](/doc/AIt9JoxD), [`->PICKLE`](/doc/AItFHJCAI3J)\\nand [`->B64`](/doc/AIt1CYF) to encode the input prior to the invocation.\\n\\nExamples of callable programs are provided in [shell](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/sh/callable.sh)\\nand [python](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/python/callable.py).\\n\\nThe program must be stored in the directory described by the `warpscript.call.directory` configuration parameter.\\n\\nThe program must first output on the stdout the number of concurrent thread allowed.\\n\\nExample:\\n\\n```bash\\n#!/bin/bash\\necho 5 # 5 threads allowed\\nurldecode() {\\n  # urldecode <string>\\n  local url_encoded=\\\"${1//+/ }\\\"\\n  printf '%b' \\\"${url_encoded//%/\\\\\\\\x}\\\"\\n}\\nwhile true\\n\\ndo\\n  read line\\n  line=`urldecode \\\"${line}\\\"` # read the params given by the WarpScript\\n  echo $line # Will be pushed on the stack\\ndone\\n```\\n\\n@param `program` Program path\\n\\n@param `params` URL encoded input\\n\\n@param `result` URL encoded output\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"CALL\"},{\"name\":\"CAPADD\",\"detail\":\"token<STRING>  CAPADD \",\"documentation\":\"The `CAPADD` function extracts capabilities from a `READ` or `WRITE` token and adds them to the current execution environment.  All the capabilities contained in the token will be added except those which are already set in the WarpScript execution environment.\\n\\n@param `token` Token whose capabilities must be extracted and added to the execution environment.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPADD\"},{\"name\":\"CAPCHECK\",\"detail\":\"capability<STRING>  CAPCHECK  set<BOOLEAN>\",\"documentation\":\"Checks if a capability is set in the current execution environment.\\n\\n@param `capability` Name of the capability to check.\\n\\n@param `set` Boolean indicating whether or not `capability` is set.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPCHECK\"},{\"name\":\"CAPDEL\",\"detail\":\"capability<STRING>  CAPDEL \\ncapabilities<LIST<STRING>>  CAPDEL \",\"documentation\":\"Removes a capability or list of capabilities from the current execution environment. This function can prove handy when willing to add capabilities from a token to an environment which already has certain capabilities set which would prevent the new values to be taken into account.\\n\\n@param `capability` Name of the capability to remove.\\n\\n@param `capabilities` List of names of capabilities to remove. If the list is empty, all capabilities will be removed.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPDEL\"},{\"name\":\"CAPGET\",\"detail\":\"capability<STRING>  CAPGET  value<STRING>\\ncapabilities<LIST<STRING>>  CAPGET  values<MAP>\",\"documentation\":\"Retrieves values associated with capabilities.\\nWhen the capability was not [added](/doc/CAPADD), returns NULL.\\n\\n@param `capability` Name of the capability to retrieve.\\n\\n@param `capabilities` List of names of capabilities to retrieve. If the list is empty, all capabilities will be retrieved.\\n\\n@param `value` Value associated with `capability`, or NULL when the capability was not added.\\n\\n@param `values` Map of capability name to associated value.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPGET\"},{\"name\":\"CBRT\",\"detail\":\"value<NUMBER>  CBRT  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  CBRT  lresult<LIST<DOUBLE>>\\ngts<GTS>  CBRT  gtsresult<GTS>\",\"documentation\":\"The `CBRT` function consumes a numeric parameter from the top of the stack and pushes back its cubic root.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Cubic root of the given value.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of cubic root of each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cubic root of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CBRT\"},{\"name\":\"CEIL\",\"detail\":\"value<NUMBER>  CEIL  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  CEIL  lresult<LIST<DOUBLE>>\\ngts<GTS>  CEIL  gtsresult<GTS>\",\"documentation\":\"The `CEIL` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number bigger than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-up value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-up values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-up of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEIL\"},{\"name\":\"CELL->\",\"detail\":\"cell<CELL>  CELL->  details<MAP>\",\"documentation\":\"The `CELL->` function extracts informations from a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\nThe informations returned are stored in a `MAP` under the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `row` | A byte array (`BYTES`) containing the row key. |\\n| `cf` | A byte array containing the column family. |\\n| `cq` | A byte array containing the column qualifier. |\\n| `ts` | The timestamp associated with the `Cell`. |\\n| `value` | A byte array containing the value of the `Cell`. |\\n| `tags` | A list of `MAP` instances, one per tag, with `type` (`LONG`) and `value` (`BYTES`) elements. |\\n\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `details` A `MAP` containing the various fields extracted from the `Cell` instance. See above for available informations.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"FoKBI1oy\"},{\"name\":\"CELLCF\",\"detail\":\"cell<CELL>  CELLCF  cf<BYTES>\",\"documentation\":\"The `CELLCF` function returns the column family associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cf` Byte array containing the column family of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCF\"},{\"name\":\"CELLCQ\",\"detail\":\"cell<CELL>  CELLCQ  cq<BYTES>\",\"documentation\":\"The `CELLCQ` function returns the column qualfier associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cq` Byte array containing the column qualifier of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCQ\"},{\"name\":\"CELLROW\",\"detail\":\"cell<CELL>  CELLROW  row<BYTES>\",\"documentation\":\"The `CELLROW` function returns the row key associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `row` Byte array containing the row key of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLROW\"},{\"name\":\"CELLTAGS\",\"detail\":\"cell<CELL>  CELLTAGS  tags<LIST<MAP>>\",\"documentation\":\"The `CELLTAGS` function returns the tags associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `tags` List of `MAP` instances, one per tag. Each map contains an entry `type` with the type of the tag (`LONG`) and an entry `value` with the associated value (`BYTES`).\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTAGS\"},{\"name\":\"CELLTS\",\"detail\":\"cell<CELL>  CELLTS  ts<LONG>\",\"documentation\":\"The `CELLTS` function returns the timestamp associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `ts` Timestamp of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTS\"},{\"name\":\"CELLVALUE\",\"detail\":\"cell<CELL>  CELLVALUE  value<BYTES>\",\"documentation\":\"The `CELLVALUE` function returns the value associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `value` Byte array containing the value of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLVALUE\"},{\"name\":\"CEVAL\",\"detail\":\"macros<LIST> poolSize<LONG>  CEVAL  result<LIST>\",\"documentation\":\"The `CEVAL` function allows you to execute macros in a concurrent way on a pool of threads.\\n\\nAll macros will be executed with the maximum parallelism level specified. Each macro is executed on its own stack. The context of the global stack is\\nreplicated to each of those stacks so each macro will have access to the existing symbols and the redefined functions. Any modification to the symbol\\ntable or redifined functions done in a concurrent macro will not be reflected in the global stack afterwards.\\n\\nEach macro is invoked with its index in the list on top of the stack.\\n\\nUpon termination of each macro, the content of their respective stacks is put into a list, with the top of the stack at index 0, and those lists are\\nmerged into a global list which is then pushed onto the stack. The resulting list for each macro appears at the index of the macro in the original macro list.\\n\\nBeware that no synchronization is implicitely performed between the concurrent macros. If you require synchronization between macros, for example because\\nyou are modifying a list accessible by all macros via a symbol, you must use the [`SYNC`](/doc/SYNC) function.\\n\\nIf one of the macros fail, an attempt to interrupt the other running macros will be done and the failure will be propagated to the other macros. For the\\ntime being, a call to [`STOP`](/doc/STOP) or [`RETURN`](/doc/RETURN) in one of the macros will stop all of them.\\n\\nUse of `CEVAL` is not available from within a macro currently executing in a `CEVAL` call.\\n\\nThe `CEVAL` function is part of the `io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```properties\\n// Enable CEVAL and SYNC functions\\nwarpscript.extension.concurrent = io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension\\n```\\n\\n@param `poolSize` Parallelism level\\n\\n@param `macros` List of macros\\n\\n@param `result` Result list\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEVAL\"},{\"name\":\"CHECKMACRO\",\"detail\":\"name<STRING>  CHECKMACRO \",\"documentation\":\"The `CHECKMACRO` function checks if a macro is defined and aborts the execution when it encounters an undefined macro.\\n\\n@param `name` The macro name\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKMACRO\"},{\"name\":\"CHECKSHAPE\",\"detail\":\"list<LIST>  CHECKSHAPE  result<LIST>\\n{ list<LIST>  } CHECKSHAPE  result<LIST>\",\"documentation\":\"Return a BOOLEAN indicating whether an input list and its nested lists sizes are coherent together to form a tensor (or multidimensional array).\\n\\n@param `list` The input list.\\n\\n@param `result` true or false.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKSHAPE\"},{\"name\":\"CHRONOEND\",\"detail\":\"name<STRING>  CHRONOEND \",\"documentation\":\"The `CHRONOEND` function ends a stopwatch with the given name previously started with [`CHRONOSTART`](/doc/CHRONOSTART). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\nIt is a good practice to put `CHRONOEND` in the finally clause of a [`TRY`](/doc/TRY) for the timing to work even if exceptions are thrown.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOEND\"},{\"name\":\"CHRONOSTART\",\"detail\":\"name<STRING>  CHRONOSTART \",\"documentation\":\"The `CHRONOSTART` function starts a stopwatch with the given name. To stop the stopwatch, call [`CHRONOEND`](/doc/CHRONOEND). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTART\"},{\"name\":\"CHRONOSTATS\",\"detail\":\" CHRONOSTATS  stats<MAP>\",\"documentation\":\"The `CHRONOSTATS` function \\n\\n@param `stats` A map with stopwatches names as keys and maps as values. These maps have two keys, `total_calls` and `total_time`. The former gives the number of calls to [`CHRONOSTART`](/doc/CHRONOSTART) and the latter gives the cumulative time between [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND) in **nanoseconds**.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTATS\"},{\"name\":\"CHUNK\",\"detail\":\"gts<GTS> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  result<LIST<GTS>>\\ngtsList<LIST<GTS>> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  result<LIST<GTS>>\\nencoder<GTSENCODER> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  resultEncoders<LIST<GTSENCODER>>\\nlEncoder<LIST<GTSENCODER>> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  resultEncoders<LIST<GTSENCODER>>\",\"documentation\":\"The `CHUNK` is used to split a Geo Time Series™ into partial GTS. The split operation is controlled by multiple parameters.\\nThe series will be splitted in chunks, each chunks will form a new GTS, with a label value corresponding to its first tick.\\n\\n@param `keepempty` If true empty chunks are kept\\n\\n@param `chunklabel` The label name of the label added by the split operation (with a value corresponding to the first tick of the chunk).\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` An overlap duration (in time units) between chunks, this is useful when chunking a GTS to apply an algorithm which operates on a sliding window.\\n\\n@param `chunkwidth` The width in time units of each chunk.\\n\\n@param `lastchunkend` The end timestamp of the most recent split to consider.\\n\\n@param `gts` A single GTS instance.\\n\\n@param `gtsList` A GTS list to split, each GTS will be splitted individually.\\n\\n@param `encoder` A single GTS Encoder instance.\\n\\n@param `lEncoder` A GTS Encoder list to split, each GTS Encoder will be splitted individually.\\n\\n@param `result` GTS Chunks, a list formed with its partial GTS.\\n\\n@param `resultEncoders` GTS Encoders Chunks, a list formed with its partial GTS Encoders.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CHUNK\"},{\"name\":\"CHUNKENCODER\",\"detail\":\"GTSEncoder<GTSENCODER> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNKENCODER  result<LIST<GTSENCODER>>\\nGTSEncoderList<LIST<GTSENCODER>> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNKENCODER  result<LIST<LIST<GTSENCODER>>>\",\"documentation\":\"The `CHUNKENCODER` function is used to split a [GTSEncoder](/doc/NEWENCODER) into partial GTSEncoder. The user defines some parameters that will \\nbe applied to the split operation. The series will be splitted in chunks, each chunks will form a new GTSEncoder, with a label value \\ncorresponding to its first tick.\\n\\nDeprecated since 2.1, use CHUNK instead which behaves the same.\\n\\n@param `keepempty` If true empty chunk are kept\\n\\n@param `chunklabel` The label name of the label added by this split operation (add a value corresponding to the first tick of the chunk). Could be a regular expression.\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` A time overlap for each chunks in time units.\\n\\n@param `chunkwidth` The width in time unit of each chunks in time units.\\n\\n@param `lastchunkend` The split operation end when it encounters this timestamp.\\n\\n@param `GTSEncoder` A single GTSEncoder \\n\\n@param `GTSEncoderList` A GTSEncoder list to split, each GTSEncoder will be splitted individually.\\n\\n@param `result` GTSEncoder Chunks, a list formed with its partial GTSEncoder\\n\\n\",\"tags\":[\"encoder\"],\"since\":\"1.2.9\",\"OPB64name\":\"CHUNKENCODER\"},{\"name\":\"CLEAR\",\"detail\":\"input<ANY*>  CLEAR \",\"documentation\":\"The `CLEAR` function empties the stack.\\n\\n@param `input` all the input on the stack will be erased from the stack.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEAR\"},{\"name\":\"CLEARDEFS\",\"detail\":\"\",\"documentation\":\"The `CLEARDEFS` function allows you to clear all [redefined WarpScript functions](/doc/DEF).\\n\\nBy default, all redefined WarpScript function, will not be available anymore. Set the `warpscript.def.unshadow` \\nconfiguration property to change this behaviour.\\n\\nThis configuration parameter determines if undefining a function (via NULL 'XXX' DEF) will unshadow the original statement \\nthus making it available again or if it will replace it with a function that will fail with a message saying the function is undefined.\\nThe safest behavior is to leave this undefined or set to **false**.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARDEFS\"},{\"name\":\"CLEARREGS\",\"detail\":\" CLEARREGS  value<ANY>\",\"documentation\":\"Clears all registers, setting their current value to `NULL`.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CLEARREGS\"},{\"name\":\"CLEARSYMBOLS\",\"detail\":\"\",\"documentation\":\"The `CLEARSYMBOLS` function clears all symbols defined with the function [`STORE`](/doc/STORE).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARSYMBOLS\"},{\"name\":\"CLEARTOMARK\",\"detail\":\"mark<MARK> inputs<ANY*>  CLEARTOMARK \",\"documentation\":\"Removes elements from the stack up to and including the first mark encountered.\\n\\n@param `inputs` all the inputs references on the stack will be erased\\n\\n@param `mark` the mark will also be erased\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARTOMARK\"},{\"name\":\"CLIP\",\"detail\":\"gts<GTS> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<GTS>>\\nlgts<LIST<GTS>> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<LIST<GTS>>>\\nencoder<GTSENCODER> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<GTSENCODER>>\\nlencoder<LIST<GTSENCODER>> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<LIST<GTS>>>\",\"documentation\":\"The `CLIP` function clips a Geo Time Series™, encoders or list thereof according to a series of limits. The limits are lists of pair containing the lower and upper \\ntimestamps used to clip. Each pair will generate a clipped GTS or encoder for each instance.\\n\\n@param `bounds` List of timestamp pairs. Each pair is a list of LONG.\\n\\n@param `gts` GTS to clip\\n\\n@param `lgts` List of GTSs to clip\\n\\n@param `encoder` Emcoder to clip\\n\\n@param `lencoder` List of encoders to clip\\n\\n@param `result` List of clipped GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.0\",\"OPB64name\":\"CLIP\"},{\"name\":\"CLONE\",\"detail\":\"gts<GTS>  CLONE  original<GTS> clone<GTS>\\nlist<LIST>  CLONE  original<LIST> clone<LIST>\\nmap<MAP>  CLONE  original<MAP> clone<MAP>\\nset<SET>  CLONE  original<SET> clone<SET>\\nvector<VECTOR>  CLONE  original<VECTOR> clone<VECTOR>\\nencoder<GTSENCODER>  CLONE  original<GTSENCODER> clone<GTSENCODER>\",\"documentation\":\"The `CLONE` function does a shallow copy of a given Geo Time Series™, List, Map or Vector. Since 2.1.1 it can also clone Encoders.\\n\\nAs it makes a shallow copy, be careful when using CLONE on a List of Geo Time Series™ like those generated by the use of [`FETCH`](/doc/FETCH). Modifying a Geo Time Series™ in any of those list will alter the matching Geo Time Series™ in the other List.\\nIf you want to use `CLONE` after a [`FETCH`](/doc/FETCH), you will need to extract the Geo Time Series™ from the list, for example by using [`LIST->`](/doc/I3_IK1oy), [`GET`](/doc/GET) or [`LMAP`](/doc/LMAP).\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `list` The List to clone\\n\\n@param `map` The Map to clone\\n\\n@param `set` The Set to clone\\n\\n@param `vector` The Vector to clone\\n\\n@param `encoder` The Encoder to clone\\n\\n@param `clone` The cloned Geo Time Series™, List, Map, Vector or Encoder\\n\\n@param `original` The original Geo Time Series™, List, Map, Vector or Encoder\\n\\n\",\"tags\":[\"gts\",\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONE\"},{\"name\":\"CLONEEMPTY\",\"detail\":\"gts<GTS>  CLONEEMPTY  result<GTS>\\ngtsList<LIST<GTS>>  CLONEEMPTY  resultList<LIST<GTS>>\\nencoder<GTSENCODER>  CLONEEMPTY  encoderResult<GTSENCODER>\\nencoderList<LIST<GTSENCODER>>  CLONEEMPTY  encoderResultList<LIST<GTSENCODER>>\",\"documentation\":\"Clones a Geo Time Series™, an Encoder or all the instances in a list of Geo Time Series™ or an Encoder, keeping only the metadata and not the values.\\n\\nThe `CLONEEMPTY` function takes as parameter a Geo Time Series™, an Encoder or a list thereof. It creates an empty clone of the input with only his metadata. The cloned metadata are:\\n * Classname\\n * Labels\\n * Attributes\\n * Lastbucket, for Geo Time Series™ only\\n * Bucketspan, for Geo Time Series™ only\\n * Bucketcount, for Geo Time Series™ only\\n * Base timestamp, for Encoders only\\n * Wrapping key, for Encoders only\\n\\nThe input parameter is consumed and the clone or list of clones is left on the stack.\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `gtsList` The list of Geo Time Series™ to clone\\n\\n@param `result` The cloned Geo Time Series™\\n\\n@param `resultList` The cloned list of Geo Time Series™\\n\\n@param `encoder` The encoder to clone\\n\\n@param `encoderList` The list of encoder to clone\\n\\n@param `encoderResult` The cloned encoder\\n\\n@param `encoderResultList` The cloned list of encoders\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEEMPTY\"},{\"name\":\"CLONEREVERSE\",\"detail\":\"input<LIST>  CLONEREVERSE  output<LIST>\\ninput<STRING>  CLONEREVERSE  output<STRING>\\ninput<BYTES>  CLONEREVERSE  output<BYTES>\",\"documentation\":\"The function CLONEREVERSE clone the input and reverses the order of the elements. \\nOutput is a reference to a new object.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n@param `input` reference of the list or string to reverse.\\n\\n@param `output` reference to a new reversed list or string or byte array.\\n\\n\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEREVERSE\"},{\"name\":\"COMMONTICKS\",\"detail\":\"gtsList<LIST<GTS>>  COMMONTICKS  result<LIST<GTS>>\",\"documentation\":\"Take a list of Geo Time Series™ and output A GTS list with only the set of ticks they have in common compared by timestamp.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with common ticks\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMMONTICKS\"},{\"name\":\"COMPACT\",\"detail\":\"gts<GTS>  COMPACT  result<GTS>\\ngtsList<LIST<GTS>>  COMPACT  resultList<LIST<GTS>>\",\"documentation\":\"The `COMPACT` function produces GTS with fewer values, by removing measurements which have the same value, location and elevation as the previous one.\\n\\nIt expects a Geo Time Series™ or a **LIST** of GTS as parameter.\\n\\nThe first tick will be kept, then ticks with value or position change will be kept. The last tick from the original GTS will be copied, in order to keep the same LASTTICK.\\n\\n@param `gts` A GTS to compact\\n\\n@param `gtsList` A GTS list to compact\\n\\n@param `result` A compacted GTS\\n\\n@param `resultList` A compacted GTS list\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMPACT\"},{\"name\":\"CONTAINS\",\"detail\":\"list<LIST> item<ANY>  CONTAINS  list<LIST> presence<BOOLEAN>\\nset<SET> item<ANY>  CONTAINS  set<LIST> presence<BOOLEAN>\\nstr<STRING> substr<STRING>  CONTAINS  presence<BOOLEAN>\",\"documentation\":\"The `CONTAINS` function checks if the element on top of the stack is contained by the list on second position. A boolean is pushed on the stack.\\n\\nIf the parameters are two STRINGs, `CONTAINS` checks if the second STRING is contained in the first one, leaving a boolean on the stack. This latter usage is available since revision 2.1.0.\\n\\n@param `item` Depending on list construction, could be a number, a string, a boolean, NULL, a GTS...\\n\\n@param `presence` true if inputlist contains the item. false otherwise or if inputlist is empty.\\n\\n@param `list` reference to the LIST to search.\\n\\n@param `set` reference to the SET to search.\\n\\n@param `str` STRING in which to find `substr`.\\n\\n@param `substr` STRING to find in `str`.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINS\"},{\"name\":\"CONTAINSKEY\",\"detail\":\"inputmap<MAP> key<ANY>  CONTAINSKEY  outputmap<MAP> presence<BOOLEAN>\",\"documentation\":\"The `CONTAINSKEY` function checks if the key element on top of the stack is a key \\nof the map on second position. \\n\\nThe key is consumed, and a boolean is pushed on the stack.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this key. Do not trust presence if key is NULL.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSKEY\"},{\"name\":\"CONTAINSVALUE\",\"detail\":\"inputmap<MAP> value<ANY>  CONTAINSVALUE  outputmap<MAP> presence<BOOLEAN>\",\"documentation\":\"The `CONTAINSVALUE` function checks if the value element on top of the stack is a value \\nof the map on second position. \\n\\nThe value is consumed, and a boolean is pushed on the stack.\\n\\n@param `value` Depending on map construction, could be a number, a string, a boolean, NULL.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this value in at least one pair of its key-value.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSVALUE\"},{\"name\":\"CONTINUE\",\"detail\":\"\",\"documentation\":\"Immediately stop executing the current iteration of an ongoing loop and start the next one.\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTINUE\"},{\"name\":\"COPYGEO\",\"detail\":\"gts<GTS> geogts<GTS>  COPYGEO  result<GTS>\\ngtsList<LIST<GTS>> geogts<GTS>  COPYGEO  resultList<LIST<GTS>>\",\"documentation\":\"The `COPYGEO` function forces the location elements of a GTS onto others. `COPYGEO` expects two parameters on the stack.\\nFirst input is GTS or a gts list: those series(s) will have their location overwritten by the one of the second GTS parameter. Geo information will be copied only if they are present in the second paramaters on the same tick otherwise it keep the existing location. See [`COMMONTICKS`](/doc/COMMONTICKS) to keep only commonticks before calling `COPYGEO`.\\n\\n@param `gts` A GTS\\n\\n@param `gtsList` A list of GTS\\n\\n@param `geogts` A GTS with the geo information you want to copy to other (list of) gts.\\n\\n@param `result` A GTS with the geo information of the geogts input\\n\\n@param `resultList` A list of GTS with the geo information of the geogts input\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYGEO\"},{\"name\":\"COPYSIGN\",\"detail\":\"p1<NUMBER> p2<NUMBER>  COPYSIGN  result<DOUBLE>\\np1<NUMBER> list2<LIST<NUMBER>>  COPYSIGN  lresult<LIST<DOUBLE>>\\nlist1<LIST<NUMBER>> p2<NUMBER>  COPYSIGN  lresult<LIST<DOUBLE>>\\np1<NUMBER> gts2<GTS>  COPYSIGN  gtsresult<GTS>\\ngts1<GTS> p2<NUMBER>  COPYSIGN  gtsresult<GTS>\",\"documentation\":\"The `COPYSIGN` function copies the sign of a number on another one and pushes back the value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `p1` Numerical value on which sign is applied\\n\\n@param `p2` Numerical value from which sign is extracted\\n\\n@param `list1` List of numerical values on which sign is applied\\n\\n@param `list2` List of numerical values from which sign is extracted\\n\\n@param `gts1` Numerical GTS on which sign is applied\\n\\n@param `gts2` Numerical GTS from which sign is extracted\\n\\n@param `result` Value of p1 with the sign of p2 s a DOUBLE\\n\\n@param `lresult` List of results\\n\\n@param `gtsresult` Numerical GTS of results\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYSIGN\"},{\"name\":\"CORRELATE\",\"detail\":\"baseGTS<GTS> gtsList<LIST> timeOffsets<LIST>  CORRELATE  result<LIST<GTS>>\",\"documentation\":\"The `CORRELATE` function allows you to compute correlation between one base Geo Time Series™ and a set of others. \\nBy putting the base GTS in the set of others, cross correlation can be computed.\\n\\n@param `baseGTS` The base Geo Time Series\\n\\n@param `gtsList` A list of Geo Time Series against which to compute the correlation\\n\\n@param `timeOffsets` A list of time offsets for which the correlation will be computed (expressed in time units of the Warp instance)\\n\\n@param `result` A list of synthetic Geo Time Series™ whose timestamps are the offsets from the initial offset list and the values are the computed correlations. There is one GTS per GTS in the list at TOP-1.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CORRELATE\"},{\"name\":\"COS\",\"detail\":\"value<NUMBER>  COS  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  COS  lresult<LIST<DOUBLE>>\\ngts<GTS>  COS  gtsresult<GTS>\",\"documentation\":\"The `COS` function consumes a floating point number from the top of the stack and pushes back its cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Cosine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cosine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COS\"},{\"name\":\"COSH\",\"detail\":\"value<NUMBER>  COSH  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  COSH  lresult<LIST<DOUBLE>>\\ngts<GTS>  COSH  gtsresult<GTS>\",\"documentation\":\"The `COSH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic cosine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic cosine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COSH\"},{\"name\":\"COUNTER\",\"detail\":\" COUNTER  counter<COUNTER>\",\"documentation\":\"The `COUNTER` function pushes a counter (AtomicLong) initialized with the value 0 onto the stack.\\n\\nThis atomic counter can be safely shared in multiple concurrent macros (see [`CEVAL`](/doc/CEVAL)).\\n\\n@param `counter` Counter instance.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTER\"},{\"name\":\"COUNTERDELTA\",\"detail\":\"counter<COUNTER> increment<LONG>  COUNTERDELTA  counter<COUNTER>\",\"documentation\":\"The `COUNTERDELTA` function increments a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `increment` Counter increment.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERDELTA\"},{\"name\":\"COUNTERSET\",\"detail\":\"counter<COUNTER> value<LONG>  COUNTERSET  counter<COUNTER>\",\"documentation\":\"The `COUNTERSET` function set the value of a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `value` Counter value.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.2.22\",\"OPB64name\":\"COUNTERSET\"},{\"name\":\"COUNTERVALUE\",\"detail\":\"counter<COUNTER>  COUNTERVALUE  value<LONG>\",\"documentation\":\"The `COUNTERVALUE` function pushes the counter value onto the stack.\\n\\n@param `counter` The counter instance.\\n\\n@param `value` The value of the counter.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERVALUE\"},{\"name\":\"COUNTTOMARK\",\"detail\":\" COUNTTOMARK  result<LONG>\",\"documentation\":\"Counts the number of elements on the stack up to but excluding the first mark encountered. Neither the mark nor the\\nelements on top of it are removed from the stack.\\n\\n@param `result` Stack depth until `MARK`\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTTOMARK\"},{\"name\":\"CPOPR\",\"detail\":\"value<ANY>  CPOPR \",\"documentation\":\"Pops a value from the top of the stack and stores it into the designated register if the register is empty (*i.e.* has `NULL` as its current value).\\n\\nThe `CPOPR` function is really a family of functions named `CPOPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CPOPR\"},{\"name\":\"CPROB\",\"detail\":\"gts<GTS> separator<STRING>  CPROB  result<GTS>\\nlgts<LIST<GTS>> separator<STRING>  CPROB  lresult<LIST<GTS>>\",\"documentation\":\"The function `CPROB` generates a new Geo Time Series™ from an input Geo Time Series™ by computing a conditional probability.\\n\\nThe function expects a **STRING** separator on top of the stack and expects the input Geo Time Series™ to have \\nvalues of the form given1< SEP >given2< SEP >....< SEP >event. It will then emit P(event|given1,given2,...).\\n\\nIf the separator is **NULL**, `CPROB` behaves like [`PROB`](/doc/PROB).\\n\\n@param `separator` Value separator\\n\\n@param `gts` Geo Time Series™\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `lresult` List of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.6\",\"OPB64name\":\"CPROB\"},{\"name\":\"CROP\",\"detail\":\"gts<GTS>  CROP  result<GTS>\\ngtsList<LIST<GTS>>  CROP  resultList<LIST<GTS>>\",\"documentation\":\"The `CROP` function works on bucketized Geo Time Series™ instances, it transforms a GTS into another one whose bucketcount, last bucket parameters span the smallest interval with actual values. Bucket span remains the same.\\n\\nWhen called on a non bucketized GTS instance, `CROP` simply clones it.\\n\\nThis function expects a list of GTS instances on the top of the stack.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `resultList` A list of cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"CROP\"},{\"name\":\"CSTORE\",\"detail\":\"value<ANY> symbol<STRING>  CSTORE \\nvalue<ANY> register<LONG>  CSTORE \",\"documentation\":\"The `CSTORE` function stores a value in a symbol or a register only if that symbol or register is not yet defined. The name of this function stands for Conditional STORE.\\n\\n@param `symbol` Name of symbol under which to store `value`.\\n\\n@param `register` Number of the register under which to store `value`.\\n\\n@param `value` Value to store unde `symbol`.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CSTORE\"},{\"name\":\"CUDF\",\"detail\":\"class<STRING>  CUDF \",\"documentation\":\"The `CUDF` function invokes a User Defined Function from a Jar as [`UDF`](/doc/UDF) but reuses a cached instance of the function.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CUDF\"},{\"name\":\"DEBUGOFF\",\"detail\":\"\",\"documentation\":\"Turns off stack debugging which was turned on by [`DEBUGON`](/doc/DEBUGON) or [`NDEBUGON`](/doc/NDEBUGON).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGOFF\"},{\"name\":\"DEBUGON\",\"detail\":\"\",\"documentation\":\"Turns on stack debugging which returns the stack content in case of error. Stack debugging is off by default.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGON\"},{\"name\":\"DECREMENTEXACT\",\"detail\":\"value<NUMBER>  DECREMENTEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  DECREMENTEXACT  lresult<LIST<LONG>>\\ngts<GTS>  DECREMENTEXACT  gtsresult<GTS>\",\"documentation\":\"The `DECREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value decremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be decremented by one\\n\\n@param `result` The decremented value\\n\\n@param `lvalue` List of values to be decremented by one\\n\\n@param `lresult` List of decremented values\\n\\n@param `gts` GTS whose values are to be decremented by one\\n\\n@param `gtsresult` GTS of decremented values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"DECREMENTEXACT\"},{\"name\":\"DEDUP\",\"detail\":\"gts<GTS>  DEDUP  result<GTS>\\ngts<GTS> mapper<AGGREGATOR>  DEDUP  lresult<GTS>\\ngts<GTS> macro<MACRO>  DEDUP  lresult<GTS>\\nlgts<LIST<GTS>>  DEDUP  lresult<LIST<GTS>>\\nlgts<LIST<GTS>> mapper<AGGREGATOR>  DEDUP  lresult<LIST<GTS>>\\nlgts<LIST<GTS>> macro<MACRO>  DEDUP  lresult<LIST<GTS>>\",\"documentation\":\"Removes duplicate ticks.\\n\\nThe `DEDUP` function consumes a Geo Time Series™ or a **LIST** thereof from the top of the stack and pushes back the Geo Time Series™ with deduplicated ticks.\\n\\nSince the 2.7.0 version, this function can be given an optional mapper or macro to combine the duplicate data points.\\n\\n@param `gts` The Geo Time Series™ to deduplicate\\n\\n@param `result` The Geo Time Series™ with deduplicated ticks\\n\\n@param `lgts` The list of Geo Time Series™ to deduplicate\\n\\n@param `lresult` The list of Geo Time Series™ with deduplicated ticks\\n\\n@param `mapper` Mapper used to aggregate duplicate values\\n\\n@param `macro` Macro used to aggregate duplicate values given as a GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEDUP\"},{\"name\":\"DEF\",\"detail\":\"newDef<MACRO> name<STRING>  DEF \",\"documentation\":\"The `DEF` function allows you to define new WarpScript functions or redefine existing ones for the duration of your script execution.\\n\\nThe function expects on the stack a macro which will be used as the content of the newly defined function, and a name under which to define the new function.\\n\\nWhen redefining a function, if the function being redefined is used within the macro, the code which will be executed is the current one, \\nas the binding of function to code is done at the time when the macro is defined and not when it is executed.\\n\\nYou may therefore add limits to the use of an existing function by rewrapping it in a macro which will be associated with the original function name.\\n\\nTo remove redefined functions see [`CLEARDEFS`](/doc/CLEARDEFS).\\n\\n@param `name` New function name\\n\\n@param `newDef` Macro which will be used as the content of the newly defined function\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEF\"},{\"name\":\"DEFINED\",\"detail\":\"name<STRING>  DEFINED  result<BOOLEAN>\",\"documentation\":\"The `DEFINED` function checks whether or not a symbol is defined.\\n\\n@param `name` Symbol name\\n\\n@param `result` Whether or not the symbol is defined\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEFINED\"},{\"name\":\"DEFINEDMACRO\",\"detail\":\"name<STRING>  DEFINEDMACRO  result<BOOLEAN>\",\"documentation\":\"The `DEFINEDMACRO` function checks if a macro is defined and pushes true or false on the stack accordingly.\\n\\n@param `name` The macro name\\n\\n@param `result` True if the macro is defined, false otherwise\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.16\",\"OPB64name\":\"DEFINEDMACRO\"},{\"name\":\"DEFLATE\",\"detail\":\"string<STRING>  DEFLATE  compressed<BYTES>\\nbytes<BYTES>  DEFLATE  compressed<BYTES>\",\"documentation\":\"The `DEFLATE` function compresses a STRING or a byte array using the [Zlib](https://en.wikipedia.org/wiki/Zlib) library. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"DEFLATE\"},{\"name\":\"DELETE\",\"detail\":\"writeToken<STRING> gts_selector<STRING> start_timestamp<LONG> end_timestamp<LONG> count<LONG>  DELETE  result<LONG>\",\"documentation\":\"The `DELETE` function is used to delete a set of GTS from a Warp 10 platform. A delete endpoint must be set on the Warp 10 configuration.\\n\\nDelete expects 5 parameters on top of the stack: the write token of the Warp 10 application, a string corresponding to a gts selector, a start \\nand a end timestamp and finally the number of GTS expected to be deleted.\\n\\nIf you specify start and end, Warp 10 will delete datapoints. If there is not any datapoints left, the GTS will remain in the directory (FIND will return it). To delete all datapoints and the directory entry, use NULL for end_timestamp and start_timestamp. FIND won't find anything after a delete all.\\n\\nFor safety reasons `DELETE` will first perform a dryrun call to the /delete endpoint to retrieve the number of GTS which would be deleted by the call. \\nIf this number is above the expected number provided by the user the actual delete will not be performed and instead an error will be raised.\\n\\nDelete will push as a result the number of GTS really deleted.\\n\\nSince 2.7.3, when setting `NULL` as the number of GTSs to delete, the `DELETE` function runs in dry mode. This means no GTS is deleted and the function returns the GTSs list that would be considered by the `DELETE`.\\n\\nOn a standalone version, deleting data will not free disk space until the next compaction. If you want to immediatly free disk space, contact us to get the leveldb plugin.\\n\\n\\n@param `count` Number of GTS expected to be deleted or NULL for a dryrun\\n\\n@param `end_timestamp` End timestamp or NULL\\n\\n@param `start_timestamp` Start timestamp or NULL\\n\\n@param `gts_selector` GTS selector\\n\\n@param `writeToken` Write token\\n\\n@param `result` Actual deleted GTS count\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.5\",\"OPB64name\":\"DELETE\"},{\"name\":\"DELETEOFF\",\"detail\":\"message<STRING> secret<STRING>  DELETEOFF \",\"documentation\":\"Disables delete operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a delete operation is attempted.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEOFF\"},{\"name\":\"DELETEON\",\"detail\":\"secret<STRING>  DELETEON \",\"documentation\":\"Enables delete operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEON\"},{\"name\":\"DEPTH\",\"detail\":\" DEPTH  result<LONG>\",\"documentation\":\"The `DEPTH` function pushes on top of the stack the depth (i.e. number of levels) of the stack prior to the call.\\n\\n@param `result` Stack depth\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEPTH\"},{\"name\":\"DEREF\",\"detail\":\"macro<MACRO> values<MAP>  DEREF  macro<MACRO>\",\"documentation\":\"Replaces in a Macro the occurrences of symbol dereferencing (`$x`) or calls to `LOAD` with a `STRING` argument or calls to `PUSHRx` by the values associated with either the symbol name or register number in a parameter map.\\n\\nValues are used verbatim except for Macros which are inserted as functions, *i.e.* they are inserted followed by a call to `EVAL` so they are executed in the target macro instead of ending up on the stack. If you wish to replace a symbol dereference by a Macro, you need to write the macro inside of another Macro.\\n\\n\\n@param `macro` Macro to transform.\\n\\n@param `values` Map of symbol name or register number to replacement value.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.3.0\",\"OPB64name\":\"DEREF\"},{\"name\":\"DET\",\"detail\":\"matrix<MATRIX>  DET  det<DOUBLE>\",\"documentation\":\"Computes the [determinant](https://en.wikipedia.org/wiki/Determinant) of a matrix.\\n\\n@param `matrix` The matrix for which to compute the determinant.\\n\\n@param `det` The computed determinant.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"DET\"},{\"name\":\"DIFFERENCE\",\"detail\":\"setA<SET> setB<SET>  DIFFERENCE  output<SET>\",\"documentation\":\"Computes the difference between two sets.\\n\\nThe `DIFFERENCE` function consumes two sets from the top of the stack and pushes back its mathematical difference (ie: the elements in *A* but not in *B*).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* - *B*, the set of elements in *A* but not in *B*\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"DIFFERENCE\"},{\"name\":\"DISCORDS\",\"detail\":\"lgts<LIST<GTS>> wsize<LONG> length<LONG> scale<LONG> maximum<LONG> overlapping<BOOLEAN> distance<DOUBLE>  DISCORDS  lresult<LIST<GTS>>\\ngts<GTS> wsize<LONG> length<LONG> scale<LONG> maximum<LONG> overlapping<BOOLEAN> distance<DOUBLE>  DISCORDS  result<GTS>\",\"documentation\":\"The `DISCORDS` function detects discords in a Geo Time Series™. The discord detection algorithm is based on identifying outlier patterns in\\nthe Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `DISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0\\n\\n@param `overlapping` Flag indicating whether or not the `DISCORDS` function should report overlapping discords\\n\\n@param `maximum` The maximum number of discords to identify\\n\\n@param `lresult` The list of Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `result` The Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"DISCORDS\"},{\"name\":\"DOC\",\"detail\":\"string<STRING>  DOC  string<STRING>\",\"documentation\":\"Consumes the String on the stack or leave it there and stop the script if the stack is currently in documentation mode ([`DOCMODE`](/doc/DOCMODE)) \\n\\nYou can use it to document macros.\\n\\n@param `string` Text to display in [`DOCMODE`](/doc/DOCMODE)\\n\\n\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOC\"},{\"name\":\"DOCMODE\",\"detail\":\"\",\"documentation\":\"Toggle the 'documentation mode' of the stack\\n\\n\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOCMODE\"},{\"name\":\"DOUBLEBITS->\",\"detail\":\"input<LONG>  DOUBLEBITS->  result<DOUBLE>\",\"documentation\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the **LONG** value as the raw bits of the **DOUBLE**\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"G3xKFZl4FZ_JJmoy\"},{\"name\":\"DOUBLEEXPONENTIALSMOOTHING\",\"detail\":\"gts<GTS> alpha<DOUBLE> beta<DOUBLE>  DOUBLEEXPONENTIALSMOOTHING  result<LIST<GTS>>\",\"documentation\":\"The `DOUBLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Double Exponential Smoothing aka Holt's linear trend method](https://www.otexts.org/fpp/7/2) formula.\\n\\nIt consumes three parameters from the top of the stack:\\n * A trend smoothing factor beta (a numeric parameter between 0 < beta < 1)\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** and levels are pushed onto the stack (in this order in the **LIST**).\\n\\n@param `beta` The trend smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The list within the smoothed Geo Time Series™ and its levels\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOUBLEEXPONENTIALSMOOTHING\"},{\"name\":\"DROP\",\"detail\":\"input<ANY>  DROP \",\"documentation\":\"The `DROP` function removes the element at the top of the stack.\\n\\n@param `input` object reference to drop from the top of the stack.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROP\"},{\"name\":\"DROPN\",\"detail\":\"number<NUMBER>  DROPN \",\"documentation\":\"The `DROPN` function removes the top N elements of the stack after having consumed N which was on the top of the stack prior to calling `DROPN`.\\n\\n@param `number` The number of elements to drop\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROPN\"},{\"name\":\"DTW\",\"detail\":\"gts1<GTS> gts2<GTS> threshold<DOUBLE>  DTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> characteristic<STRING>  DTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> distance<STRING> characteristic<STRING>  DTW  dtw<DOUBLE>\",\"documentation\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"DTW\"},{\"name\":\"DUP\",\"detail\":\"input<ANY>  DUP  input<ANY> out<ANY>\",\"documentation\":\"The `DUP` function duplicates the element on the top of the stack, it doesn’t copy the content. If you apply DUP to a GTS you will\\nhave two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `input` any parameter on top of the stack\\n\\n@param `out` a reference copy of input on top of the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUP\"},{\"name\":\"DUPN\",\"detail\":\"number<NUMBER>  DUPN \",\"documentation\":\"The `DUPN` function duplicates the top N elements of the stack after having consumed N which is on the top of the stack when calling `DUPN`.\\n\\nAs the [`DUP`](/doc/DUP) function, `DUPN` duplicates the references of the N elements on the top of the stack, it doesn’t copy the elements.\\nIf you apply `DUPN` to a GTS you will have two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want to copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `number` The number of elements to duplicate\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUPN\"},{\"name\":\"DURATION\",\"detail\":\"isoDuration<STRING>  DURATION  duration<LONG>\",\"documentation\":\"The `DURATION` function consumes a **STRING** representing an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) and pushes back a **LONG** duration in platform time unit.\\n\\nThe ISO 8601 duration can be expessed as `PwWdDThHmMsS` with:\\n- `w` weeks\\n- `d` days\\n- `h` hours\\n- `m` minutes\\n- `s` or `s.ssssss...` seconds\\nEach of these values can be either positive or negative. Each value/unit couple can be omitted if the value is zero but at least one value/couple should be defined.\\n\\nIf the consumed ISO 8601 duration has precision under platform time unit, superfluous digits will be ignored. Prior to revision 2.4, precision below milliseconds were always ignored, independently of platform time unit.\\n\\n@param `isoDuration` A representation of a ISO 8601 duration with some limitations, see the description.\\n\\n@param `duration` Number of platform time unit corresponding to the duration.\\n\\n\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"DURATION\"},{\"name\":\"DWTSPLIT\",\"detail\":\"gts<GTS> label-name<STRING>  DWTSPLIT  result<GTS>\\nlgts<LIST<GTS>> label-name<STRING>  DWTSPLIT  lresult<LIST<GTS>>\",\"documentation\":\"The `DWTSPLIT` function splits a Geo Time Series™ produced by [`FDWT`](/doc/FDWT) into multiple series, one per resolution level of the Wavelet transform.\\n\\n\\n@param `label-name` Label name used in the generated series to indicate the level of each Geo Time Series™\\n\\n@param `gts` GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `lgts` List of GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `result` Splited GTS\\n\\n@param `lresult` List of splited GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DWTSPLIT\"},{\"name\":\"E\",\"detail\":\" E  eValue<DOUBLE>\",\"documentation\":\"Alias of [e](/doc/OF).\\n\\nThe `E` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"GF\"},{\"name\":\"ECDH\",\"detail\":\"private<KEY> public<KEY>  ECDH  secret<STRING>\",\"documentation\":\"The `ECDH` function uses the [Elliptic-curve Diffie–Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) key agreement protocol to establish a secret.\\n\\nThe secret is derived from two ECC keys, one public, one private. This secret can be established independently by two parties who only need to share their ECC public keys and combine them with their private keys.\\n\\nThe public and private keys must use the same curve.\\n\\n@param `public` ECC public key.\\n\\n@param `private` ECC private key.\\n\\n@param `secret` Hex encoded secret.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.2\",\"OPB64name\":\"ECDH\"},{\"name\":\"ECGEN\",\"detail\":\"curve<STRING>  ECGEN  private<MAP> public<MAP>\",\"documentation\":\"The `ECGEN` function generates a public/private key pair parameters suitable for performing [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography).\\n\\nThe resulting parameters can serve as input to [`ECPRIVATE`](/doc/ECPRIVATE) and [`ECPUBLIC`](/doc/ECPUBLIC) to generate the actual private and public keys.\\n\\nThe following curves are supported:\\n\\n`c2pnb272w1`, `c2tnb191v3`, `c2pnb208w1`, `c2tnb191v2`, `c2tnb191v1`, `prime192v3`, `c2tnb359v1`, `prime192v2`, `prime192v1`, `c2tnb239v3`, `c2pnb163v3`, `c2tnb239v2`, `c2pnb163v2`, `c2tnb239v1`, `c2pnb163v1`, `c2pnb176w1`, `prime256v1`, `c2pnb304w1`, `c2pnb368w1`, `c2tnb431r1`, `prime239v3`, `prime239v2`, `prime239v1`, `sect233r1`, `secp112r2`, `secp112r1`, `secp256k1`, `sect113r2`, `secp521r1`, `sect113r1`, `sect409r1`, `secp192r1`, `sect193r2`, `sect131r2`, `sect193r1`, `sect131r1`, `secp160k1`, `sect571r1`, `sect283k1`, `secp384r1`, `sect163k1`, `secp256r1`, `secp128r2`, `secp128r1`, `secp224k1`, `sect233k1`, `secp160r2`, `secp160r1`, `sect409k1`, `sect283r1`, `sect163r2`, `sect163r1`, `secp192k1`, `secp224r1`, `sect239k1`, `sect571k1`, `B-163`, `P-521`, `P-256`, `B-233`, `P-224`, `B-409`, `P-384`, `B-283`, `B-571`, `P-192`, `brainpoolp512r1`, `brainpoolp384t1`, `brainpoolp256r1`, `brainpoolp192r1`, `brainpoolp512t1`, `brainpoolp256t1`, `brainpoolp224r1`, `brainpoolp320r1`, `brainpoolp192t1`, `brainpoolp160r1`, `brainpoolp224t1`, `brainpoolp384r1`, `brainpoolp320t1`, `brainpoolp160t1`\\n\\n@param `curve` Name of the elliptic curve to use.\\n\\n@param `public` Map containing the public key parameters.\\n\\n@param `private` Map containing the private key parameters.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECGEN\"},{\"name\":\"ECHOOFF\",\"detail\":\" ECHOOFF \",\"documentation\":\"Turns off the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOOFF\"},{\"name\":\"ECHOON\",\"detail\":\"levels<NUMBER>  ECHOON \",\"documentation\":\"Turns on the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of topmost stack levels to display after each WarpScript™ line, truncated if floating-point.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOON\"},{\"name\":\"ECPRIVATE\",\"detail\":\"private<MAP>  ECPRIVATE  key<KEY>\\nkey<KEY>  ECPRIVATE  private<MAP>\",\"documentation\":\"The `ECPRIVATE` function generates a private key from private key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\n@param `private` Map containing ECC private key parameters.\\n\\n@param `key` ECC private key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPRIVATE\"},{\"name\":\"ECPUBLIC\",\"detail\":\"public<MAP>  ECPUBLIC  key<KEY>\\nkey<KEY>  ECPUBLIC  public<MAP>\\nprivate<KEY>  ECPUBLIC  key<KEY>\",\"documentation\":\"The `ECPUBLIC` function generates a public key from public key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\nThe function can also produce a public key from a private key produced by [`ECPRIVATE`](/doc/ECPRIVATE).\\n\\n@param `private` Private key generated by `ECPRIVATE`.\\n\\n@param `public` Map containing ECC public key parameters.\\n\\n@param `key` ECC public key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPUBLIC\"},{\"name\":\"ECRECOVER\",\"detail\":\"params<MAP>  ECRECOVER  keys<LIST<KEY>>\",\"documentation\":\"The `ECRECOVER` function allows to infer from a hash and an associated [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) signature a list of public keys whose associated private keys may have generated the signature. From those candidate keys and some additional information, for example a [bitcoin](https://en.bitcoin.it/wiki/Invoice_address) or [Ethereum](https://en.wikipedia.org/wiki/Ethereum#Addresses) address, one can identify the correct public key whose companion private key signed the hash.\\n\\nThe function takes as input a parameter map with the following elements:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `curve` | The name of the ECC curve used by the key to recover. |\\n| `hash` | Byte array of the hash which was signed. |\\n| `sig` | Byte array of the signature, as generated by [`ECSIGN`](/doc/ECSIGN). |\\n| `coords` | Optional boolean flag indicating whether or not to return the coordinates of the `R` point. |\\n\\n@param `params` Parameter map. See description of keys above.\\n\\n@param `keys` List of candidate public keys. The list contains the `Q` public keys or maps with `Q` and the `R.x` and `R.y` coordinates of the `R` point computed during the signature process. Those `Q` public keys can be converted to a map format using [`ECPUBLIC`](/doc/ECPUBLIC).\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"ECRECOVER\"},{\"name\":\"ECSIGN\",\"detail\":\"data<BYTES> alg<STRING> private<KEY>  ECSIGN  signature<BYTES>\",\"documentation\":\"The `ECSIGN` function generates a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) private key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Content to sign.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `private` Private key to use for signining.\\n\\n@param `signature` Resulting signature.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECSIGN\"},{\"name\":\"ECVERIFY\",\"detail\":\"data<BYTES> signature<BYTES> alg<STRING> public<KEY>  ECVERIFY  result<BOOLEAN>\",\"documentation\":\"The `ECVERIFY` function verifies a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) public key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Signed data.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `public` Public key to use for verification.\\n\\n@param `signature` Signature to verify.\\n\\n@param `result` Validity of the signature.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECVERIFY\"},{\"name\":\"EIP712.HASH\",\"detail\":\"structure<MAP>  EIP712.HASH  hash<BYTES>\",\"documentation\":\"Computes the hash of a typed structure conforming to [EIP-712](https://eips.ethereum.org/EIPS/eip-712).\\n\\n@param `structure` EIP-712 conformant structure to hash.\\n\\n@param `hash` Hash of the structure. Can be used to verify signature using `ETH.VERIFY`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"EIP712.HASH\"},{\"name\":\"ELAPSED\",\"detail\":\" ELAPSED  result<LIST<LONG>>\",\"documentation\":\"The `ELAPSED` function pushes onto the stack a list containing timing informations. The first element of the list is the timestamp at which \\nthe script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution \\nof the associated script line.\\n\\nTiming informations are only collected after a call to [`TIMINGS`](/doc/TIMINGS) (its line included) and before a call to [`NOTIMINGS`](/doc/NOTIMINGS)\\n (its line excluded).\\n\\n@param `result` The first element of the list is the timestamp at which the script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution of the associated script line.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELAPSED\"},{\"name\":\"ELEVATIONS\",\"detail\":\"gts<GTS>  ELEVATIONS  elevations<LIST<LONG>>\\nlgts<LIST<GTS>>  ELEVATIONS  lelevations<LIST<LIST<LONG>>>\",\"documentation\":\"The `ELEVATIONS` function consumes a Geo Time Series™ or a list thereof from the stack, extracts its elevations, puts them in a list and pushes the list onto the stack.\\n\\n@param `gts` The Geo Time Series™ from which to extract the elevations\\n\\n@param `lgts` The list of Geo Time Series™ from which to extract the elevations\\n\\n@param `elevations` The elevations of the given Geo Time Series™\\n\\n@param `lelevations` The list of elevations of the given Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELEVATIONS\"},{\"name\":\"EMPTY\",\"detail\":\"gtsList<LIST<GTS>>  EMPTY  result<LIST<GTS>>\",\"documentation\":\"Reject GTS instances with values.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with empty values\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"EMPTY\"},{\"name\":\"ENCODER->\",\"detail\":\"encoder<GTSENCODER>  ENCODER->  name<STRING> attributes<MAP> labels<MAP> output<LIST>\\nwrappedinput<STRING>  ENCODER->  name<STRING> attributes<MAP> labels<MAP> output<LIST>\\nrawwrappedinput<BYTES>  ENCODER->  name<STRING> attributes<MAP> labels<MAP> output<LIST>\",\"documentation\":\"The `ENCODER->` functions convert an encoder into a list of ( timestamp, latitude, longitude, elevation, value ) list. It also pushes attributes, labels and name on the stack.\\nFunction also accepts wrapped or raw-wrapped encoders or gts.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedinput` Encoder or GTS after WRAP. \\n\\n@param `rawwrappedinput` Encoder or GTS after WRAPRAW.\\n\\n@param `output` List of list of ( timestamp, latitude, longitude, elevation, value ). Missing values in the encoder or GTS are replaced by NaN.\\n\\n@param `name` Name of encoder or GTS. If no name was defined, will be NULL.\\n\\n@param `attributes` Attributes of encoder or GTS input. If none defined, will be an empty map.\\n\\n@param `labels` Labels of encoder or GTS input. If none defined, will be an empty map.\\n\\n\",\"tags\":[\"encoder\",\"conversion\",\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"GJt2IoG4JXoy\"},{\"name\":\"ERROR\",\"detail\":\" ERROR  error<LIST<MAP>>\",\"documentation\":\"Pushes onto the stack a list containing the current error (as caught by a [`TRY`](/doc/TRY)) and its causes. Each error is a map with the following fields:\\n\\n| Field | Description |\\n| --- | --- |\\n| type | Type of the error, the Java class of the underlying exception |\\n| message | The message associated with the error |\\n| stacktrace | A list of lists, each containing `filename`, `line number`, `class name`, `method name` |      \\n\\nThe current error is the first element of the list.\\n\\nIf there is no current error, the returned list will be empty.\\n\\n@param `error` List of maps describing the current error and its causes.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ERROR\"},{\"name\":\"ESDTEST\",\"detail\":\"gts<GTS> k<LONG> mad<BOOLEAN> alpha<DOUBLE>  ESDTEST  result<LIST<LONG>>\\ngts<GTS> k<LONG> mad<BOOLEAN>  ESDTEST  result<LIST<LONG>>\\ngtsList<LIST<GTS>> k<LONG> mad<BOOLEAN> alpha<DOUBLE>  ESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> k<LONG> mad<BOOLEAN>  ESDTEST  resultList<LIST<LIST<LONG>>>\",\"documentation\":\"The `ESDTEST` function detects outliers in a GTS (or a **LIST** of GTS), by applying a [generalized extreme studentized deviate test](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h3.htm).\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nA [Grubbs’](/doc/GRUBBSTEST)test is done for one candidate at a time. Then, the candidate is removed from the set and another [Grubbs’](/doc/GRUBBSTEST)test\\nis performed. This process is iterated a given number of times. The detected outliers are the removed values and the current candidate of the last successful\\ntest.\\n\\nA **LIST** of ticks (or a **LIST** of **LIST** of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ESDTEST\"},{\"name\":\"ETH.BIP32\",\"detail\":\"{ path<STRING> passphrase<STRING> seed<STRING>  } ETH.BIP32  key<KEY>\",\"documentation\":\"The `ETH.BIP32` function generates an ECC private key from a seed phrase, optional passphrase and derivation path.\\n\\n@param `seed` Valid (English) seed phrase to use for generating the ECC private key.\\n\\n@param `passphrase` Optional passphrase.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `key` Generated ECC private key.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP32\"},{\"name\":\"ETH.BIP39\",\"detail\":\"seed<STRING>  ETH.BIP39  validated<STRING>\",\"documentation\":\"The `ETH.BIP39` function validates a seed phrase according to the English [BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md) word list. The function will return the validated seed or throw an exception if validation failed.\\n\\n@param `seed` Seed phrase to validate.\\n\\n@param `validated` Validated seed phrase.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP39\"},{\"name\":\"ETH.CALL\",\"detail\":\"args<LIST> abi<MAP>  ETH.CALL  payload<STRING>\\nmargs<MAP> abi<MAP>  ETH.CALL  payload<STRING>\",\"documentation\":\"The `ETH.CALL` function generates a transaction payload which represents a smart contract function call.\\n\\n@param `abi` `MAP` containing the description of the endpoint to call, as generated by `ABI->`.\\n\\n@param `args` `LIST` of arguments to the call, in the order in which they appear in the function signature.\\n\\n@param `margs` `MAP` of argument names to values. The function arguments will be extracted from this `MAP` based on their name.\\n\\n@param `payload` Hex encoded payload representing the function call.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.CALL\"},{\"name\":\"ETH.KEY\",\"detail\":\"{ path<STRING> passphrase<STRING> seed<STRING> private<KEY>  } ETH.KEY  result<MAP>\",\"documentation\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `private` ECC private `KEY`. If not set, then `seed` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `result` Extracted public and private key and associated Ethereum address.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.KEY\"},{\"name\":\"ETH.LOG\",\"detail\":\"log<MAP> abi<MAP>  ETH.LOG  result<MAP>\",\"documentation\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `abi` `MAP` containing the description of the `event` to decode.\\n\\n@param `log` Log entry to decode. Typically a `MAP` from the `log` list present in a transaction receipt returned by `ETH.RECEIPT`.\\n\\n@param `result` Decoded event.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.LOG\"},{\"name\":\"ETH.NONCE\",\"detail\":\"{ private<KEY> passphrase<STRING> path<STRING> seed<STRING> address<STRING> url<STRING>  } ETH.NONCE  nonce<STRING>\",\"documentation\":\"The `ETH.NONCE` function retrieves the latest used nonce for a given address from a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce. Defaults to `http://localhost:3545/`.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path`, or `address` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address whose nonce must be retrieved. If unset, use `seed` or `private`.\\n\\n@param `nonce` The nonce retrieved from the blockchain for the given address.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.NONCE\"},{\"name\":\"ETH.RECEIPT\",\"detail\":\"{ url<STRING> txid<STRING>  } ETH.RECEIPT  receipt<MAP>\",\"documentation\":\"The `ETH.RECEIPT` function retrieves a transaction receipt from a network node.\\n\\n@param `txid` Id of the transaction whose receipt should be retrieved.\\n\\n@param `url` URL of the blockchain node to query.\\n\\n@param `receipt` Receipt of the transaction as stored in the blockchain.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RECEIPT\"},{\"name\":\"ETH.RETURN\",\"detail\":\"value<STRING> abi<MAP>  ETH.RETURN  result<MAP>\",\"documentation\":\"The `ETH.RETURN` function decodes the encoded return value of a function call (obtained via `ETH.CALL` and `ETH.TXN`).\\n\\n@param `abi` `MAP` containing the description of the `function` return value or `error` to decode, as generated by `ABI->`.\\n\\n@param `value` Hex encoded return value to decode.\\n\\n@param `result` Decoded `value`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RETURN\"},{\"name\":\"ETH.TXN\",\"detail\":\"{ txid<STRING> url<STRING>  } ETH.TXN  txn<MAP>\\n{ to<STRING> private<KEY> passphrase<STRING> path<STRING> seed<STRING> address<STRING> data<BYTES> call<BOOLEAN> url<STRING>  } ETH.TXN  result<MAP>\\n{ send<BOOLEAN> sign<BOOLEAN> maxpriorityfeepergas<LONG> maxfeepergas<LONG> gaslimit<LONG> chainid<LONG> nonce<LONG> path<STRING> seed<STRING> private<KEY> value<LONG> to<STRING> data<STRING> raw<BYTES> url<STRING>  } ETH.TXN  raw<STRING> { txid:STRING' txid<undefined> \\n\\n response:STRING' response<undefined> \\n\\n }\\n\\n\\n{ send<BOOLEAN> sign<BOOLEAN> gasprice<LONG> gaslimit<LONG> chainid<LONG> nonce<LONG> path<STRING> seed<STRING> private<KEY> value<LONG> to<STRING> data<STRING> raw<BYTES> url<STRING>  } ETH.TXN  raw<STRING> { txid:STRING' txid<undefined> \\n\\n response:STRING' response<undefined> \\n\\n }\\n\\n\",\"documentation\":\"The `ETH.TXN` function allows to perform various actions related to Ethereum/EVM transactions.\\n\\nIt can retrieve a transaction from a network node, generate raw or signed transactions and optionally submit transactions to a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce, if none was given, and sending the transaction or function call. Defaults to `http://localhost:3545/`.\\n\\n@param `raw` Raw transaction, hex encoded with `0x` prefix. This is mutually exclusive with the `MAP` returned when `send` is `true`.\\n\\n@param `data` Call data to include in the transaction. This is either `BYTES` or a `STRING`. The `STRING` is assumed to be hex encoded if it starts with `0x`, otherwise its `UTF-8` encoding is used.\\n\\n@param `to` Ethereum address or ECC public `KEY` of the recipient.\\n\\n@param `value` Value (in `wei`) associated with the transaction. Can be expressed as a `LONG` or as a `STRING` for large values.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path` must be set, except for calls where `address` can simply be specified since no signing takes place.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address of the calling party, can only be used when `call` is `true` since calls do not require signing.\\n\\n@param `nonce` `nonce` value to use for the transaction. If not set `ETH.TXN` will attempt to retrieve the last used nonce from the blockchain.\\n\\n@param `chainid` Chain ID to use for encoding the transaction. Defaults to `0`.\\n\\n@param `gaslimit` Maximum amount of gas that can be spent when submitting the transaction. Defaults to `21000` which is sufficient for an Ether tranfer.\\n\\n@param `gasprice` Maximum gas price per gas unit, expressed in `wei`. This is for legacy transactions.\\n\\n@param `maxfeepergas` Maximum base + priority fee, as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 2,000,000,000 `wei`, *i.e.* 2 `gwei`.\\n\\n@param `maxpriorityfeepergas` Maximum priority fee (tip), as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 1,000,000,000 `wei`, *i.e.* 1 `gwei`.\\n\\n@param `sign` Flag indicating whether or not to sign the transaction. If set to `true` then `private` or `seed` must be set.\\n\\n@param `send` Flag indicating whether or not to submit the transaction to a network node.\\n\\n@param `txid` The transaction id (TxID, or transaction hash) of the submitted transaction.\\n\\n@param `call` Flag indicating if the *transaction* is really a function call.\\n\\n@param `response` The raw response returned by the network node. Hex encoded.\\n\\n@param `result` A `MAP` containing the result of the operation. Content will depend on the actual input parameters.\\n\\n@param `txn` A `MAP` containing retrieved transaction infos.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.TXN\"},{\"name\":\"ETH.VERIFY\",\"detail\":\"hash<BYTES> signature<BYTES>  ETH.VERIFY  result<MAP>\",\"documentation\":\"Verify an ECDSA signature and extracts the signing public key and the associated address.\\n\\nIf the signature cannot be verified, an exception is thrown.\\n\\n@param `signature` Ethereum ECDSA signature to verify.\\n\\n@param `hash` Signed hash.\\n\\n@param `result` Map containing the signing public key and associated address.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.VERIFY\"},{\"name\":\"EVAL\",\"detail\":\"macro<MACRO>  EVAL \\nstring<STRING>  EVAL \\nfunction<FUNCTION>  EVAL \",\"documentation\":\"The `EVAL` function evaluates the statements contained in the string at the top of the stack as if they had been entered individually or runs the macro at the top os the stack.\\n\\n@param `string` String to evaluate\\n\\n@param `macro` Macro to run\\n\\n@param `function` Function to run\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVAL\"},{\"name\":\"EVALSECURE\",\"detail\":\"secure<STRING>  EVALSECURE  return<ANY>\",\"documentation\":\"The `EVALSECURE` function executes a secure script. The script must have been created on a platform with the same secure script cryptographic key as the current platform (note that this is not the *secret* set using [`SECUREKEY`](doc/SECUREKEY)).\\n\\n@param `secure` String containing the secure script to execute.\\n\\n@param `return` The return values depend on the actual code of the secure script.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVALSECURE\"},{\"name\":\"EVERY\",\"detail\":\"macro<MACRO> repeat<LONG>  EVERY \",\"documentation\":\"When called via the `/mobius` endpoint, the `EVERY` function sets the repeat interval for the preceding macro. This interval is in milliseconds.\\n\\nWhen called outside of `/mobius`, the `EVERY` function simply executes the macro.\\n\\n@param `repeat` The repeat interval to enforce, in milliseconds.\\n\\n@param `macro` The macro to execute.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVERY\"},{\"name\":\"EXP\",\"detail\":\"value<NUMBER>  EXP  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  EXP  lresult<LIST<DOUBLE>>\\ngts<GTS>  EXP  gtsresult<GTS>\",\"documentation\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a floating point value x consumed from the top of the stack,\\n i.e. e<sup>x</sup>.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List where each value is e<sup>x</sup>\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>, for x in the the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXP\"},{\"name\":\"EXPM1\",\"detail\":\"value<NUMBER>  EXPM1  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  EXPM1  lresult<LIST<DOUBLE>>\\ngts<GTS>  EXPM1  gtsresult<GTS>\",\"documentation\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a DOUBLE value x consumed from the top of the stack then subtracts one, i.e. e<sup>x</sup>-1.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>-1\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List of e<sup>x</sup>-1\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>-1, for x in the the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXPM1\"},{\"name\":\"EXPORT\",\"detail\":\"symbol<STRING>  EXPORT \\nsymbols<LIST>  EXPORT \",\"documentation\":\"The `EXPORT` function allows you to set or update a list of symbols which will be dumped upon script termination. This proves handy when \\ndebugging a script as you can visualize, even in the case of errors, the value of specific symbols.\\n\\nThe function expects either a symbol name (a **STRING**) which will be added to the current list of exported symbols, a list of symbol \\nname which will replace the current list of exported symbols, an empty list to disable symbol export altogether, or a list with a single\\n**NULL** element to instruct the WarpScript engine to export all existing symbols.\\n\\nWhen symbols should be exported, the debug mode is implied (see [`DEBUGON`](/doc/DEBUGON)).\\n\\n@param `symbol` Symbol name\\n\\n@param `symbols` List of symbols\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.2\",\"OPB64name\":\"EXPORT\"},{\"name\":\"EXTLOADED\",\"detail\":\"ext<STRING>  EXTLOADED  loaded<BOOLEAN>\",\"documentation\":\"Checks if a WarpScript extension is loaded or not and therefore available.      \\n\\n@param `ext` Name of extension to check.\\n\\n@param `loaded` Boolean indicating whether or not the specified extension is loaded in the WarpScript environment.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"EXTLOADED\"},{\"name\":\"F\",\"detail\":\" F  b<BOOLEAN>\",\"documentation\":\"`F` stand for `false`. It is a boolean constant.\\n\\n\\n@param `b` false\\n\\n\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"F\"},{\"name\":\"FAIL\",\"detail\":\"\",\"documentation\":\"The `FAIL` function stops the execution of the WarpScript scripts by throwing an exception.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FAIL\"},{\"name\":\"FDWT\",\"detail\":\"gts<GTS> wavelet<STRING>  FDWT  fdwt<GTS>\\nlgts<LIST<GTS>> wavelet<STRING>  FDWT  lfdwt<LIST<GTS>>\",\"documentation\":\"The `FDWT` function performs a [Forward Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Fast_wavelet_transform#Forward_DWT) on a Geo Time Series™.\\n\\nA number of different [Wavelets](https://en.wikipedia.org/wiki/Wavelet) are available, the list is inspired by that available on \\nthe [Wavelet Browser](http://wavelets.pybytes.com/).\\n\\nThe list of Wavelets which can be used is the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\nThe FDWT can only be applied to Geo Time Series™ with a number of values which is a power of 2.\\n\\nAssuming the input GTS has 2<sup>n</sup> values, the result of the FDWT transformation is a GTS with 2<sup>n</sup> values (the wavelet coefficients) with timestamps from 0 to 2<sup>n</sup>-1.\\n\\nThe ticks of the `n` levels are contiguous, with the first tick being for level `n`, the next 2 for level `n-1`, the next 4 for level `n-2`, up to the last 2<sup>n-1</sup> for level 1.\\n\\nLevel 1 has the finest time resolution but the coarsest frequency resolution. Each level has half (coarser) the time resolution and double (finer) the frequency resolution as the previous level.\\n\\n@param `wavelet` Name of wavelet to use for the transformation.\\n\\n@param `gts` Geo Time Series™ instance on which to perform the FDWT.\\n\\n@param `lgts` List of Geo Time Series™ on which to apply the FDWT.\\n\\n@param `fdwt` Transformed Geo Time Series™.\\n\\n@param `lfdwt` List of transformed Geo Time Series™.\\n\\n\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FDWT\"},{\"name\":\"FETCH\",\"detail\":\"[ token<STRING> class<STRING> labels<MAP> end<LONG> timespan<LONG> ]  FETCH  data<LIST<GTS>>\\n[ token<STRING> class<STRING> labels<MAP> start<STRING> end<STRING> ]  FETCH  data<LIST<GTS>>\\n{ gcount<LONG> gskip<LONG> ttl<BOOLEAN> wtimestamp<BOOLEAN> typeattr<STRING> type<STRING> showuuid<BOOLEAN> merge<BOOLEAN> encoders<BOOLEAN> skip.count<LONG> sampling.ratio<DOUBLE> timestep<LONG> step<LONG> boundary.post<LONG> boundary.pre<LONG> boundary<LONG> count<LONG> timespan<LONG> start<STRING> end<LONG> priority<LIST<STRING>> metaset<STRING> extra<LIST<STRING>> active.after<LONG> quiet.after<LONG> gts<LIST<GTS>> selectors<LIST<STRING>> selector<STRING> labels<MAP> class<STRING> token<STRING>  } FETCH  data<LIST<GTS>>\",\"documentation\":\"The `FETCH` function interacts with the Warp 10 Storage Engine to retrieve data according to given criteria.\\n\\n`FETCH` either accepts a list of 5 parameters or a map with the parameters. Those are defining the **read access rights**, the **concerned Geo Time Series** and the **time window**. Other parameters in the map input are optional. \\n\\nThe list input is here to keep backward compatibility with old WarpScripts. The map input allows a great flexibility, as described below.\\n\\n### Access rights\\nA valid read token is needed to read data with fetch. If you use a [metaset](/doc/METASET) and also specify a token, the token included in the metaset will be ignored.\\n\\n### Concerned Geo Time Series\\n`FETCH` selects Geo Time Series according to:\\n+ The `selectors` parameter, which is a list of selector.\\n+ If `selectors` is not found, `FETCH` uses the `selector` parameter which is a single selector.\\n+ If `selector` is not found, `FETCH`  uses both `class` and `labels` parameters.  \\n\\n### Time window\\n`FETCH`  begins from the newest value and stop when the oldest value is collected. Thus, `end` must be defined in your request and defines the newest included value in your time window. If `end` is anterior to your oldest value, the result will be empty (no Geo Time Series). The span of the time window ending at `end` is then defined according to:\\n+ The `timespan` parameter.\\n+ If `timespan` is not defined, `FETCH` collects a maximum of `count` point.\\n+ If `count` is not defined, `FETCH` determines `timespan` with `start`. If `start` is more recent than `end`, `end` and `start` are permuted internally. Both `start` and `end` are included in the time window.\\n\\n### Boundaries\\nSince version 2.3.0, you can define *boundaries* around the requested data. When fetching data based on a time range, both a *pre* and *post* boundaries can be specified. When fetching by count, only a *pre* boundary can be requested.\\nBoundaries are a number of datapoints which are either before (*pre* boundary) or after (*post* boundary) the fetched data. Fetching boundaries is very useful when storing only the changes of values as they enable you to always fetch datapoints even if the requested time range does not contain any. They can also be used to fetch the first `N` datapoints after a given timestamp.\\nNote that fetching *post* boundaries is less efficient than fetching the requested range or a *pre* boundary as the data has to be scanned in reverse order which has an impact on I/Os and ultimately on performance.\\n\\n### Sampling options\\n+ Since version 2.3.0, you can randomly sample points with the `sample` parameter. If `sample` equals 0.1, `FETCH` will randomly return one point out of ten. This implementation is the fastest way to resample data.\\n+ Since version 2.3.0, you can `skip` the N newest datapoints in the time window specified.\\n\\n### Query without looking into directory\\nThe fetch time to read one gts among millions of gts recorded with the same classname, the same application and the same owner can take time. Use the `gts` parameter to select if you exactly know the classname and all the labels.\\n\\nIf you want to read only Geo Time Series attributes or labels, using [FIND](/doc/FIND) is more efficient than fetching the last value.\\n\\n### FETCH availability \\nYou cannot use FETCH within macro unit tests. When macro are loaded, directory and storage are not ready yet, so you will have a null pointer exception during macro loading. To build your unit tests, [WRAP](/doc/WRAP) your data and use [UNWRAP](/doc/UNWRAP) from a string instead of fetch.\\n\\n\\n@param `token` Read token to use to fetch the data.\\n\\n@param `class` Selector for the GTS classes. Can either be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `labels` Map of labels selectors. The key is the label name, the value a selector which can be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `gts` Explicit list of Geo Time Series™ to fetch. The class and labels will be used as is and not serve as selectors.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `extra` List of extraneous classes to fetch. For each GTS matching the selection criteria, GTS with those extra class names will be fetched too (with the *exact* same set of labels).\\n\\n@param `metaset` A set of Geo Time Series™ produced by the [`METASET`](/doc/METASET) function.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `end` Newest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `start` Oldest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `timespan` Depth to consider when fetching the datapoints. If the value is positive then it is interpreted as a duration in time units, if it is negative then as the maximum number of datapoints to fetch. If negative, incompatible with 'count'.\\n\\n@param `count` Maximum number of datapoints to fetch for each GTS. Incompatible with negative 'timespan'.\\n\\n@param `boundary` Number of datapoints to include in both *pre* and *post* boundaries.\\n\\n@param `boundary.pre` Number of datapoints in the *pre* boundary.\\n\\n@param `boundary.post` Number of datapoints in the *post* boundary.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer, which is the most efficient.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n@param `encoders` Whether to return **GTSENCODER** or **GTS**. Defauts to False.\\n\\n@param `merge` Whether to merge or not the splitted encoders because they exceed *max.encoder.size* or *standalone.max.encoder.size*. Defaults to True.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `type` Name of type to force for the GTS, either LONG, DOUBLE, BOOLEAN or STRING.\\n\\n@param `typeattr` Name of label to use for storing the GTS type. This option is incompatible with 'type', when set values of different types are ventilated in separate GTS with the same set of class and labels and an additional *type* label of the given name.\\n\\n@param `wtimestamp` Whether to return or not the HBase cell timestamp instead of the value. Only for distributed instances, defaults to False.\\n\\n@param `ttl` Whether to return or not the HBase cells TTL instead of the value. Only for distributed instances, defaults to False. Only works if KeyValueCodecWithTags codec is enabled.\\n\\n@param `data` List of fetched Geo Time Series or **GTSECODERS**.\\n\\n@param `gskip` Number of GTS to skip before considering GTS.\\n\\n@param `gcount` Maximum number of GTS to consider.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCH\"},{\"name\":\"FETCHBOOLEAN\",\"detail\":\"linput<LIST>  FETCHBOOLEAN  data<LIST<GTS>>\\nminput<MAP>  FETCHBOOLEAN  data<LIST<GTS>>\",\"documentation\":\"The `FETCHBOOLEAN` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type BOOLEAN.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHBOOLEAN\"},{\"name\":\"FETCHDOUBLE\",\"detail\":\"linput<LIST>  FETCHDOUBLE  data<LIST<GTS>>\\nminput<MAP>  FETCHDOUBLE  data<LIST<GTS>>\",\"documentation\":\"The `FETCHDOUBLE` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type DOUBLE.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHDOUBLE\"},{\"name\":\"FETCHLONG\",\"detail\":\"linput<LIST>  FETCHLONG  data<LIST<GTS>>\\nminput<MAP>  FETCHLONG  data<LIST<GTS>>\",\"documentation\":\"The `FETCHLONG` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type LONG.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHLONG\"},{\"name\":\"FETCHSTRING\",\"detail\":\"linput<LIST>  FETCHSTRING  data<LIST<GTS>>\\nminput<MAP>  FETCHSTRING  data<LIST<GTS>>\",\"documentation\":\"The `FETCHSTRING` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type STRING.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHSTRING\"},{\"name\":\"FFT\",\"detail\":\"gts<GTS>  FFT  result<LIST<GTS>>\\ngtsList<LIST<GTS>>  FFT  result<LIST<LIST<GTS>>>\",\"documentation\":\"The `FFT` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFT` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe real parts of the `FFT` coefficients, the second the imaginary parts. The scale factor is equal to X/(n * bucketspan) where n is the number\\nof elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the number\\nof values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFT` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the real parts of the `FFT` coefficients, the second the imaginary parts.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFT\"},{\"name\":\"FFTAP\",\"detail\":\"gts<GTS>  FFTAP  result<LIST<GTS>>\\ngtsList<LIST<GTS>>  FFTAP  result<LIST<LIST<GTS>>>\",\"documentation\":\"The `FFTAP` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFTAP` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe amplitude of the coefficient at that frequency and the second the associated phase. The scale factor is equal to X/(n * bucketspan) where n is\\nthe number of elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the\\nnumber of values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFTAP` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the amplitude of the coefficient at that frequency and the second the associated phase.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFTAP\"},{\"name\":\"FFTWINDOW\",\"detail\":\"gts<GTS> window<STRING>  FFTWINDOW  windowed<GTS>\\nlgts<LIST<GTS>> window<STRING>  FFTWINDOW  lwindowed<LIST<GTS>>\",\"documentation\":\"The `FFTWINDOW` transforms Geo Time Series™ by applying a [window function](https://en.wikipedia.org/wiki/Window_function) to its values. The function supports the following windows:\\n\\n| Name | Window |\\n| --- | --- |\\n| `triangular` | [Triangular](https://en.wikipedia.org/wiki/Window_function#Triangular_window) |\\n| `parzen` | [Parzen](https://en.wikipedia.org/wiki/Window_function#Parzen_window) |\\n| `welch` | [Welch](https://en.wikipedia.org/wiki/Window_function#Welch_window) |\\n| `sine` | [Sine](https://en.wikipedia.org/wiki/Window_function#Sine_window) |\\n| `hann` | [Hann](https://en.wikipedia.org/wiki/Window_function#Hann_window) |\\n| `hamming` | [Hamming](https://en.wikipedia.org/wiki/Window_function#Hamming_window) |\\n| `blackman` | [Blackman](https://en.wikipedia.org/wiki/Window_function#Blackman_window) |\\n| `nuttall` | [Nuttall](https://en.wikipedia.org/wiki/Window_function#Nuttall_window,_continuous_first_derivative) | \\n| `blackman-nuttall` | [Blackman-Nuttall](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Nuttall_window) |\\n| `blackman-harris` | [Blackman-Harris](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Harris_window) |\\n| `flattop` | [Flat top](https://en.wikipedia.org/wiki/Window_function#Flat_top_window) |\\n| `rectangular` | [Rectangular](https://en.wikipedia.org/wiki/Window_function#Rectangular_window) |\\n\\n@param `window` Name of the window function to apply.\\n\\n@param `gts` Single Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `windowed` Tranformed Geo Time Series™.\\n\\n@param `lwindowed` List of transformed Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"FFTWINDOW\"},{\"name\":\"FILL\",\"detail\":\"gtsa<GTS> gtsb<GTS> filler<FILLER>  FILL  gtsa<GTS> gtsb<GTS>\",\"documentation\":\"The `FILL` function fills missing values in two Geo Time Series™ so they end up with identical ticks.\\n\\nThe filling is done using a *filler* function which applies a given strategy. Filler functions can be created using macros via the [`MACROFILLER`](/doc/MACROFILLER) function.\\n\\n@param `gtsa` First Geo Time Series™ to fill.\\n\\n@param `gtsb` Second Geo Time Series™ to fill.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"FILL\"},{\"name\":\"FILLNEXT\",\"detail\":\"gts<GTS>  FILLNEXT  result<GTS>\\ngtsList<LIST<GTS>>  FILLNEXT  resultList<LIST<GTS>>\",\"documentation\":\"The `FILLNEXT` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation of the \\nnext non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLNEXT\"},{\"name\":\"FILLPREVIOUS\",\"detail\":\"gts<GTS>  FILLPREVIOUS  result<GTS>\\ngtsList<LIST<GTS>>  FILLPREVIOUS  resultList<LIST<GTS>>\",\"documentation\":\"The `FILLPREVIOUS` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation \\nof the previous non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLPREVIOUS\"},{\"name\":\"FILLTICKS\",\"detail\":\"gts<GTS> data<LIST>  FILLTICKS  result<GTS>\\ngtsList<LIST<GTS>> data<LIST>  FILLTICKS  resultList<LIST<GTS>>\",\"documentation\":\"The `FILLTICKS` function add values to a Geo Time Series™ instance or a list thereof for ticks in the given **LIST**.\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n@param `data` List of (latitude, longitude, elevation, ticks) where ticks is a list of ticks.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLTICKS\"},{\"name\":\"FILLVALUE\",\"detail\":\"gts<GTS> data<LIST>  FILLVALUE  result<GTS>\\ngtsList<LIST<GTS>> data<LIST>  FILLVALUE  resultList<LIST<GTS>>\",\"documentation\":\"The `FILLVALUE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with a fixed value/location/elevation.\\n\\nIt expects a GTS or a list thereof on the top of the stack after having consumed a list of parameters (latitude, longitude, elevation, value)\\nsitting on top of the stack prior to the call.\\n\\nLocation must be floating point numbers (e.g. 0.0 not 0). Elevation must be an integer. If no location or elevation should be set, **NaN** can\\nbe used instead of specific value.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n\\n\\nThe value is cast to the type of the GTS value\\n\\n@param `gts` The Geo Time Series™ to fill\\n\\n@param `gtsList` The list of Geo Time Series™ to fill\\n\\n@param `result` The filled Geo Time Series™\\n\\n@param `resultList` The list of filled Geo Time Series™\\n\\n@param `data` The list of parameters (latitude, longitude, elevation, value)\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLVALUE\"},{\"name\":\"FILTER\",\"detail\":\"[ gtsList<LIST<GTS>> labels<LIST<STRING>> filter<FILTER> ]  FILTER  result<LIST<GTS>>\",\"documentation\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `FILTER` framework allows for advanced filtering using N-ary functions\\n(functions which accept N parameters).\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A single list containing only the selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `FILTER`.\\n\\n\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILTER\"},{\"name\":\"FILTERBY\",\"detail\":\"list<LIST> macro<MACRO>  FILTERBY  sublist<LIST>\",\"documentation\":\"The `FILTERBY` function selects elements of a list based on the boolean return value of a macro evaluated for each element.\\n\\n@param `macro` Macro used for filtering. This macro should consume the element of the list pushed on top of the stack and leave a boolean on the stack. If this boolean is `true`, the element will be retained.\\n\\n@param `list` List of elements to filter.\\n\\n@param `sublist` List with the selected elements from `list`.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"FILTERBY\"},{\"name\":\"FIND\",\"detail\":\"[ token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FIND  data<LIST<GTS>>\\n[ showuuid<BOOLEAN> token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FIND  data<LIST<GTS>>\\n{ gcount<LONG> gskip<LONG> showuuid<BOOLEAN> priority<LIST<STRING>> active.after<LONG> quiet.after<LONG> selectors<LIST<STRING>> selector<STRING> classSelector<STRING> labelsSelector<MAP> token<STRING>  } FIND  data<LIST<GTS>>\",\"documentation\":\"The `FIND` function finds Geo Time Series™ labels and attributes of GTS, not their values. It is the fastest way to read attributes of GTS. `FIND` asks only `directory` component of Warp&nbsp;10™, while [FETCH](/doc/FETCH) first ask `directory`, then ask `store` to read GTS values. \\n\\nSyntax is close to [FETCH](/doc/FETCH), without time boundaries or data point count.\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `data` List of fetched Geo Time Series™. These GTS does not contain any value.\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `gskip` Number of GTS to skip before returning results.\\n\\n@param `gcount` Maximum number of GTS to return.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIND\"},{\"name\":\"FINDSETS\",\"detail\":\"[ token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FINDSETS  classes<LIST<STRING>> labels<MAP> attributes<MAP>\",\"documentation\":\"The `FINDSETS` function returns sets of values for the classes, labels and attributes of the Geo Time Series™ which matched the selection criteria.\\n\\nThose results can be used for example to update a UI with lists of possible values for labels when exploring a corpus of GTS.\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label names to exact match or regular expression (if the value starts with a *~*) for matching labels and attributes.\\n\\n@param `attributes` Map of attribute names to value list.\\n\\n@param `labels` Map of label names to value list.\\n\\n@param `classes` List of class names.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSETS\"},{\"name\":\"FINDSTATS\",\"detail\":\"[ token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FINDSTATS  result<MAP>\",\"documentation\":\"The `FINDSTATS` function computes statistics on matching Geo Time Series™. The estimations are based on the use of [HyperLogLogPlus](https://en.wikipedia.org/wiki/HyperLogLog) estimators.\\n\\nThe function returns a map containing information about the matching Geo Time Series. The fields of the map are the following:\\n\\n| Key | Value |\\n|-----|-------|\\n| `gts.estimate` | Estimation of the number of matching Geo Time Series™ |\\n| `classes.estimate` | Estimation of the number of distinct class names |\\n| `labelnames.estimate` | Estimation of the number of distinct label names |\\n| `labelvalues.estimate` | Estimation of the number of distinct label values |\\n| `per.class.estimate` | If the number of matching classes is below the `directory.stats.class.maxcardinality`, this key will be associated with a map containing per class estimate of number of GTS |\\n| `per.label.value.estimate` | If the number of label names in the matching GTS is below `directory.stats.labels.maxcardinality`, this key will be associated with a map containing an estimation of distinct label values per label name |\\n| `error.rate` | This is the error rate of the estimators used for computing the estimations |\\n| `partial.results` | When accessing a sharded Directory, this will be set to `true` if only partial results were collected |\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `result` Map containing stats such as error rate or whether estimates on classes, gts, or labels.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSTATS\"},{\"name\":\"FIRSTTICK\",\"detail\":\"gts<GTS>  FIRSTTICK  result<LONG>\\nlgts<LIST<GTS>>  FIRSTTICK  result<LONG>\",\"documentation\":\"The `FIRSTTICK` function returns the timestamp of the oldest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its first bucket.\\n\\nWhen applied to a list of GTS, `FIRSTTICK` will return the lowest first tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MAX_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` Oldest timestamp. If the GTS does not have values, **Long.MAX_VALUE** is pushed.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIRSTTICK\"},{\"name\":\"FLATTEN\",\"detail\":\"input<LIST>  FLATTEN  output<LIST>\\nnotAList<ANY>  FLATTEN  notAList<ANY>\",\"documentation\":\"The function `FLATTEN` inspects the top of the stack.\\n\\nIf it is a LIST of values,\\nit inspects each value and replaces each value which was a LIST with its content.\\n`FLATTEN` proceed recursively until all LISTs have been flattened.\\n\\nIf it is not a LIST, the function exits and let the stack in the same state.\\n\\n@param `input` Input is a list who may contains lists\\n\\n@param `notAList` An object which is not a list\\n\\n@param `output` Output list do not contains anymore nested lists\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLATTEN\"},{\"name\":\"FLOAD\",\"detail\":\"path<STRING>  FLOAD  content<BYTES>\",\"documentation\":\"The `FLOAD` function allows to read the content of a file on the local file system or in HDFS and output that content as a byte array.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `content` Content of the file.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FLOAD\"},{\"name\":\"FLOATBITS->\",\"detail\":\"input<LONG>  FLOATBITS->  result<DOUBLE>\",\"documentation\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the 32 lower bits of the **LONG** value as the raw bits of a **FLOAT**.\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"GZlEFKG1HKGIAIs\"},{\"name\":\"FLOOR\",\"detail\":\"value<NUMBER>  FLOOR  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  FLOOR  lresult<LIST<DOUBLE>>\\ngts<GTS>  FLOOR  gtsresult<GTS>\",\"documentation\":\"The `FLOOR` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number smaller than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-down value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-down values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-down of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLOOR\"},{\"name\":\"FLOORDIV\",\"detail\":\"dividend<NUMBER> divisor<NUMBER>  FLOORDIV  fDiv<LONG>\\ndividend<NUMBER> ldivisor<LIST<NUMBER>>  FLOORDIV  lfDiv<LIST<LONG>>\\nldividend<LIST<NUMBER>> divisor<NUMBER>  FLOORDIV  lfDiv<LIST<LONG>>\\ndividend<NUMBER> gtsdivisor<GTS>  FLOORDIV  gtsfDiv<GTS>\\ngtsdividend<GTS> divisor<NUMBER>  FLOORDIV  gtsfDiv<GTS>\",\"documentation\":\"The `FLOORDIV` function consumes two NUMBER values, convert them to LONGs and pushes back largest LONG value that is less than or equal to the algebraic quotient.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fDiv` The largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `lfDiv` List of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `gtsdividend` Numerical GTS of dividends\\n\\n@param `gtsdivisor` Numerical GTS of divisors\\n\\n@param `gtsfDiv` Numerical GTS of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORDIV\"},{\"name\":\"FLOORMOD\",\"detail\":\"dividend<NUMBER> divisor<NUMBER>  FLOORMOD  fMod<LONG>\\ndividend<NUMBER> ldivisor<LIST<NUMBER>>  FLOORMOD  lfMod<LIST<LONG>>\\nldividend<LIST<NUMBER>> divisor<NUMBER>  FLOORMOD  lfMod<LIST<LONG>>\\ndividend<NUMBER> gtsdivisor<GTS>  FLOORMOD  gtsfMod<GTS>\\ngtsdividend<GTS> divisor<NUMBER>  FLOORMOD  gtsfMod<GTS>\",\"documentation\":\"The `FLOORMOD` function consumes two NUMBER values, convert them to LONGs and pushes back the floor modulus which is x - (floorDiv(x, y) * y).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fMod` The floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `gtsdividend` Numerical GTS, each of the value being considered as dividends\\n\\n@param `gtsdivisor` Numerical GTS, each of the value being considered as divisors\\n\\n@param `lfMod` List of floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `gtsfMod` GTS of floor modulus x - (floorDiv(x, y) * y)\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORMOD\"},{\"name\":\"FOR\",\"detail\":\"initial<NUMBER> final<NUMBER> macro<MACRO>  FOR \\ninitial<NUMBER> final<NUMBER> macro<MACRO> index<BOOLEAN>  FOR \",\"documentation\":\"The `FOR` function implements a for loop. It takes three arguments from the stack: the initial and the final values of the loop index and a macro to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOR\"},{\"name\":\"FOREACH\",\"detail\":\"list<LIST> exec<MACRO>  FOREACH \\nmap<MAP> exec<MACRO>  FOREACH \\nset<SET> exec<MACRO>  FOREACH \\nvector<VLIST> exec<MACRO>  FOREACH \\nstring<STRING> exec<MACRO>  FOREACH \\ngts<GTS> exec<MACRO>  FOREACH \\nencoder<GTSENCODER> exec<MACRO>  FOREACH \\nlist<LIST> exec<MACRO> index<BOOLEAN>  FOREACH \\nmap<MAP> exec<MACRO> index<BOOLEAN>  FOREACH \\nset<SET> exec<MACRO> index<BOOLEAN>  FOREACH \\nvector<VLIST> exec<MACRO> index<BOOLEAN>  FOREACH \\nstring<STRING> exec<MACRO> index<BOOLEAN>  FOREACH \\ngts<GTS> exec<MACRO> index<BOOLEAN>  FOREACH \\nencoder<GTSENCODER> exec<MACRO> index<BOOLEAN>  FOREACH \",\"documentation\":\"The `FOREACH` function implements a for loop on a list or map.\\n\\nFor each iteration i on a list, the i-th element on the list is put on top of the stack, and the exec macro is then called.\\n\\nFor each iteration i on a map, the exec macro is called with the i-th value on top of the stack, and the i-th key just below on the stack.\\nYou can start your macro with `'value' STORE 'key' STORE`.\\n\\nSince release 2.1, `FOREACH` has the ability to iterate over Geo Time Series™ and GTS Encoders. When iterating over a GTS or Encoder, the macro is fed with a list of the form `[ tick lat lon elev value ]` where `lat`, `lon` and `elev` may be `NaN` if unset. In the case of an Encoder, `value` can be a byte array or a `BigDecimal` on top of `LONG`, `DOUBLE`, `STRING` or `BOOLEAN`.\\n\\nSince release 2.4.0, you can force FOREACH to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `exec` Macro to apply\\n\\n@param `list` List to iterate on\\n\\n@param `map` Map to iterate on\\n\\n@param `set` Set to iterate on\\n\\n@param `vector` Vector to iterate on\\n\\n@param `gts` GTS to iterate on\\n\\n@param `string` String to iterate on\\n\\n@param `encoder` GTSEncoder to iterate on\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOREACH\"},{\"name\":\"FORGET\",\"detail\":\"symbol<STRING>  FORGET \",\"documentation\":\"Removes a symbol from the symbol table.      \\n\\n@param `symbol` Name of the symbol to remove.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORGET\"},{\"name\":\"FORSTEP\",\"detail\":\"initial<NUMBER> final<NUMBER> step<MACRO> macro<MACRO>  FORSTEP \\ninitial<NUMBER> final<NUMBER> step<MACRO> macro<MACRO> index<BOOLEAN>  FORSTEP \",\"documentation\":\"The `FORSTEP` function implements for loop with an index step. It takes four arguments from the stack: the initial and the final values of the loop index,\\na macro step to evaluate after each iteration and an other one to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `step` Macro step to evaluate after each iteration, typically to compute index\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORSTEP\"},{\"name\":\"FREAD\",\"detail\":\"macro<MACRO> path<STRING>  FREAD \",\"documentation\":\"The `FREAD` function reads a file line by line and passes each line (as a `STRING`) to the provided macro.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `macro` Macro to call for processing each line.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FREAD\"},{\"name\":\"FROMBIN\",\"detail\":\"input<STRING>  FROMBIN  output<LONG>\",\"documentation\":\"Converts the binary representation on top of the stack into the corresponding long.\\n\\n@param `input` Binary representation of a signed long, 64 characters max.\\n\\n@param `output` Signed long of input.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBIN\"},{\"name\":\"FROMBITS\",\"detail\":\"input<LONG>  FROMBITS  result<DOUBLE>\",\"documentation\":\"**This function is deprecated. Replace it in your code by the [`DOUBLEBITS->`](/doc/G3xKFZl4FZ_JJmoy) function.**\\n\\nConverts the **LONG** on top of the stack into a **DOUBLE** by considering it a raw bit representation.\\n\\n@param `input` Raw bit representation to convert\\n\\n@param `result` Converted value\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBITS\"},{\"name\":\"FROMHEX\",\"detail\":\"input<STRING>  FROMHEX  output<LONG>\",\"documentation\":\"Converts an hexadecimal representation into a signed long. 64bits max.\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Signed long\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMHEX\"},{\"name\":\"FSTORE\",\"detail\":\"string<STRING> path<STRING> overwrite<BOOLEAN>  FSTORE \\nbytes<BYTES> path<STRING> overwrite<BOOLEAN>  FSTORE \",\"documentation\":\"The `FSTORE` function stores a `STRING` or `BYTES` object in a file, optionally overwriting any existing content. The file can be on the local file system or in HDFS.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `overwrite` Flag indicating whether or not to overwrite any existing content.\\n\\n@param `path` Path of the file to create.\\n\\n@param `string` `STRING` content to store in the file, will be encoded using `UTF-8`.\\n\\n@param `bytes` Byte array to store in the file.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FSTORE\"},{\"name\":\"FUNCREF\",\"detail\":\"functionName<STRING>  FUNCREF  function<FUNCTION>\",\"documentation\":\"The `FUNCREF` function returns the function for a given function name. If the function cannot be found, `FUNCREF` fails. This function looks through all defined functions: core, enabled extensions and defined functions with [`DEF`](/doc/DEF).\\n\\n@param `functionName` The name of the function\\n\\n@param `function` The function\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.8.0\",\"OPB64name\":\"FUNCREF\"},{\"name\":\"FUNCTIONS\",\"detail\":\" FUNCTIONS  functions<LIST<STRING>>\",\"documentation\":\"FUNCTIONS returns a list of every functions available in your Warp 10 environnment, including native and extension functions.\\n\\nIt could be useful when coding your own extension to check your new functions are correctly registered.\\n\\n\\nFUNCTIONS allow anyone to discover new extensions you created on the platform, so it is deactivated by default.\\n\\nYou must add `warpscript.extension.inventory=io.warp10.script.ext.inventory.InventoryWarpScriptExtension` in your configuration file for this function to be available.\\n\\n@param `functions` List of Warp 10 functions available on this instance\\n\\n\",\"tags\":[\"platform\",\"extensions\"],\"since\":\"1.2.16\",\"OPB64name\":\"FUNCTIONS\"},{\"name\":\"FUSE\",\"detail\":\"chunks<LIST<GTS>>  FUSE  gts<GTS>\",\"documentation\":\"Fuses Geo Time Series™ chunks. The fusion process attempts to keep the bucketization parameters if all chunks are bucketized with compatible `bucketspan` and `lastbucket` values.\\n\\nAll chunks must be of the same type.\\n\\nThe fused GTS will have the common class name of the chunks or no class name if some chunks have a different class name. The labels will be those common to all chunks, so when fusing chunks created with [`CHUNK`](/doc/CHUNK), the chunk id will be dropped.\\n\\n@param `chunks` List of Geo Time Series™ to fuse.\\n\\n@param `gts` Geo Time Series™ resulting from the fusion of `chunk`.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FUSE\"},{\"name\":\"GEO.BUFFER\",\"detail\":\"params<MAP>  GEO.BUFFER  wkb<BYTES>\\nparams<MAP>  GEO.BUFFER  area<STRING>\\nparams<MAP>  GEO.BUFFER \",\"documentation\":\"The `GEO.BUFFER` function allows to create [*buffer*](https://en.wikipedia.org/wiki/Buffer_(GIS)) **GEOSHAPE** objects. The function takes a `MAP` instance as input. This map can contain the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `dist` | Distance of the buffer, as a central angle expressed in degrees. |\\n| `mdist` | Distance of the buffer expressed in meters. This key is only taken into account if `dist` is not specified. |\\n| `cap` | The end cap style to consider, use `SQUARE`, `FLAT` or `ROUND` (default). |\\n| `join` | The join style to use, use `BEVEL`, `MITRE` or `ROUND` (default). |\\n| `limit` | The mitre limit to use. Defaults to 5.0. |\\n| `segments` | Number of segments to use per quadrant, defaults to 8. |\\n| `singlesided` | Set to `true` to compute a single sided buffer. If `true`, positive distance will indicate left-hand side and negative distance right-hand side. End cap is ignored for single sided buffers. |\\n| `wkb` | Byte array containing a [WKB](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary) definition of a geographic area. |\\n| `wkt` | String containing a [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) definition of a geographic area. |\\n| `geojson` | String containing a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) definition of a geographic area. |\\n\\nIf a geographic area is defined, only one of `wkb`, `wkt` or `geojson` may be specified. The output of the function is a new definition of a geographic area with the buffer added to the original definition.\\n\\nIf no geographic area is defined, `GEO.BUFFER` will define a buffer which will be used by the next call to either [`GEO.WKT`](/doc/GEO.WKT), [`GEO.WKB`](/doc/GEO.WKB) or [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `params` Parameter map containing keys as defined above.\\n\\n@param `wkb` Area definition with the buffer added, if `params` had a value for key `wkb`.\\n\\n@param `area` Area definition with the buffer added, in WKT or GeoJSON depending on the presence of key `wkt` or `geojson` in `params`.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.7.0\",\"OPB64name\":\"GEO.BUFFER\"},{\"name\":\"GEO.COVER\",\"detail\":\"gts<GTS> resolution<LONG>  GEO.COVER  geoshape<GEOSHAPE>\\nencoder<GTSENCODER> resolution<LONG>  GEO.COVER  geoshape<GEOSHAPE>\\nlist<LIST> resolution<LONG>  GEO.COVER  geoshapes<LIST<GEOSHAPE>>\",\"documentation\":\"The `GEO.COVER` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* in which the input Geo Time Series™ or GTS Encoder had datapoints.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER\"},{\"name\":\"GEO.COVER.RL\",\"detail\":\"gts<GTS> resolution<LONG>  GEO.COVER.RL  geoshape<GEOSHAPE>\\nencoder<GTSENCODER> resolution<LONG>  GEO.COVER.RL  geoshape<GEOSHAPE>\\nlist<LIST> resolution<LONG>  GEO.COVER.RL  geoshapes<LIST<GEOSHAPE>>\",\"documentation\":\"The `GEO.COVER.RL` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* which cover the path of an input Geo Time Series™ or GTS Encoder. The path is considered to follow [rhumb lines](https://en.wikipedia.org/wiki/Rhumb_line), hence the function suffix `.RL`.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER.RL\"},{\"name\":\"GEO.DIFFERENCE\",\"detail\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.DIFFERENCE  shape<GEOSHAPE>\",\"documentation\":\"The `GEO.DIFFERENCE` function computes the difference between two GEOSHAPE. The resulting GEOSHAPE instance contains cells which cover the part of the first GEOSHAPE which is not in the second. If you need to have cells up to a certain resolution, you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the result.\\n\\n@param `shapeA` GEOSHAPE instance from which to subtract the second shape.\\n\\n@param `shapeB` GEOSHAPE to subtract from 'shapeA'.\\n\\n@param `shape` GEOSHAPE containing 'shapeA' minus 'shapeB'.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.DIFFERENCE\"},{\"name\":\"GEO.GML\",\"detail\":\"GML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.GML  geoshape<GEOSHAPE>\\nGML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.GML  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.GML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nGML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML\"},{\"name\":\"GEO.GML.UNIFORM\",\"detail\":\"GML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.GML.UNIFORM  geoshape<GEOSHAPE>\\nGML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.GML.UNIFORM  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.GML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the GML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.GML`](doc/GEO.GML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML.UNIFORM\"},{\"name\":\"GEO.INTERSECTION\",\"detail\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.INTERSECTION  shape<GEOSHAPE>\\nshapes<LIST<GEOSHAPE>>  GEO.INTERSECTION  shape<GEOSHAPE>\",\"documentation\":\"The `GEO.INTERSECTION` function computes the intersection of two GEOSHAPE instances. The intersection process will produce a GEOSHAPE whose cells are common to the two initial shapes. The common cells will be of various resolutions, depending on the resolutions of the cells from the initial shapes. If you need the resulting shape to contain cells up to a specific resolution, you can call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) either on the result or on the initial shapes.\\n\\n@param `shapeA` First GEOSHAPE instance.\\n\\n@param `shapeB` Second GEOSHAPE instance.\\n\\n@param `shapes` GEOSHAPE instances.\\n\\n@param `shape` Geographical area (GEOSHAPE) resulting from the intersection of the given shapes.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTION\"},{\"name\":\"GEO.INTERSECTS\",\"detail\":\"gts<GTS> shape<GEOSHAPE>  GEO.INTERSECTS  result<BOOLEAN>\\nlgts<LIST<GTS>> shape<GEOSHAPE>  GEO.INTERSECTS  results<LIST<BOOLEAN>>\\nshapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.INTERSECTS  result<BOOLEAN>\",\"documentation\":\"The `GEO.INTERSECTS` function checks if a Geo Time Series or each GTS from a list has at least one data point with a position inside a given geographical area. Since `2.7.1`, the function can also check if two `GEOSHAPE` instances intersect.\\n\\n@param `shapeA` First `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shapeB` Second `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shape` Instance of GEOSHAPE containing the area which the Geo Time Series must intersect.\\n\\n@param `gts` Single instance of Geo Time Series.\\n\\n@param `lgts` List of Geo Time Series.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series had at least one datapoint in 'shape' or if the two shapes intersect.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had at least one datapoint in 'shape'.\\n\\n\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTS\"},{\"name\":\"GEO.JSON\",\"detail\":\"GeoJSON<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.JSON  geoshape<GEOSHAPE>\\nGeoJSON<STRING> resolution<LONG> inside<BOOLEAN>  GEO.JSON  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.9\",\"OPB64name\":\"GEO.JSON\"},{\"name\":\"GEO.JSON.UNIFORM\",\"detail\":\"GeoJSON<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.JSON.UNIFORM  geoshape<GEOSHAPE>\\nGeoJSON<STRING> resolution<LONG> inside<BOOLEAN>  GEO.JSON.UNIFORM  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.JSON`](doc/GEO.JSON), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.JSON.UNIFORM\"},{\"name\":\"GEO.KML\",\"detail\":\"KML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.KML  geoshape<GEOSHAPE>\\nKML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.KML  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.KML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nKML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML\"},{\"name\":\"GEO.KML.UNIFORM\",\"detail\":\"KML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.KML.UNIFORM  geoshape<GEOSHAPE>\\nKML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.KML.UNIFORM  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.KML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the KML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.KML`](doc/GEO.KML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML.UNIFORM\"},{\"name\":\"GEO.NORMALIZE\",\"detail\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.NORMALIZE  normalizedA<GEOSHAPE> normalizedB<GEOSHAPE>\",\"documentation\":\"The `GEO.NORMALIZE` function ensures that the intersection of two **GEOSHAPE**s is present in both as an identical set of cells.\\n\\n@param `shapeA` The first GEOSHAPE to normalize.\\n\\n@param `shapeB` The second GEOSHAPE to normalize.\\n\\n@param `normalizedA` A normalized copy of the first GEOSHAPE.\\n\\n@param `normalizedB` A normalized copy of the second GEOSHAPE.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEO.NORMALIZE\"},{\"name\":\"GEO.OPTIMIZE\",\"detail\":\"shape<GEOSHAPE> resolution<LONG>  GEO.OPTIMIZE  optimized<GEOSHAPE>\",\"documentation\":\"The `GEO.OPTIMIZE` function optimizes a GEOSHAPE instance by modifying its cells to either limit the finest resolution present in the shape or reduce the number of cells by merging cells which cover a whole cell at the coarser resolution.\\n\\n@param `shape` GEOSHAPE instance to optimize.\\n\\n@param `resolution` Finest resolution acceptable (even number from 2 to 32) or 0 to reduce the number of cells.\\n\\n@param `optimized` Optimized GEOSHAPE instance\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.OPTIMIZE\"},{\"name\":\"GEO.REGEXP\",\"detail\":\"shape<GEOSHAPE>  GEO.REGEXP  regexp<STRING>\",\"documentation\":\"The `GEO.REGEXP` function converts a GEOSHAPE into a regular expression to select hexadecimal [HHCode](https://en.wikipedia.org/wiki/HHCode) STRINGs which are included in the GEOSHAPE.\\n\\n@param `shape` An instance of GEOSHAPE.\\n\\n@param `regexp` A regular expression for matching HHCodes covered by 'shape'.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GEO.REGEXP\"},{\"name\":\"GEO.UNION\",\"detail\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.UNION  shape<GEOSHAPE>\\nshapes<LIST<GEOSHAPE>>  GEO.UNION  shape<GEOSHAPE>\",\"documentation\":\"The `GEO.UNION` function computes a GEOSHAPE which is the union of two other shapes. The resulting shape will have cells covering the two original shapes. If you need to have cells up to a certain resolution you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the resulting shape.\\n\\n@param `shapeA` First GEOSHAPE instance to merge.\\n\\n@param `shapeB` Second GEOSHAPE instance to merge.\\n\\n@param `shapes` GEOSHAPE instances to merge.\\n\\n@param `shape` Resulting GEOSHAPE which is the union of the given shapes.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.UNION\"},{\"name\":\"GEO.WITHIN\",\"detail\":\"gts<GTS> shape<GEOSHAPE>  GEO.WITHIN  result<BOOLEAN>\\nlgts<LIST<GTS>> shape<GEOSHAPE>  GEO.WITHIN  results<LIST<BOOLEAN>>\",\"documentation\":\"The `GEO.WITHIN` function checks whether a Geo Time Series™ or each GTS from a list have all its datapoints with a location inside a given geographical area.\\n\\n@param `shape` Instance of GEOSHAPE containing the area inside which the Geo Time Series™ must be contained.\\n\\n@param `gts` Single instance of Geo Time Series™.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series™ had all its datapoints with a location inside 'shape'.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had all its datapoints with a location inside 'shape'.\\n\\n\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WITHIN\"},{\"name\":\"GEO.WKB\",\"detail\":\"WKB<BYTES> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKB  geoshape<GEOSHAPE>\\nWKB<BYTES> resolution<LONG> inside<BOOLEAN>  GEO.WKB  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.WKB` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB\"},{\"name\":\"GEO.WKB.UNIFORM\",\"detail\":\"WKB<BYTES> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKB.UNIFORM  geoshape<GEOSHAPE>\\nWKB<BYTES> resolution<LONG> inside<BOOLEAN>  GEO.WKB.UNIFORM  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.WKB.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKB`](doc/GEO.WKB), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB.UNIFORM\"},{\"name\":\"GEO.WKT\",\"detail\":\"WKT<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKT  geoshape<GEOSHAPE>\\nWKT<STRING> resolution<LONG> inside<BOOLEAN>  GEO.WKT  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.WKT` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WKT\"},{\"name\":\"GEO.WKT.UNIFORM\",\"detail\":\"WKT<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKT.UNIFORM  geoshape<GEOSHAPE>\\nWKT<STRING> resolution<LONG> inside<BOOLEAN>  GEO.WKT.UNIFORM  geoshape<GEOSHAPE>\",\"documentation\":\"The `GEO.WKT.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKT`](doc/GEO.WKT), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.11\",\"OPB64name\":\"GEO.WKT.UNIFORM\"},{\"name\":\"GEOCELL->\",\"detail\":\"geocell<LONG>  GEOCELL->  hhPrefix<STRING>\",\"documentation\":\"The `GEOCELL->` function converts a **LONG** geocell to a **STRING** HHCode prefix. The resulting string length is half the resolution of the geocell.\\n\\nThis function cannot convert to **BYTES** because this representation is limited to resolutions multiple of 4.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `geocell` A geocell.\\n\\n@param `hhPrefix` A HHCode prefix representing the given cell.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEFoKBI1oy\"},{\"name\":\"GEOHASH->\",\"detail\":\"geohash<STRING>  GEOHASH->  lat<DOUBLE> lon<DOUBLE>\\ngeohash<STRING> toHHCodeString<BOOLEAN>  GEOHASH->  hhcode<ANY>\\ngeohashes<LIST<STRING>>  GEOHASH->  shape<GEOSHAPE>\",\"documentation\":\"The `GEOHASH->` converts a [Geohash](https://en.wikipedia.org/wiki/Geohash), exposing the latitude and longitude it contains, or transforms a list of Geohashes into a `GEOSHAPE`.\\n\\n@param `geohash` Geohash to unpack.\\n\\n@param `geohashes` List of Geohashes defining a geographical area.\\n\\n@param `lat` Unpacked latitude.\\n\\n@param `lon` Unpacked longitude.\\n\\n@param `toHHCodeString` Set to `true` to convert the GeoHash to a HHCode STRING or to `false` to convert it to a LONG HHCode instead of extracting its latitude and longitude.\\n\\n@param `hhcode` The HHCode for `geohash`, as a LONG or STRING.\\n\\n@param `shape` Warp 10 `GEOSHAPE` covering the same geographic area as the Geohashes in `geohashes`.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GoKEH34IH1oy\"},{\"name\":\"GEOPACK\",\"detail\":\"shape<GEOSHAPE>  GEOPACK  packed<STRING>\",\"documentation\":\"The `GEOPACK` function takes a **GEOSHAPE** and packs it into a String.\\n\\n@param `shape` The GEOSHAPE instance to pack.\\n\\n@param `packed` The packed string representation of the GEOSHAPE.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOPACK\"},{\"name\":\"GEOSHAPE->\",\"detail\":\"geoshape<GEOSHAPE>  GEOSHAPE->  geocells<LIST<LONG>>\\ngeoshape<GEOSHAPE> toString<BOOLEAN>  GEOSHAPE->  geocellsOrHHPrefixes<LIST<ANY>>\",\"documentation\":\"The `GEOSHAPE->` function converts **GEOSHAPE** to a list of **LONG** geocells or **STRING** HHCode prefixes. Conversion to list of **BYTES** is not supported, because this representation only supports resolution multiple of 4.\\n\\n@param `geoshape` The geoshape to get the cells from.\\n\\n@param `toString` Whether to convert the cells to **STRING** HHCode prefix (true) or geocells (false).\\n\\n@param `geocells` List of geocells.\\n\\n@param `geocellsOrHHPrefixes` List of **LONG** geocells or **STRING** HHCode prefixes.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEJoW0J3JhEV\"},{\"name\":\"GEOSHIFT\",\"detail\":\"shape<GEOSHAPE> lat<DOUBLE> lon<DOUBLE> precision<LONG>  GEOSHIFT  output<GEOSHAPE>\\nshape<GEOSHAPE> meridian<DOUBLE> lat<DOUBLE> lon<DOUBLE> precision<LONG>  GEOSHIFT  output<GEOSHAPE>\",\"documentation\":\"`GEOSHIFT` functions shifts a geoshape on the earth. It is able to safely overlap the poles or the 180th meridian.\\n- Longitude shift keeps distances.\\n- Latitude shift keeps angles, not distances.\\n- When doing latitude shift, you can specify a meridian to shift along this meridian. It means a positive shift became a negative shift behind this meridian +/- 90°.\\n\\nSet precision parameter to zero for safe shifting operation. See [`GEO.WKT`](/doc/GEO.WKT) for precision encoding.\\n\\nUse [`->GEOJSON`](/doc/AIt6GJx9JoxD) to visualize shapes and the results. GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `lon` degrees of longitude to shift (-360 to 360).\\n\\n@param `lat` degrees of latitude to shift (-180 to 180).\\n\\n@param `precision` even number from 0 to 30. Set to 0 for automatic resolution. Force to another value if you know the input resolution to be finer and you want a coarser resolution.\\n\\n@param `shape` The input geoshape.\\n\\n@param `output` The shifted geoshape.\\n\\n@param `meridian` When doing latitude shift, you can specify a meridian to shift along this meridian. (-180 to 180)\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSHIFT\"},{\"name\":\"GEOSPLIT\",\"detail\":\"shape<GEOSHAPE>  GEOSPLIT  subshapes<LIST<GEOSHAPE>>\",\"documentation\":\"The `GEOSPLIT` function splits a **GEOSHAPE** into a set of **GEOSHAPE**s which have no adjacent cells (each shape is a connected space).\\n\\nAdjacent cells share part of their side. Adjacency is not provided by corners and cells on each side of the international date line are not considered adjacent either.\\n\\n@param `shape` The GEOSHAPE instance to split.\\n\\n@param `subshapes` The shapes whose union form `shape` and which each form a connected space.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSPLIT\"},{\"name\":\"GEOUNPACK\",\"detail\":\"packed<STRING>  GEOUNPACK  shape<GEOSHAPE>\\npackedbytes<BYTES>  GEOUNPACK  shape<GEOSHAPE>\",\"documentation\":\"The `GEOUNPACK` function unpacks a GEOSHAPE previously packed using [`GEOPACK`](/doc/GEOPACK).\\n\\n@param `packed` A packed string representation of a GEOSHAPE.\\n\\n@param `packedbytes` A byte array representation of a GEOSHAPE.\\n\\n@param `shape` The decoded instance of GEOSHAPE.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOUNPACK\"},{\"name\":\"GET\",\"detail\":\"map<MAP> key<ANY>  GET  mapvalue<ANY>\\nlist<LIST> index<LONG>  GET  value<ANY>\\nlist<LIST> index<LIST>  GET  value<ANY>\\narray<BYTES> index<LONG>  GET  bytevalue<LONG>\\nstr<STRING> index<LONG>  GET  character<STRING>\",\"documentation\":\"Retreive a value in a **MAP** or a **LIST**.\\n\\nThe `GET` function consumes on the top of the stack a list, a byte array, or a map, and the index (or the key), \\nthen put the result on the stack. \\n\\nIf key is not found, it returns NULL on the stack.\\n\\nIf index is out of bound, `GET` raises an error.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, `GET` can operate recursively on nested lists. In this case, the index is a list.\\n\\nSince 2.7.3, GET can operate on a **STRING** to get a single character, as a **STRING**. The recursive version can also work on any type supported by `GET` as long as the top element is a **LIST**.\\n\\n@param `map` The input MAP.\\n\\n@param `key` Depending on map construction, could be a number, a string, a list, another map, a GTS, a boolean.\\n\\n@param `mapvalue` The value for the requested key. If key do not exists in map, returns NULL\\n\\n@param `index` The index number in the list. Valid values in [-size; size-1]\\n\\n@param `list` The input LIST.\\n\\n@param `value` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `array` Byte array from which to read a byte.\\n\\n@param `bytevalue` The value of the byte, always unsigned (from 0 to 255).\\n\\n@param `str` A string from which a character should be taken.\\n\\n@param `character` The character at the given index.\\n\\n\",\"tags\":[\"lists\",\"maps\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"GET\"},{\"name\":\"GETEXPONENT\",\"detail\":\"n<NUMBER>  GETEXPONENT  exponent<LONG>\",\"documentation\":\"The `GETEXPONENT` function consumes a DOUBLE, a LONG casted as a DOUBLE or a COUNTER caster as DOUBLE and pushes back the unbiased exponent used in the representation of this DOUBLE.\\n\\n@param `n` The decimal value to get the exponent from, will be converted to DOUBLE if not already the case.\\n\\n@param `exponent` the unbiased exponent of the argument\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"GETEXPONENT\"},{\"name\":\"GETHOOK\",\"detail\":\"token<STRING> hook<STRING>  GETHOOK  secure<STRING>\",\"documentation\":\"Extracts the macro associated with a token hook and pushes it onto the stack wrapped as a secure script.\\n\\nIf the token does not contain the given hook, an empty macro will be wrapped.\\n\\n@param `hook` Name of the hook to extract from the token.\\n\\n@param `token` Read token from which to extract the hook.\\n\\n@param `secure` Hook macro wrapped in a secure script.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.8\",\"OPB64name\":\"GETHOOK\"},{\"name\":\"GETSECTION\",\"detail\":\" GETSECTION  section<STRING>\",\"documentation\":\"The `GETSECTION` function pushes onto the stack the name of the current section.\\n\\n@param `section` Name of the current section.\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"GETSECTION\"},{\"name\":\"GITFIND\",\"detail\":\"{ regexp<STRING> repo<STRING>  } GITFIND  files<LIST<STRING>>\",\"documentation\":\"The `GITFIND` function identifies files which match a provided regular expression from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `regexp` Regular expression that the relative pathes must match to be selected.\\n\\n@param `files` List of relative pathes matching `regexp`.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITFIND\"},{\"name\":\"GITLOAD\",\"detail\":\"{ rev<STRING> path<STRING> repo<STRING>  } GITLOAD  content<BYTES>\",\"documentation\":\"The `GITLOAD` function retrieves content stored in a git repository accessible by the extension. The load operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `content` Byte array containing the content of `path` or `NULL` if it was not found.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOAD\"},{\"name\":\"GITLOG\",\"detail\":\"{ skip<LONG> count<LONG> path<STRING> repo<STRING>  } GITLOG \",\"documentation\":\"The `GITLOG` function retrieves log entries for the given pathes. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\nThe log entries returned are maps with the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `rev` | The git revision string for the entry. |\\n| `type` | The type of entry. |\\n| `message` | The message associated with the entry. |\\n| `author.name` | The name of the author of the change. |\\n| `author.email` | The email address of the author of the change. |\\n| `author.timestamp` | The timestamp of the change, expressed in your platform time units. |\\n| `committer.name` | The name of the committer of the change. |\\n| `committer.email` | The email address of the committer of the change. |\\n| `committer.timestamp` | The timestamp of the commit. |\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `count` Optional maximum number of log entries to return.\\n\\n@param `skip` Optional number of log entries to skip before returning entries.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOG\"},{\"name\":\"GITRM\",\"detail\":\"{ path<STRING> repo<STRING> message<STRING>  } GITRM \",\"documentation\":\"The `GITRM` removes files from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `message` Commit message for the deletion operation.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITRM\"},{\"name\":\"GITSTORE\",\"detail\":\"{ workdir<BOOLEAN> path<STRING> repo<STRING> content<STRING> message<STRING>  } GITSTORE  rev<STRING>\",\"documentation\":\"The `GITSTORE` function stores some content in a file in a git repository accessible by the extension. The store operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `message` The commit message to associated with the file creation or modification.\\n\\n@param `content` The `STRING` or `BYTES` content to store under `path` in the repository. If `content` is of type `STRING`, the `UTF-8` charset will be used for converting it to `BYTES`.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `workdir` If set to `false`, the file at `path` will be removed from the working directory after the commit.\\n\\n@param `rev` Revision string of the commit.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITSTORE\"},{\"name\":\"GITTAG\",\"detail\":\"{ message<STRING> force<BOOLEAN> tag<STRING> rev<STRING> repo<STRING>  } GITTAG  ref<STRING>\",\"documentation\":\"The `GITTAG` function tags a git repository accessible by the extension. The tag operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `message` Message to attach to the annotated tag.\\n\\n@param `tag` Name of the tag to attach.\\n\\n@param `force` Flag indicating whether or not to force the tag if it already exists. Defaults to false.\\n\\n@param `ref` Name of the created reference.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITTAG\"},{\"name\":\"GOLDWRAP\",\"detail\":\"encoder<GTSENCODER>  GOLDWRAP  wrapped<BYTES>\\ngts<GTS>  GOLDWRAP  wrapped<BYTES>\\nwrap<BYTES>  GOLDWRAP  wrapped<BYTES>\\nlist<LIST<GTS>>  GOLDWRAP  lwrapped<LIST<BYTES>>\\nlist<LIST<GTSENCODER>>  GOLDWRAP  lwrapped<LIST<BYTES>>\\nlist<LIST<BYTES>>  GOLDWRAP  lwrapped<LIST<BYTES>>\",\"documentation\":\"The `GOLDWRAP` function wraps a Geo Time Series™ or a GTS Encoder in a deterministic way, by sorting on timestamps but also on values, locations and elevations.\\n\\nThis version of a `WRAP` like function is meant to create a *gold standard* blob from its input. In order to ensure reproducibility of the processs, attributes should be dropped prior to calling `GOLDWRAP`.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `wrap` Wrapped Geo Time Series™ instance to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders to wrap.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"GOLDWRAP\"},{\"name\":\"GOST\",\"detail\":\"input<BYTES>  GOST  result<BYTES>\",\"documentation\":\"The `GOST` function digests a byte array on the stack with the cryptographic hash function [GOST](https://en.wikipedia.org/wiki/GOST_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"GOST\"},{\"name\":\"GROUPBY\",\"detail\":\"list<LIST> macro<MACRO>  GROUPBY  grouped<LIST>\",\"documentation\":\"The `GROUPBY` function groups the elements of a list according to the value returned by a macro.\\n\\n@param `macro` Macro used for grouping, consumes an element off the stack and produces a value on the stack.\\n\\n@param `list` List of elements to group.\\n\\n@param `grouped` List of groups, each group is a list whose first element is the group key and whose second element is the sublist of `list` for which `macro` produced the same value.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"GROUPBY\"},{\"name\":\"GRUBBSTEST\",\"detail\":\"gts<GTS> mad<BOOLEAN> alpha<DOUBLE>  GRUBBSTEST  result<LIST<LONG>>\\ngts<GTS> mad<BOOLEAN>  GRUBBSTEST  result<LIST<LONG>>\\ngtsList<LIST<GTS>> mad<BOOLEAN> alpha<DOUBLE>  GRUBBSTEST  resultList<LIST>\\ngtsList<LIST<GTS>> mad<BOOLEAN>  GRUBBSTEST  resultList<LIST<LIST<LONG>>>\",\"documentation\":\"The `GRUBBSTEST` function detects an outlier in a GTS (or a LIST of GTS), by applying a \\n[Grubbs’](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h1.htm) test.\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nIt tests whether there is exactly a single outlier in a GTS or not. For an iterative version which can detect multiple outliers, use instead\\n[`ESDTEST`](/doc/ESDTEST).\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> ### Reference \\n> Grubbs, Frank (February 1969). “Procedures for Detecting Outlying Observations in Samples”. Technometrics (Technometrics, Vol. 11, No. 1).\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"GRUBBSTEST\"},{\"name\":\"GTSHHCODE->\",\"detail\":\"hhcode<LONG>  GTSHHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<STRING>  GTSHHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<BYTES>  GTSHHCODE->  lat<DOUBLE> lon<DOUBLE>\",\"documentation\":\"The `GTSHHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude. This function is very similar to [`HHCODE->`](/doc/H3W2IoG4AIs) except that when given the internal value used by Geo Time Series™ for a missing location it pushes back `NaN NaN`.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GpGIH3W2IoG4AIs\"},{\"name\":\"GUARD\",\"detail\":\"macro<MACRO> symbols<LIST>  GUARD \\nmacro<MACRO> symbols<LIST> hide<LONG>  GUARD \\nmacro<MACRO> context<CONTEXT>  GUARD \\nmacro<MACRO> context<CONTEXT> hide<LONG>  GUARD \",\"documentation\":\"The `GUARD` function executes a macro, like [EVAL](/doc/EVAL), while ensuring sensitive information is protected. This is achieved by clearing part or all the stack, symbols and registers.\\n\\n@param `symbols` List of symbols to be cleared after the execution of the macro, whether it fails or succeeds.\\n\\n@param `hide` Number of level to hide before the macro execution. If the macro fails, the stack is cleared and hidden levels are set visible again. See [HIDE](/doc/HIDE) and [SHOW](/doc/SHOW) for more explanation on accepted parameters.\\n\\n@param `macro` Macro to be executed.\\n\\n@param `context` Context to be restored after the execution of the macro, whether it fails or succeeds.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"GUARD\"},{\"name\":\"GZIP\",\"detail\":\"string<STRING>  GZIP  compressed<BYTES>\\nbytes<BYTES>  GZIP  compressed<BYTES>\",\"documentation\":\"The `GZIP` function compresses a STRING or a byte array using the [gzip](https://en.wikipedia.org/wiki/Gzip) algorithm. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"GZIP\"},{\"name\":\"HASH\",\"detail\":\"str<STRING>  HASH  result<LONG>\\nbytes<BYTES>  HASH  result<LONG>\",\"documentation\":\"Computes a 64 bits hash of the string or byte array on top of the stack.\\n\\n@param `str` String to hash\\n\\n@param `bytes` Bytes to hash\\n\\n@param `result` 64bit hash\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"HASH\"},{\"name\":\"HAVERSINE\",\"detail\":\"p1_latitude<NUMBER> p1_longitude<NUMBER> p2_latitude<NUMBER> p2_longitude<NUMBER>  HAVERSINE  haversineDistance<DOUBLE>\",\"documentation\":\"The `HAVERSINE` function consumes two coordinates and pushes back a **DOUBLE** [great-circle distance](https://en.wikipedia.org/wiki/Great-circle_distance) in meters.\\n\\n@param `p2_longitude` Point 2 longitude.\\n\\n@param `p2_latitude` Point 2 latitude.\\n\\n@param `p1_longitude` Point 1 longitude.\\n\\n@param `p1_latitude` Point 1 latitude.\\n\\n@param `haversineDistance` Great circle distance using the haversine function.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"HAVERSINE\"},{\"name\":\"HEADER\",\"detail\":\"name<STRING> value<STRING>  HEADER \",\"documentation\":\"The `HEADER` function allows you to set custom headers which should be returned in the HTTP response. This obviously works only for the `/exec` Warp 10 endpoint.\\n\\n@param `name` Name of HTTP header to return, MUST start with `X-`, *i.e.* be a custom header.\\n\\n@param `value` Value to return for the `name` header. If `NULL`, the specified header is removed from the list of headers to return.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"HEADER\"},{\"name\":\"HEX->\",\"detail\":\"input<STRING>  HEX->  output<BYTES>\",\"documentation\":\"Converts a hexadecimal string representation into a bytes array.\\nBytes array cannot be represented on the stack.\\n\\n@param `input` A valid hexadecimal string.\\n\\n@param `output` Bytes Array from input. Seen as null on the stack.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H3KNAIs\"},{\"name\":\"HEXTOB64\",\"detail\":\"input<STRING>  HEXTOB64  output<STRING>\",\"documentation\":\"Decodes the hex encoded content on top of the stack and \\nimmediately re-encode it in base64. This enables you to \\nconvert encoded content which would not be valid UTF-8 encoding \\nfrom hexadecimal to base64.      \\n\\n@param `input` A valid hexadecimal string\\n\\n@param `output` Base64 representation of input\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOB64\"},{\"name\":\"HEXTOBIN\",\"detail\":\"input<STRING>  HEXTOBIN  output<STRING>\",\"documentation\":\"Converts a string representing a hexadecimal number into a string representing a binary number.\\n\\nThe `HEXTOBIN` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from hexadecimal to binary.\\n\\n@param `input` The string representing a hexadecimal number\\n\\n@param `output` The string representing a binary number\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOBIN\"},{\"name\":\"HFCAT\",\"detail\":\"{ hfcat.gts<STRING> hfcat.info<STRING> selector<STRING> token<STRING> macro<MACRO> store<STRING> secret<STRING>  } HFCAT \",\"documentation\":\"The `HFCAT` function creates catalog files for a History File Store. The files are created in the root directory of the History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfcat` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to catalog.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfcat` capability.\\n\\n@param `macro` Optional macro which will be called with each matched `GTS`. The macro can modify the attributes and return a `GTS` or an `ENCODER` or not return anything to ignore the GTS.\\n\\n@param `token` Optional token to use for retrieving GTS.\\n\\n@param `selector` Selector to match Geo Time Series, syntax is `class{labels}`.\\n\\n@param `hfcat.info` Optional name of the catalog *info* file, defaults to `hfcat.info`. If the name ends with `.gz`, the content will be gzipped.\\n\\n@param `hfcat.gts` Optional name of the catalog *gts* file, defaults to `hfcat.gts`. If the name ends with `.gz`, the content will be gzipped.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCAT\"},{\"name\":\"HFCLOSE\",\"detail\":\"store<STRING> secret<STRING>  HFCLOSE \",\"documentation\":\"The `HFCLOSE` function closes a History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfclose` capability by setting its value to a regular expression matching the name of the accessible stores.\\n\\n@param `store` Name of History File Store to close.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfclose` capability.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCLOSE\"},{\"name\":\"HFDUMP\",\"detail\":\"{ dfs.replication<LONG> dfs.block.size<LONG> conf<MAP> catalog<BOOLEAN> bloomfilter<BOOLEAN> gzipgts<BOOLEAN> gzipinfo<BOOLEAN> macro<MACRO> checksums<BOOLEAN> keepempty<BOOLEAN> blocksize<LONG> compress<STRING> format<STRING> selector<STRING> timespan<LONG> end<LONG> path<STRING> token<STRING> secret<STRING>  } HFDUMP  infos<MAP>\",\"documentation\":\"The `HFDUMP` function produces a HFile from Geo Time Series data. The function produces a file in the directory from which the Warp 10 instance was launched, unless the configuration key `hfdump.dir` was set in which case the file will be created in this directory. The function will not overwrite an existing file.\\n\\nIf capability `hfdump` is set, its value will be treated as the root directory in which the file will be created.\\n\\nOn top of the input parameters described below, the `HFDUMP` function also supports the parameters of the [`FETCH`](https://warp10.io/doc/FETCH) function with the exclusion of `ttl`, `wtimestamp`, `type`, `typeattr`, `gts`, `merge`, `priority` and `selectors`.\\n\\nThe function will return a MAP containing various information about the file that was just created. This information, among with others, are also stored in the HFile and in the accompanying `.info` file.\\n\\nThe list of GTS included in the HFile are stored in the companion `.gts` file.\\n\\n@param `secret` Secret configured in `hfdump.secret`. The selector will not be modified with extra `.producer`, `.owner` or `.app` label selectors. This parameter is ignored if `token` is set. Secret is not checked if the `hfdump` capability is set.\\n\\n@param `token` Token to use for matching Geo Time Series, if set then `secret` is ignored.\\n\\n@param `path` Path to the file to create. Only the last part of `path` is considered, relative to either `hfdump.dir`, the launch directory or the path specified in capability `hfdump`.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `format` Format of the produced wrappers, either `WRAPPER` or `ZWRAPPER`. Defaults to `WRAPPER`.\\n\\n@param `compress` HFile compression to use, `NONE` and `GZ` (the default) are always supported, `SNAPPY`, `LZ4` and `LZO` may be supported if the required libraries are in the classpath.\\n\\n@param `blocksize` HFile block size in bytes, defaults to 65536.\\n\\n@param `keepempty` Flag indicating whether or not Geo Time Series with no data points should be included in the target file. Doing so can be useful to create a single file that `HFINDEX` can use for populating the Directory.\\n\\n@param `checksums` Flag indicating whether or not write checksums should be output in a companion file.\\n\\n@param `macro` Macro called for each GTS Encoder to store in the file. The macro can transform the `ENCODER` prior to storing, for example to perform a [RANGECOMPACT](https://warp10.io/doc/RANGECOMPACT) or any other transformation. Class name and labels modifications will be ignored. The macro must return an `ENCODER` or a `GTS`.\\n\\n@param `infos` Map with information related to the produced file.\\n\\n@param `catalog` Flag indicating whether or not to generate the `.info` and `.gts` files alongside the `.hfile`. Defaults to `true`.\\n\\n@param `gzipinfo` Flag indicating whether or not the `.info` file should be compressed (default).\\n\\n@param `gzipgts` Flag indicating whether or not the `.gts` file should be compressed (default).\\n\\n@param `bloomfilter` Flag indicating whether or not to generate a Bloom Filter in the HFile (defaults to `true`).\\n\\n@param `conf` Map of parameters to pass to the filesystem when using HDFS.\\n\\n@param `dfs.block.size` Block size to use (in bytes) when using HDFS.\\n\\n@param `dfs.replication` Replication count to use when using HDFS.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFDUMP\"},{\"name\":\"HFFETCH\",\"detail\":\"{ token<STRING> class<STRING> labels<MAP> end<LONG> timespan<LONG> start<LONG> count<LONG> skip.count<LONG> sampling.ratio<DOUBLE> timestep<LONG> step<LONG> gcount<LONG> gskip<LONG> encoders<BOOLEAN> lineage<STRING> clip<BOOLEAN> merge<BOOLEAN> store<STRING> selector<STRING>  } HFFETCH  result<LIST>\",\"documentation\":\"The `HFFETCH` function retrieves data from a History File Store available in a Warp 10 instance.\\n\\n@param `token` Token to use for matching Geo Time Series.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points. Ignored if `start` is specified.\\n\\n@param `count` Number of data points to retrieve.\\n\\n@param `start` Start timestamp to consider when fetching data points. It has priority over `timespan`.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `class` Class selector. Not used if `selector` is set.\\n\\n@param `labels` Labels selectors. Not used if `selector` is set.\\n\\n@param `store` Name of History File Store to access. This can also be specified via the `.hfstore` token attribute.\\n\\n@param `result` List of GTS Encoders or Geo Time Series containing the fetched data.\\n\\n@param `encoders` Set to `true` (default) to produce `ENCODERS`, and to `false` to produce Geo Time Series.\\n\\n@param `gskip` Number of GTS to skip.\\n\\n@param `gcount` Number of GTS to consider.\\n\\n@param `merge` Flag indicating whether or not `ENCODERS` from different files should be merged prior to being returned. This defaults to `true`. Use `false` for faster retrieval.\\n\\n@param `clip` Flag indicating whether or not the data should be clipped to the specified time range or if the complete data from each scanned HFile should be returned. Defaults to `true`.\\n\\n@param `lineage` Optional attribute name which, if defined, will contain the tab separated list of file names from which the data was fetched. The attribute can also be set via the `.hflineage` token attribute.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0.0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFFETCH\"},{\"name\":\"HFID\",\"detail\":\"gts<GTS> keys<LIST>  HFID  id<BYTES>\\nencoder<ENCODER> keys<LIST>  HFID  id<BYTES>\",\"documentation\":\"The `HFID` function computes a GTS Id for a given GTS or ENCODER using the specified keys. The GTS or ENCODER must have a class name set.\\n\\n@param `keys` List of keys to use for generating the Id. This list can contain keys as 4 `LONG`s, 2 byte arrays of length 16 each, 2 hex encoded `STRING` representing 16 bytes each, a combination of `BYTES` and hex encoded `STRING`, or a combination of `BYTES` or hex encoded `STRING` and two `LONG`s.\\n\\n@param `id` Id of the GTS or ENCODER, as a byte array of length 16.\\n\\n@param `gts` Geo Time Serie for which to compute the Id.\\n\\n@param `encoder` GTS Encoder for which to compute the Id.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFID\"},{\"name\":\"HFINDEX\",\"detail\":\"{ gts<BOOLEAN> infos<BOOLEAN> macro<MACRO> secret<STRING> attr<STRING> store<STRING> file<STRING>  } HFINDEX  { count:LONG' count<undefined> \\n\\n infos:MAP' infos<undefined> \\n\\n gts:LIST<ENCODER>' gts<undefined> \\n\\n }\\n\\n\",\"documentation\":\"The `HFINDEX` function reads a HFile from a History File Store and registers all of its Geo Time Series with the Warp 10 instance Directory.\\n\\nThe stores which can be accessed can be controlled using the `hfindex` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfindex` capability.\\n\\n@param `file` File to consider within the History File Store.\\n\\n@param `attr` Optional attribute to set on all Geo Time Series with the name of the History File Store. This makes deletion of the GTS easier.\\n\\n@param `count` The number of Geo Time Series registered.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be registered or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINDEX\"},{\"name\":\"HFINFO\",\"detail\":\"{ gts<BOOLEAN> infos<BOOLEAN> macro<MACRO> secret<STRING> store<STRING> file<STRING>  } HFINFO  { infos:MAP' infos<undefined> \\n\\n gts:LIST<ENCODER>' gts<undefined> \\n\\n }\\n\\n\",\"documentation\":\"The `HFINFO` function retrieves information for a History File Store or one of its files.\\n\\nThe stores which can be accessed can be controlled using the `hfinfo` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfinfo` capability.\\n\\n@param `file` Name of `.hfile` file to consider within the History File Store. Use `NULL` to retrieve information about the whole store.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be retained or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINFO\"},{\"name\":\"HFKEYS\",\"detail\":\"{ README<STRING>  } HFKEYS  keys<STRING>\",\"documentation\":\"The `HFKEYS` function finds Geo Time Series matching critera and packs them in a blob suitable for use with `HFileInputFormat`.\\n\\nThe packed keys must be specified in the `hfileinputformat.keys` configuration when using `HFileInputFormat`.\\n\\n@param `README` The parameters used by `HFKEYS` are identical to those used by [`FIND`](https://warp10.io/doc/FIND), please refer to the documentation of this function.\\n\\n@param `keys` Blob containing packed keys. To be specified as the `hfileinputformat.keys` configuration when using the `HFileInputFormat`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFKEYS\"},{\"name\":\"HFOPEN\",\"detail\":\"{ maxreaders<LONG> fileorder<STRING> ignore.missing<BOOLEAN> attr<STRING> hfcat.gts<STRING> hfcat.info<STRING> register<BOOLEAN> macro<MACRO> rescan<LONG> root<STRING> storeSecret<STRING> store<STRING>  }secret<STRING>  HFOPEN \",\"documentation\":\"The `HFOPEN` function opens a History File Store, making it available in a Warp 10 instance.\\n\\nThe files which are open are those specified in the `hfcat.info` file.\\n\\nThe files which can be accessed can be controlled using the `hfopen` capability by setting its value to a regular expression matching the accessible roots from which the files can be read.\\n\\n@param `store` Name under which the History File Store will be available in Warp 10.\\n\\n@param `secret` General secret of the History File Store plugin.\\n\\n@param `storeSecret` Secret which will be associated with the newly open store.\\n\\n@param `root` Root directory from which the files should be loaded.\\n\\n@param `rescan` Rescan period (in ms). Defaults to 0. Only set this if you intend to load all the files present in `root` over time.\\n\\n@param `register` `BOOLEAN` indicating whether or not the GTS declared in the GTS metadata file `hfcat.gts` (or the one specified in `hfcat.gts`) should be registered with the Directory.\\n\\n@param `macro` Optional macro used to select which GTS from the GTS metadata `hfcat.gts` should be registered. The macro takes as input an `ENCODER` and returns a `BOOLEAN`.\\n\\n@param `attr` Optional attribute name whose value will be set to the store name when registering the GTS.\\n\\n@param `hfcat.info` Optional name of the catalog file containing the store infos. Defaults to `hfcat.info`.\\n\\n@param `hfcat.gts` Optional name of the catalog file containing the Geo Time Series. Defaults to `hfcat.gts`.\\n\\n@param `ignore.missing` `BOOLEAN` indicating whether missing `.hfile` should be ignored or produce an error.\\n\\n@param `fileorder` How should files be ordered in the store, one of `NAME`, `REVNAME`, `MINTS`, `MAXTS`.\\n\\n@param `maxreaders` Maximum number of open readers per store, defaults to 1024.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFOPEN\"},{\"name\":\"HFRESCAN\",\"detail\":\"secret<STRING> store<STRING>  HFRESCAN \",\"documentation\":\"The `HFRESCAN` function triggers a rescan of the directory of a defined History File Store. The rescan happens asynchronously.\\n\\nThe HFStores which can be rescanned can be specified using a regular expression as the value of capability `hfrescan`.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`, checked only if capability `hfrescan` is not set when using capabilities.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFRESCAN\"},{\"name\":\"HFTOKEN\",\"detail\":\"store<STRING>  HFTOKEN  envelope<MAP>\\nstore<STRING> secret<STRING>  HFTOKEN  envelope<MAP>\",\"documentation\":\"The `HFTOKEN` produces a token envelope which can be used to generate a read token to access data in a History File Store.\\n\\nThe Geo Time Series in a History File Store may have been generated with a wide array of producers, owners and applications. The goal of this function is to retrieve those informations and return a `MAP` containing them plus some additional elements.\\n\\nThe returned `MAP` can be used as argument to the [`TOKENGEN`](https://warp10.io/doc/TOKENGEN) function. Please set the `application`, `ttl` and `owner` fields to suitable values for your environment first.\\n\\nThe stores which can be accessed can be controlled using the `hftoken` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of the History File Store for which a token envelope should be generated.\\n\\n@param `secret` General secret for the History File Store plugin. Not used when the capability `hftoken` is set.\\n\\n@param `envelope` Map containing parameters for generating a token suitable for accessing data in the specified History File Store.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFTOKEN\"},{\"name\":\"HHCODE->\",\"detail\":\"hhcode<LONG>  HHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<STRING>  HHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<BYTES>  HHCODE->  lat<DOUBLE> lon<DOUBLE>\",\"documentation\":\"The `HHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"H3W2IoG4AIs\"},{\"name\":\"HHCODE.BBOX\",\"detail\":\"hhCode<STRING> resolution<LONG>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<LONG> resolution<LONG>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<BYTES> resolution<LONG>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<STRING>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<BYTES>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\",\"documentation\":\"The `HHCODE.BBOX` function returns the bounding box of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the bounding box representing the lat/lon of North-Easth and South-West corners of the bbox.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `latSW` Latitude of the south west corner of the bounding box\\n\\n@param `lonSW` Longitude of the south west corner of the bounding box\\n\\n@param `latNE` Latitude of the north east corner of the bounding box\\n\\n@param `lonNE` Longitude of the north east corner of the bounding box\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.BBOX\"},{\"name\":\"HHCODE.CENTER\",\"detail\":\"hhCode<STRING> resolution<LONG>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<LONG> resolution<LONG>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<BYTES> resolution<LONG>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<STRING>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<BYTES>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\",\"documentation\":\"The `HHCODE.CENTER` function returns the center of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the center and returns its lat/lon.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `lat` Latitude of the center of the given HHCode\\n\\n@param `lon` Longitude of the center of the given HHCode\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.CENTER\"},{\"name\":\"HHCODE.EAST\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.EAST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.EAST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.EAST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.EAST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.EAST  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.EAST` function returns the cell east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.EAST\"},{\"name\":\"HHCODE.NORTH\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.NORTH  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.NORTH  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.NORTH  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.NORTH  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.NORTH  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.NORTH` function returns the cell north of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH\"},{\"name\":\"HHCODE.NORTH.EAST\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.NORTH.EAST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.NORTH.EAST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.NORTH.EAST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.NORTH.EAST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.NORTH.EAST  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.NORTH.EAST` function returns the cell north east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.EAST\"},{\"name\":\"HHCODE.NORTH.WEST\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.NORTH.WEST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.NORTH.WEST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.NORTH.WEST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.NORTH.WEST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.NORTH.WEST  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.NORTH.WEST` function returns the cell north west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.WEST\"},{\"name\":\"HHCODE.SOUTH\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.SOUTH  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.SOUTH  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.SOUTH  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.SOUTH  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.SOUTH  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.SOUTH` function returns the cell south of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH\"},{\"name\":\"HHCODE.SOUTH.EAST\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.SOUTH.EAST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.SOUTH.EAST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.SOUTH.EAST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.SOUTH.EAST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.SOUTH.EAST  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.SOUTH.EAST.EAST` function returns the cell south east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.EAST\"},{\"name\":\"HHCODE.SOUTH.WEST\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.SOUTH.WEST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.SOUTH.WEST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.SOUTH.WEST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.SOUTH.WEST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.SOUTH.WEST  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.SOUTH.WEST` function returns the cell south west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.WEST\"},{\"name\":\"HHCODE.WEST\",\"detail\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.WEST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.WEST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.WEST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.WEST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.WEST  outputHHCode<BYTES>\",\"documentation\":\"The `HHCODE.WEST` function returns the cell west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.WEST\"},{\"name\":\"HIDE\",\"detail\":\"levels<LONG>  HIDE  hidden<LONG>\",\"documentation\":\"The `HIDE` function hides some levels of the stack to the rest of the executing code. This allows a kind of protection for levels which should not be accessed by a macro call for example. Note that this is not a real protection since a call to [`SHOW`](/doc/SHOW) could reveal the hidden levels.\\n\\nThe hidden levels are always the deepest. Depending on the `levels` parameter to the call to `HIDE`, the hidden levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there remains at most a certain number ((*abs(`levels`)*) with `levels` < 0).\\n\\nWhen called with `NULL` as parameter, `HIDE` will hide all the visible levels.\\n\\nThe number of newly hidden levels is returned.\\n\\n@param `levels` Number of levels to hide or to remain visible, or `NULL` to hide them all.\\n\\n@param `hidden` Number of levels actually hidden.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"HIDE\"},{\"name\":\"HLOCATE\",\"detail\":\"gts<LIST<GTS>>  HLOCATE  result<LIST>\",\"documentation\":\"The `HLOCATE` function locates the HBase regions containing a list of Geo Time Series™.\\n\\nThis function only works with the distributed version of Warp 10™.\\n\\nIt outputs a list of lists containing a GTS selector, the host and port of the RegionServer currently serving the region and the region id of a region containing data for this GTS.\\n\\n@param `gts` List of Geo Time Series™ to locate.\\n\\n@param `result` List of GTS, RegionServer, region tuples.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.2.13\",\"OPB64name\":\"HLOCATE\"},{\"name\":\"HTTP\",\"detail\":\"{ url<STRING>  } HTTP  { content:BYTES' content<undefined> \\n\\n responseHeaders:MAP' headers<undefined> \\n\\n statusMessage:STRING' status.message<undefined> \\n\\n statusCode:LONG' status.code<undefined> \\n\\n }\\n\\n\\n{ url<STRING> method<STRING> headers<MAP> body<OBJECT>  } HTTP  { content:BYTES' content<undefined> \\n\\n responseHeaders:MAP' headers<undefined> \\n\\n statusMessage:STRING' status.message<undefined> \\n\\n statusCode:LONG' status.code<undefined> \\n\\n }\\n\\n\\n{ url<STRING> method<STRING> headers<MAP> body<OBJECT> chunkMacro<MACRO> chunkSize<LONG> username<STRING> password<STRING>  } HTTP  { chunkNumber:LONG' chunk.number<undefined> \\n\\n content:BYTES' content<undefined> \\n\\n responseHeaders:MAP' headers<undefined> \\n\\n statusMessage:STRING' status.message<undefined> \\n\\n statusCode:LONG' status.code<undefined> \\n\\n }\\n\\n\",\"documentation\":\"The `HTTP` function sends an HTTP request, waits for the response then returns it.\\nThe input is a MAP with at least the field `url`.\\nThe response is a MAP with the fields `status.code`, `status.message`, `headers` and `content`.\\n\\nThe `HTTP` function can also be used in streaming mode by providing a positive `chunk.size` argument.\\nIn streaming mode, whenever `chunk.size` bytes are downloaded, a response MAP with the additional field `chunk.number` is pushed onto the stack and the macro given as `chunk.macro` argument is being executed.\\nFinally, a last `chunk.macro` execution is done on a chunk response that has empty `content` and `chunk.number = -1`.\\n\\nThe `HTTP` function makes use of token's capabilities to raise the initial limits per warpscript (set from configurations).\\n\\n| Description | Capability | Initial limit | Default value\\n|----------|------|------|------|\\n| Maximum number of calls | http.requests | warpscript.http.maxrequests | 1 |\\n| Maximum number of downloadable bytes | http.size | warpscript.http.maxsize | 65536 |\\n| Maximum number of bytes per chunk | http.chunksize | warpscript.http.maxchunksize | 65536 |\\n\\nOther configurable options:\\n| Description | Configuration | Default value\\n|----------|------|------|\\n| If true, authentication is required to call HTTP | warpscript.http.authentication.required | false |\\n| If set, it is a capability that is required to call HTTP | warpscript.http.capability | *none* |\\n| List of patterns to include/exclude for hosts. If not set, use the value of webcall.host.patterns | warpscript.http.host.patterns | *none* |\\n\\n\\n@param `url` The URL to send the HTTP request to\\n\\n@param `method` Optional HTTP method (aka verb), default to GET or POST whether there is a body\\n\\n@param `headers` Optional request headers\\n\\n@param `body` Optional body. BYTES or UTF-8 encoded STRING\\n\\n@param `chunkMacro` Optional macro that is executed whenever a chunk has been downloaded. It expects a MAP that contains chunk number (LONG), status code (LONG), status message (STRING), headers (MAP), and chunk content (BYTES)\\n\\n@param `chunkSize` Optional chunk size. Activate streaming mode if positive\\n\\n@param `chunkNumber` The index of the current chunk (starting from 1). This field is only set for intermediate chunk responses\\n\\n@param `username` Optional username. It works with basic authentication scheme\\n\\n@param `password` Optional password. It works with basic authentication scheme\\n\\n@param `statusCode` The response status code\\n\\n@param `statusMessage` The response status message\\n\\n@param `responseHeaders` The response headers\\n\\n@param `content` The content of the response\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.8.1\",\"OPB64name\":\"HTTP\"},{\"name\":\"HULLSHAPE\",\"detail\":\"list<LIST>  HULLSHAPE  shape<LIST>\\n{ list<LIST>  } HULLSHAPE  shape<LIST>\",\"documentation\":\"Return the shape of a tensor (or multidimensional array) that would be able to contain all the values of an input nested list. The size of the returned shape is equal to the deepest level of nesting plus one. Its i-th value is equal to the size of the largest list that is nested i levels deep.\\n\\n@param `list` The input list.\\n\\n@param `shape` The hull shape of the input list.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"HULLSHAPE\"},{\"name\":\"HUMANDURATION\",\"detail\":\"duration<LONG>  HUMANDURATION  humanReadableDuration<STRING>\",\"documentation\":\"The `HUMANDURATION` function consumes a **LONG** duration and push back an easily readable **STRING** representation of this duration.\\n\\nThe format of the pushed back **STRING** is **[Dd][Hh][Mm]S.XXXXXXs** with D as days, H as hours, M as minutes, S as seconds and XXXXXX the number of ms (3 digits), us (6 digits) or ns (9 digits) depending on the platform configuration. If the duration is less than a day, Dd is omitted, sames goes with Hh and Mm.\\n\\n@param `duration` Duration expressed in the platform time unit.\\n\\n@param `humanReadableDuration`  A representation of the duration, easily readable for a human.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"HUMANDURATION\"},{\"name\":\"HYBRIDTEST\",\"detail\":\"gts<GTS> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE> parameters<MAP>  HYBRIDTEST  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG> parameters<MAP>  HYBRIDTEST  result<LIST<LONG>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE> parameters<MAP>  HYBRIDTEST  result<LIST<LIST<LONG>>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST  result<LIST<LIST<LONG>>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST  result<LIST<LIST<LONG>>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG> parameters<MAP>  HYBRIDTEST  result<LIST<LIST<LONG>>>\",\"documentation\":\"The `HYBRIDTEST` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\nLike [`STLESDTEST`](/doc/STLESDTEST), `HYBRIDTEST` performs an [`ESDTEST`](/doc/ESDTEST) onto a GTS that have been relieved of its seasonal and trend part. \\nBut unlike the mentioned test, [`STL`](/doc/STL) and [`ESDTEST`](/doc/ESDTEST) are performed piecewise. Plus, the trend is approximated with the piecewise \\nmedian instead of the trend part of the [`STL`](/doc/STL) decomposition.\\n\\nA LIST of ticks (or a LIST of LIST of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis technique was first developped at [Twitter](https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series).\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ## References\\n> - Owen Vallis, Jordan Hochenbaum, Arun Kejariwal. “A Novel Technique for Long-Term Anomaly Detection in the Cloud”, Twitter Inc (2014).\\n> - Cleveland, Robert B., et al. “STL: A seasonal-trend decomposition procedure based on loess.” Journal of Official Statistics 6.1 (1990): 3-73.\\n> - Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n\\n@param `parameters` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `lgts` List of [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST\"},{\"name\":\"HYBRIDTEST2\",\"detail\":\"gts<GTS> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST2  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST2  result<LIST<LONG>>\\ngtsList<LIST<GTS>> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST2  result<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST2  result<LIST<LIST<LONG>>>\",\"documentation\":\"The `HYBRIDTEST2` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\n`HYBRIDTEST2` is almost the same procedure than [`HYBRIDTEST`](/doc/HYBRIDTEST) except that it does not use [`STL`](/doc/STL) decomposition for the \\nseasonal extract.\\n\\nThe seasonal part is approximated by pondering each value with the [entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29) of the \\n[modified Z-score](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h.htm) of its seasonal subseries (series with only the values of the \\nsame season).\\n\\nThis test is usually preferred when it is meaningful to think in term of entropy, for example when the GTS represents counters of events. Also as it \\ndoes not use [`STL`](/doc/STL) decomposition, it is not prone to border effects, but at the cost of not detecting slight outliers.\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n@param `gtsList` List of GTS\\n\\n\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST2\"},{\"name\":\"HYPOT\",\"detail\":\"x<NUMBER> y<NUMBER>  HYPOT  result<DOUBLE>\\nx<NUMBER> ly<LIST<NUMBER>>  HYPOT  lresult<LIST<DOUBLE>>\\nlx<LIST<NUMBER>> y<NUMBER>  HYPOT  lresult<LIST<DOUBLE>>\\nx<NUMBER> gtsy<GTS>  HYPOT  gtsresult<GTS>\\ngtsx<GTS> y<NUMBER>  HYPOT  gtsresult<GTS>\",\"documentation\":\"HYPOT function returns the radius r from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta), r = sqrt(x²+y²).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `result` radius r in polar coordinates\\n\\n@param `lresult` List of radiuses r in polar coordinates\\n\\n@param `gtsresult` Numerical GTS of radiuses r in polar coordinates\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYPOT\"},{\"name\":\"IDENT\",\"detail\":\" IDENT  ident<STRING>\",\"documentation\":\"The `IDENT` function pushes onto the stack the value of the system property `warp.ident`.\\n\\n@param `ident` The value of the `warp.ident` property.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDENT\"},{\"name\":\"IDWT\",\"detail\":\"gts<GTS> wavelet<STRING>  IDWT  result<GTS>\",\"documentation\":\"The `IDWT` function computes an Inverse [Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Discrete_wavelet_transform) on a Geo Time Series™.\\n\\nThe names of the available Wavelet are the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\n\\n@param `wavelet` Wavelet to consider\\n\\n@param `gts` Geo Time Series™ which contains the wavelet coefficients as is returned by [`FDWT`](/doc/FDWT).\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDWT\"},{\"name\":\"IEEEREMAINDER\",\"detail\":\"dividend<NUMBER> divisor<NUMBER>  IEEEREMAINDER  result<LONG>\\ndividend<NUMBER> ldivisor<LIST<NUMBER>>  IEEEREMAINDER  lresult<LIST<LONG>>\\nldividend<LIST<NUMBER>> divisor<NUMBER>  IEEEREMAINDER  lresult<LIST<LONG>>\\ndividend<NUMBER> gtsdivisor<GTS>  IEEEREMAINDER  gtsresult<GTS>\\ngtsdividend<GTS> divisor<NUMBER>  IEEEREMAINDER  gtsresult<GTS>\",\"documentation\":\"The `IEEEREMAINDER` function consumes two parameters, a dividend f1 and a divisor f2. This function push the remainder onto the stack as\\nprescribed by the [IEEE 754 standard](https://en.wikipedia.org/wiki/IEEE_754-1985).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` Dividend, converted as DOUBLE if not already the case.\\n\\n@param `divisor` Divisor, converted as DOUBLE if not already the case.\\n\\n@param `result` Remainder\\n\\n@param `ldividend` List of dividends, converted as DOUBLE if not already the case.\\n\\n@param `ldivisor` List of divisors, converted as DOUBLE if not already the case.\\n\\n@param `lresult` List of remainders\\n\\n@param `gtsdividend` Numerical GTS of dividends, converted as DOUBLE if not already the case.\\n\\n@param `gtsdivisor` Numerical GTS of divisors, converted as DOUBLE if not already the case.\\n\\n@param `gtsresult` GTS of remainders\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"IEEEREMAINDER\"},{\"name\":\"IFFT\",\"detail\":\"real<GTS> im<GTS>  IFFT  result<GTS>\",\"documentation\":\"The `IFFT` function computes an Inverse [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) of two Geo Time Series™ \\nrepresenting real and imaginary parts of FFT coefficients.\\n\\nThe result is the reconstructed Geo Time Series™. The ticks of this reconstructed GTS are the coefficient indices. They must be multipled by the original \\nbucketspan to space the ticks according to the decomposed Geo Time Series™. The bucketspan is equal to `X / (n * factor)` where `X` is the number of time \\nunits in a second, `n` is the number of coefficients and `factor` is the scale factor returned by `FFT`.\\n\\n@param `im` GTS containing the imaginary part\\n\\n@param `real` GTS containing the real parts of the `FFT` coefficients\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFFT\"},{\"name\":\"IFT\",\"detail\":\"if<MACRO> then<MACRO>  IFT  result<ANY*>\\ncheck<BOOLEAN> then<MACRO>  IFT  result<ANY*>\",\"documentation\":\"The `IFT` function is a conditional construct which will run a macro only if a boolean condition is true. The condition can either be a boolean on the stack or the result of a macro run.\\n\\n@param `check` Boolean which will be checked as the conditional test.\\n\\n@param `if` Macro which will be executed to determine the conditional test. This macro must leave a boolean on the stack.\\n\\n@param `then` Macro which is executed if the conditional test is `true`.\\n\\n@param `result` State of the stack after the `then` macro is executed.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFT\"},{\"name\":\"IFTE\",\"detail\":\"if<MACRO> then<MACRO> else<MACRO>  IFTE  result<ANY*>\\ncondition<BOOLEAN> then<MACRO> else<MACRO>  IFTE  result<ANY*>\",\"documentation\":\"The `IFTE` function is a conditional construct which evaluates a condition and executes one of two macros depending on the condition (`true` or `false`). The condition can either be a BOOLEAN value on the stack or a macro which will be executed and must leave a BOOLEAN on the stack.\\n\\n@param `else` Macro executed if the condition is `false`.\\n\\n@param `then` Macro executed if the condition is `true`.\\n\\n@param `if` Macro executed to evaluate the condition. Must leave a BOOLEAN on top of the stack.\\n\\n@param `condition` Boolean value used as the condition.\\n\\n@param `result` Result of the execution of either the `then` or `else` macro.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFTE\"},{\"name\":\"IMMUTABLE\",\"detail\":\"list<LIST>  IMMUTABLE  immutableList<LIST>\\nmap<MAP>  IMMUTABLE  immutableMap<MAP>\\nset<SET>  IMMUTABLE  immutableSet<SET>\\nvector<VLIST>  IMMUTABLE  immutableVector<VLIST>\",\"documentation\":\"Transforms a collection (**LIST**, **MAP**, **VLIST**, **SET**) into an immutable one. Any attempt to modify the immutable collection will fail. The original collection is not modified.\\n\\n@param `list` List to wrap into an immutable wrapper.\\n\\n@param `map` Map to wrap into an immutable wrapper.\\n\\n@param `set` Set to wrap into an immutable wrapper.\\n\\n@param `vector` Vector to wrap into an immutable wrapper.\\n\\n@param `immutableList` Immutable version of 'list'.\\n\\n@param `immutableMap` Immutable version of 'map'.\\n\\n@param `immutableSet` Immutable version of 'set'.\\n\\n@param `immutableVector` Immutable version of 'vector'.\\n\\n\",\"tags\":[\"lists\",\"maps\",\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"IMMUTABLE\"},{\"name\":\"IMPORT\",\"detail\":\"prefix<STRING> as<STRING>  IMPORT \",\"documentation\":\"The `IMPORT` function allows to create aliases for macro name prefixes. This is handy when accessing macros from WarpFleet™ repositories which might have multiple versions and/or long group and artifact ids. When fetching a macro, the *imported* prefixes will be scanned and the longest matching one will be replaced by the associated alias.\\n\\n@param `prefix` Original prefix to *import*.\\n\\n@param `as` Name under which `prefix` will be imported.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"IMPORT\"},{\"name\":\"INCREMENTEXACT\",\"detail\":\"value<NUMBER>  INCREMENTEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  INCREMENTEXACT  lresult<LIST<LONG>>\\ngts<GTS>  INCREMENTEXACT  gtsresult<GTS>\",\"documentation\":\"The `INCREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value incremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be incremented by one\\n\\n@param `result` The incremented value\\n\\n@param `lvalue` List of values to be incremented by one\\n\\n@param `lresult` List of incremented values\\n\\n@param `gts` GTS whose values are to be incremented by one\\n\\n@param `gtsresult` GTS of incremented values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"INCREMENTEXACT\"},{\"name\":\"INDEXOF\",\"detail\":\"collection<LIST> objectToLookFor<ANY> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\\ncollection<MAP> objectToLookFor<ANY> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<ANY>>\\ncollection<BYTES> objectToLookFor<LONG> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\\ncollection<GTS> objectToLookFor<ANY> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\\ncollection<STRING> objectToLookFor<STRING> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\",\"documentation\":\"      This function allows you to find: \\n\\n- the indexes of an item in a list\\n- the indexes of an item in a byte array\\n- the indexes of a substring in a string\\n- the keys of an item in a map\\n- the timestamps of a value in a GTS\\n\\n@param `collection` The collection in wich to look for the object\\n\\n@param `objectToLookFor` The item to look for\\n\\n@param `numberOfIndexes` The number of indexes to return, 0 for all the indexes\\n\\n@param `indexes` The indexes of the searched item\\n\\n\",\"tags\":[\"lists\",\"maps\",\"strings\",\"gts\"],\"since\":\"2.10.1\",\"OPB64name\":\"INDEXOF\"},{\"name\":\"INFLATE\",\"detail\":\"compressed<BYTES>  INFLATE  uncompressed<BYTES>\",\"documentation\":\"Decompresses a byte array containing data compressed by [`DEFLATE`](doc/DEFLATE).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"INFLATE\"},{\"name\":\"INFO\",\"detail\":\"{ plugin<STRING> ext<STRING> name<STRING> since<STRING> deprecated<STRING> deleted<STRING> version<STRING> tags<LIST> desc<STRING> sig<LIST> params<MAP> related<LIST> examples<LIST> conf<LIST>  } INFO \",\"documentation\":\"Generate documentation of a function or a macro.\\n\\n@param `conf` String list of related configuration keys existing in the Warp 10 configuration.\\n\\n@param `examples` String list of WarpScript examples.\\n\\n@param `related` String list of related functions.\\n\\n@param `params` Map describing the parameters defined in `sig`.\\n\\n@param `sig` List of signatures. Each signature is a **LIST** with 2 lists (input and output) which contain parameter definitions: *eg* `param1:STRING` in stack order (top first)\\n\\n@param `desc` Description of the function or macro.\\n\\n@param `tags` String list tags (*eg* categories).\\n\\n@param `version` Version of the Warp 10 distribution on which this funcion is available (`standalone` | `distributed` | `all` | `pkg` | `ext` | `plugin`)\\n\\n@param `deleted` Version's number of Warp 10 where this function (or macro) was deleted.\\n\\n@param `deprecated` Version's number of Warp 10 where this function (or macro) was deprecated.\\n\\n@param `since` Version's number of Warp 10 where this function (or macro) was included.\\n\\n@param `name` Name of the function or macro.\\n\\n@param `ext` Fully qualified class name of the WarpScript Extension defining the function.\\n\\n@param `plugin` Fully qualified class name of the WarpScript Plugin defining the function.\\n\\n\",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFO\"},{\"name\":\"INFOMODE\",\"detail\":\" INFOMODE \",\"documentation\":\"Toggles the info mode ON or OFF depending on its current state. Default is OFF when the stack is created.\\n\\nWhen info mode is ON, the [`INFO`](/doc/INFO) function pushes its map parameter on the stack and stops the current execution as [`STOP`](/doc/STOP) would do.\\n\\n\",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFOMODE\"},{\"name\":\"INTEGRATE\",\"detail\":\"gts<GTS> initial<NUMBER>  INTEGRATE  result<GTS>\\nlgts<LIST<GTS>> initial<NUMBER>  INTEGRATE  lresult<LIST<GTS>>\",\"documentation\":\"The `INTEGRATE` function takes a GTS or a list thereof and integrates it/them, considering the value at each tick is a rate of change per second.\\n\\n@param `initial` Initial value\\n\\n@param `gts` GTS to integrate\\n\\n@param `lgts` List of GTS to integrate\\n\\n@param `result` Integrated GTS\\n\\n@param `lresult` List of integrated GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTEGRATE\"},{\"name\":\"INTERPOLATE\",\"detail\":\"gts<GTS>  INTERPOLATE  result<GTS>\\ngtsList<LIST<GTS>>  INTERPOLATE  resultList<LIST<GTS>>\",\"documentation\":\"The `INTERPOLATE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with by interpolating linearly. \\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled bucketized GTS\\n\\n@param `resultList` list of filled bucketized GTS\\n\\n\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERPOLATE\"},{\"name\":\"INTERSECTION\",\"detail\":\"setA<SET> setB<SET>  INTERSECTION  output<SET>\",\"documentation\":\"Computes the intersection &#x2229; of two sets.\\n\\nThe `INTERSECTION` function consumes two sets from the top of the stack and pushes back its mathematical intersection (ie: the elements in common).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x2229; *B*\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERSECTION\"},{\"name\":\"INV\",\"detail\":\"matrix<MATRIX>  INV  inverse<MATRIX>\",\"documentation\":\"Inverts a matrix. The inversion is attempted using the [LU Decomposition](https://en.wikipedia.org/wiki/LU_decomposition) algorithm.\\n\\nIf the matrix is singular or not square an error will be raised.\\n\\n@param `matrix` Matrix to invert.\\n\\n@param `inverse` Inverse of the original matrix.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"INV\"},{\"name\":\"ISAUTHENTICATED\",\"detail\":\" ISAUTHENTICATED  result<BOOLEAN>\",\"documentation\":\"Returns true or false whether or not the stack is authenticated\\n\\n@param `result` True if the stack is authenticated, false otherwise\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ISAUTHENTICATED\"},{\"name\":\"ISNULL\",\"detail\":\"p<ANY>  ISNULL  result<BOOLEAN>\",\"documentation\":\"The `ISNULL` function consumes a parameter p from the top of the stack and pushes onto the stack true if p is null, else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p is null\\n\\n\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNULL\"},{\"name\":\"ISNaN\",\"detail\":\"p<ANY>  ISNaN  result<BOOLEAN>\",\"documentation\":\"The `ISNaN` function consumes a numeric parameter p from the top of the stack and pushes onto the stack true if p is Not a Number (NaN), else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p a Double and is NaN, false  otherwise\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNaN\"},{\"name\":\"ISO8601\",\"detail\":\"timestamp<LONG>  ISO8601  iso8601dateAndTime<STRING>\\ntimestamp<LONG> timezone<STRING>  ISO8601  iso8601dateAndTime<STRING>\",\"documentation\":\"The `ISO8601` function consumes an optional **STRING** timezone and a **LONG** UTC timestamp and pushes back a **STRING** representing the date and time according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard.\\n\\nDepending on the platform time unit, the part representing seconds can have 3, 6 or 9 significant figures respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time representation.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `iso8601dateAndTime` Representation of the date and time of the given timestamp for the givent timezone according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISO8601\"},{\"name\":\"ISODURATION\",\"detail\":\"duration<LONG>  ISODURATION  iso8601duration<STRING>\",\"documentation\":\"The `ISODURATION` function consumes a **LONG** duration in platform unit and pushes back a **STRING** reresenting an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). Whatever the platform time unit is, the representation maximum resolution is milliseconds.\\n\\nThe format of the ISO 8601 representation is `PThHmMs.xS` with `h` as hours, `m` as minutes, `s` as seconds and `x` as milliseconds. If any of these value is zero, the value and unit are omitted. The only exception is for a duration of 0 which is represented as `PT0S`. If the duration is negative, `h`, `m` and `s`, if displayed, are negative numbers. \\n\\n@param `duration` A duration expressed in platform time unit.\\n\\n@param `iso8601duration` A representation of the consumed duration according to ISO 8601.\\n\\n\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISODURATION\"},{\"name\":\"ISONORMALIZE\",\"detail\":\"gts<GTS>  ISONORMALIZE  result<GTS>\\ngtsList<LIST<GTS>>  ISONORMALIZE  resultList<LIST<GTS>>\",\"documentation\":\"The `ISONORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between -1 and 1 (i.e. it replaces X by \\n(X - mean)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISONORMALIZE\"},{\"name\":\"JOIN\",\"detail\":\"string<STRING*> sep<STRING> n<LONG>  JOIN  result<STRING>\\nobjects<LIST> sep<STRING>  JOIN  result<STRING>\",\"documentation\":\"Join N strings with the given separator.\\n\\n@param `n` Number of elements to join that it needs to take from the top of the stack.\\n\\n@param `sep` Separator used to join the strings.\\n\\n@param `string` One or more string on the stack.\\n\\n@param `objects` List of objects whose string representations are to be joined.\\n\\n@param `result` Joined string.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"JOIN\"},{\"name\":\"JSON->\",\"detail\":\"json<STRING>  JSON->  resultMap<MAP>\\njson<STRING>  JSON->  resultList<LIST>\",\"documentation\":\"The `JSON->` function parses a string as [JSON](http://json.org/) from the top of the stack and pushes the result onto the stack.\\n\\n@param `json` String JSON representation\\n\\n@param `resultMap` Map JSON representation if it is a JSON object\\n\\n@param `resultList` List JSON representation if it is a JSON array\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H_CEIXoy\"},{\"name\":\"JSONCOMPACT\",\"detail\":\"\",\"documentation\":\"The `JSONCOMPACT` function configures the stack to output compact [JSON](http://json.org/) format. This means the generated JSON will contain no line return and no space which makes it perfect to exchange data between programs.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONCOMPACT\"},{\"name\":\"JSONLOOSE\",\"detail\":\"\",\"documentation\":\"The `JSONLOOSE` function configures the stack to output loose [JSON](http://json.org/) format where `NaN` and `Infinite` are valid values.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\nIf the [JSON](http://json.org/) parser you’re using is strict, you should either configure the [`JSONSTRICT`](/doc/JSONSTRICT) mode or dealing with `NaN` and `Infinite` values outside the parser.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONLOOSE\"},{\"name\":\"JSONPRETTY\",\"detail\":\"\",\"documentation\":\"The `JSONPRETTY` function configures the stack to output pretty [JSON](http://json.org/) format. This means the generated JSON will contain line returns and will be indented to make it easier for human to read.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONPRETTY\"},{\"name\":\"JSONSTACK\",\"detail\":\" JSONSTACK \",\"documentation\":\"Select the JSON format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"JSONSTACK\"},{\"name\":\"JSONSTRICT\",\"detail\":\"\",\"documentation\":\"The `JSONSTRICT` function configures the stack to output strict [JSON](http://json.org/) format.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONSTRICT\"},{\"name\":\"KECCAK.128\",\"detail\":\"input<BYTES>  KECCAK.128  result<BYTES>\",\"documentation\":\"The `KECCAK.128` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.128\"},{\"name\":\"KECCAK.224\",\"detail\":\"input<BYTES>  KECCAK.224  result<BYTES>\",\"documentation\":\"The `KECCAK.224` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.224\"},{\"name\":\"KECCAK.256\",\"detail\":\"input<BYTES>  KECCAK.256  result<BYTES>\",\"documentation\":\"The `KECCAK.256` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.256\"},{\"name\":\"KECCAK.288\",\"detail\":\"input<BYTES>  KECCAK.288  result<BYTES>\",\"documentation\":\"The `KECCAK.288` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.288\"},{\"name\":\"KECCAK.384\",\"detail\":\"input<BYTES>  KECCAK.384  result<BYTES>\",\"documentation\":\"The `KECCAK.384` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.384\"},{\"name\":\"KECCAK.512\",\"detail\":\"input<BYTES>  KECCAK.512  result<BYTES>\",\"documentation\":\"The `KECCAK.512` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.512\"},{\"name\":\"KEYLIST\",\"detail\":\"map<MAP>  KEYLIST  result<LIST>\",\"documentation\":\"Gets keys from a **MAP**.\\n\\nThe function `KEYLIST` extracts the keys of a map on the top of the stack and pushes on the stack a list with those keys. The map is consumed.      \\n\\n@param `map` Map from which you want to extract keys\\n\\n@param `result` List of keys\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"KEYLIST\"},{\"name\":\"KURTOSIS\",\"detail\":\"gts<GTS> bessel<BOOLEAN>  KURTOSIS  kurtosis<DOUBLE>\\nlgts<LIST<GTS>> bessel<BOOLEAN>  KURTOSIS  lkurtosis<LIST<DOUBLE>>\",\"documentation\":\"The `KURTOSIS` function computes the [kurtosis](https://en.wikipedia.org/wiki/Kurtosis) of a Geo Time Series™ or a list thereof.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the kurtosis.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `kurtosis` Computed kurtosis of the Geo Time Series™ instance.\\n\\n@param `lkurtosis` List of computed kurtosis of the Geo Time Series™ instances.\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.2.13\",\"OPB64name\":\"KURTOSIS\"},{\"name\":\"LABELS\",\"detail\":\"gts<GTS>  LABELS  return<MAP>\\nencoder<GTSENCODER>  LABELS  return<MAP>\",\"documentation\":\"The `LABELS` function consumes a GTS from the stack, extracts its labels, puts them in a map and pushes the map onto the stack.\\n\\n@param `gts` The Geo Time Series™ to get the labels from.\\n\\n@param `encoder` The Geo Time Series™ Encoder to get the labels from.\\n\\n@param `return` Labels MAP\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LABELS\"},{\"name\":\"LASTACTIVITY\",\"detail\":\"gts<GTS>  LASTACTIVITY  lastactivity<LONG>\\nencoder<GTSENCODER>  LASTACTIVITY  lastactivity<LONG>\\nlgts<LIST<GTS>>  LASTACTIVITY  llastactivity<LONG>\\nlencoder<LIST<GTSENCODER>>  LASTACTIVITY  llastactivity<LONG>\",\"documentation\":\"Extracts the timestamp of last activity recorded in the Geo Time Series™ metadata.\\n\\nThe timestamp is expressed as platform time units elapsed since the Unix Epoch.\\n\\n@param `gts` Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `encoder` Geo Time Series™ encoder from which to extract the last activity timestamp.\\n\\n@param `lgts` List of Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `lencoder` List of Geo Time Series™ encoders from which to extract the last activity timestamp.\\n\\n@param `lastactivity` Timestamp of last activity.\\n\\n@param `llastactivity` List of timestamps of last activity.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.0.0\",\"OPB64name\":\"LASTACTIVITY\"},{\"name\":\"LASTBUCKET\",\"detail\":\"gts<GTS>  LASTBUCKET  result<LONG>\",\"documentation\":\"The function `LASTBUCKET` consumes a GTS off the stack and pushes its lastbucket onto the stack.\\n\\nNote: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Last bucket timestamp\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTBUCKET\"},{\"name\":\"LASTSORT\",\"detail\":\"gtsList<LIST<GTS>>  LASTSORT  result<LIST<GTS>>\",\"documentation\":\"Sorts a list of Geo Time Series™ according to their most recent value. If most recent values are identical, ticks will be compared, the most recent\\nappearing first. If the ticks are also identical, then metadata will be compared, classname first then labels then attributes.\\n\\nWhen comparing on metadata, labels and attributes lists are first sort in a lexicographic order, then label values are compared when label names match. Same for the attributes\\n\\nUse this function to compute Top N queries.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Sorted list of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTSORT\"},{\"name\":\"LASTTICK\",\"detail\":\"gts<GTS>  LASTTICK  result<LONG>\\nlgts<LIST<GTS>>  LASTTICK  result<LONG>\",\"documentation\":\"The `LASTTICK` function returns the newest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its last bucket.\\n\\nWhen applied to a list of GTS, `LASTTICK` will return the greatest last tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MIN_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `result` Newest timestamp. If the GTS does not have values, **Long.MIN_VALUE** is pushed.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTTICK\"},{\"name\":\"LBOUNDS\",\"detail\":\"lower<DOUBLE> upper<DOUBLE> n<LONG>  LBOUNDS  bounds<LIST<DOUBLE>>\",\"documentation\":\"The `LBOUNDS` function computes bounds which divide a specified interval into `n` intervals of equal length.\\n\\nThe result of `LBOUNDS` is a list of `n+1` bounds, defining `n` intervals inside the specified range plus the two bounds of this range which define the intervals before and after the range.\\n\\n@param `n` Number of intervals to generate.\\n\\n@param `upper` Upper bound of the range to subdivide.\\n\\n@param `lower` Lower bound of the range to subdivide.\\n\\n@param `bounds` List of computed bounds.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LBOUNDS\"},{\"name\":\"LEVELDBCLOSE\",\"detail\":\"secret<STRING>  LEVELDBCLOSE \",\"documentation\":\"Closes the LevelDB database underlying the Warp 10™ instance. While the LevelDB database is closed, any interaction with the storage layer is blocked. This enables an external tool to manipulate the LevelDB files knowing they are in a coherent state.\\n\\nThe blocked interactions will resume after `LEVELDBOPEN` is called.\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBCLOSE\"},{\"name\":\"LEVELDBOPEN\",\"detail\":\"secret<STRING>  LEVELDBOPEN \",\"documentation\":\"Re-opens the LevelDB database underlying the Warp 10™ instance. It must have been closed using `LEVELDBCLOSE` prior to calling `LEVELDBOPEN`\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBOPEN\"},{\"name\":\"LEVELDBSECRET\",\"detail\":\"currentsecret<STRING> newsecret<STRING>  LEVELDBSECRET \",\"documentation\":\"Modifies the LevelDB secret needed to interact with the Warp 10™ LevelDB subsystem.\\n\\n@param `currentsecret` Current LevelDB secret.\\n\\n@param `newsecret` New LevelDB secret.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSECRET\"},{\"name\":\"LEVELDBSNAPSHOT\",\"detail\":\"snapshot<STRING> secret<STRING>  LEVELDBSNAPSHOT  nfiles<LONG>\",\"documentation\":\"Creates a LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files. Once those hard links are created, the LevelDB subsystem is reopen.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOT\"},{\"name\":\"LEVELDBSNAPSHOTINC\",\"detail\":\"snapshot<STRING> secret<STRING>  LEVELDBSNAPSHOTINC  nfiles<LONG>\",\"documentation\":\"Creates an incremental LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files which are only in the current LevelDB file set. Once those hard links are created, the LevelDB subsystem is reopen and the files which were both in the current LevelDB file set and the reference snapshot are linked from the reference snapshot. This allows for the snapshot process to only close the LevelDB subsystem during the linking of files which were created since the reference snapshot was created.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOTINC\"},{\"name\":\"LFILTER\",\"detail\":\"inputlist<LIST> macro<MACRO>  LFILTER  results<LIST>\\ninputlist<LIST> macro<MACRO> index<BOOLEAN>  LFILTER  results<LIST>\",\"documentation\":\"The `LFILTER` function filters the element of a **LIST** according to the result of a macro execution on each element of the **LIST**. It produces a **LIST** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of filered elements\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"2.9.0\",\"OPB64name\":\"LFILTER\"},{\"name\":\"LFLATMAP\",\"detail\":\"inputlist<LIST> macro<MACRO>  LFLATMAP  results<LIST>\\ninputlist<LIST> macro<MACRO> index<BOOLEAN>  LFLATMAP  results<LIST>\",\"documentation\":\"The `LFLATMAP` function applies a macro on each element of a list, producing a list \\nwith the element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the list index on top and the element \\nat that particular index below it. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\nDifference with `LMAP`: if the macro returns a list, then LFLATMAP will produce a \\nlist with the elements of the macro output list (_i.e._ it will _flatten_ the list). \\n\\nDifference with `LMAP FLATTEN`: flatten will do the list flattening recursively. \\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count -1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LFLATMAP\"},{\"name\":\"LIMIT\",\"detail\":\"maxDataPoints<LONG>  LIMIT \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and \\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `LIMIT` function modifies the maximum number of datapoints which can be fetched during a script execution by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call `AUTHENTICATE` with a valid token.\\n\\n@param `maxDataPoints` Maximal data points retrieved from database in a single FETCH\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"LIMIT\"},{\"name\":\"LINEOFF\",\"detail\":\"\",\"documentation\":\"The `LINEOFF` function disables the automatic labelling of WarpScript code as enabled by `LINEON`.      \\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEOFF\"},{\"name\":\"LINEON\",\"detail\":\"\",\"documentation\":\"The `LINEON` function enables the automatic section labelling at the beginning of each line of the input WarpScript code. This handy feature greatly simplifies the debug process as the exact line number where an error happens will appear in the error message embedded as a section name of the form `[Line #xx]`.\\n\\nThis automatic labelling only works with the `/exec` endpoint of Warp 10.\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEON\"},{\"name\":\"LIST->\",\"detail\":\"input<LIST>  LIST->  elements<ANY*> listlength<LONG>\",\"documentation\":\"The `LIST->` function extracts the elements of the **LIST** at the top of the stack\\nand pushes them onto the stack one by one. The function then pushes\\nonto the stack the number of elements that were in the **LIST**.\\n\\n@param `input` The input list, will be consumbed\\n\\n@param `listlength` The length N of input\\n\\n@param `elements` N elements pushed on the stack\\n\\n\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"I3_IK1oy\"},{\"name\":\"LMAP\",\"detail\":\"inputlist<LIST> macro<MACRO>  LMAP  results<LIST>\\ninputlist<LIST> macro<MACRO> index<BOOLEAN>  LMAP  results<LIST>\",\"documentation\":\"The `LMAP` function applies a macro on each element of a **LIST**. It produces a **LIST** with the resulting element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. \\n\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LMAP\"},{\"name\":\"LOAD\",\"detail\":\"name<STRING>  LOAD  value<ANY>\\nregister<LONG>  LOAD  value<ANY>\",\"documentation\":\"The `LOAD` function pushes onto the stack the value currently associated with a symbol name.      \\n\\nIf the symbol is not defined, an error will be raised.\\n\\n@param `name` Name of symbol whose value should be retrieved.\\n\\n@param `register` Register number whose value should be retrieved.\\n\\n@param `value` Retrieved value.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOAD\"},{\"name\":\"LOCATIONOFFSET\",\"detail\":\"gts<GTS> distance<NUMBER>  LOCATIONOFFSET  result<GTS>\\ngtsList<LIST<GTS>> distance<NUMBER>  LOCATIONOFFSET  resultList<LIST<GTS>>\",\"documentation\":\"The `LOCATIONOFFSET` function downsamples a Geo Time Series™ by retaining the first and last datapoints and only those datapoints which are \\nmore than a given distance away.\\n\\n@param `distance` Distance in meters\\n\\n@param `gts` Geo Time Series™ to downsample\\n\\n@param `gtsList` List of Geo Time Series™ to downsample\\n\\n@param `result` Downsampled Geo Time Series™\\n\\n@param `resultList` List of downsampled Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONOFFSET\"},{\"name\":\"LOCATIONS\",\"detail\":\"gts<GTS>  LOCATIONS  latitudes<LIST<DOUBLE>> longitudes<LIST<DOUBLE>>\",\"documentation\":\"The `LOCATIONS` function consumes a Geo Time Series™ from the stack, extracts the locations of a Geo Time Series™, puts them in two lists\\n(a list of latitudes and a list of longitudes) and pushes the two lists onto the stack.\\n\\n@param `gts` GTS\\n\\n@param `longitudes` List of longitudes\\n\\n@param `latitudes` List of latitudes\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONS\"},{\"name\":\"LOCSTRINGS\",\"detail\":\"gts<GTS>  LOCSTRINGS  result<LIST<STRING>>\",\"documentation\":\"The `LOCSTRINGS` function extract the locations from a Geo Time Series™ and builds a list of the 64 bits hexadecimal representation of their \\n[HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` List of [HHCode](https://en.wikipedia.org/wiki/HHCode)\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCSTRINGS\"},{\"name\":\"LOG\",\"detail\":\"value<NUMBER>  LOG  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  LOG  lresult<LIST<DOUBLE>>\\ngts<GTS>  LOG  gtsresult<GTS>\",\"documentation\":\"The `LOG` function consumes a floating point number x from the top of the stack and pushes back its natural logarithm, log<sub>e</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of the given GTS values\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG\"},{\"name\":\"LOG10\",\"detail\":\"value<NUMBER>  LOG10  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  LOG10  lresult<LIST<DOUBLE>>\\ngts<GTS>  LOG10  gtsresult<GTS>\",\"documentation\":\"The `LOG10` function consumes a floating point number x from the top of the stack and pushes back its common logarithm, log<sub>10</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Common logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of common logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the common logarithm of the given GTS values\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG10\"},{\"name\":\"LOG1P\",\"detail\":\"value<NUMBER>  LOG1P  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  LOG1P  lresult<LIST<DOUBLE>>\\ngts<GTS>  LOG1P  gtsresult<GTS>\",\"documentation\":\"Returns the natural logarithm of the sum of the argument and 1.\\n\\nThe `LOG1P` function consumes a number from the top of the stack and pushes back the natural logarithm for (arg + 1).\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of (value + 1)\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithm of (x + 1), for each value in the given list.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of (x + 1), for each values in the given GTS\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG1P\"},{\"name\":\"LOGEVENT->\",\"detail\":\"logline<STRING>  LOGEVENT->  decodedlog<STRING>\",\"documentation\":\"Warp&nbsp;10™ runner execution logs are encrypted. See [this documentation](/content/03_Documentation/06_Operations/05_Logs/).\\n\\nThe easiest way to read logs is to copy the log output and use this function.\\n\\n\\n@param `logline` The opb64 representation of the aes encrypted log line\\n\\n@param `decodedlog` The decoded logs.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"I3x6GKO4I_FhEV\"},{\"name\":\"LOGMSG\",\"detail\":\"msg<STRING>  LOGMSG \",\"documentation\":\"`LOGMSG` function prints millisecond timestamp and input text on the standard output.\\n\\nThe `LOGMSG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOGMSG\"},{\"name\":\"LOWESS\",\"detail\":\"gts<GTS> bandwidth<LONG>  LOWESS  result<GTS>\\ngtsList<LIST<GTS>> bandwidth<LONG>  LOWESS  lresult<LIST<GTS>>\",\"documentation\":\"The `LOWESS` function consumes a bandwidth (a **LONG**) from the top of the stack, then smooths a GTS or a **LIST** of GTS that are below by using\\nlocal regression.\\n\\nTo obtain a good smoothing, it is advised to choose an odd number of at least 5 as the bandwidth parameter.\\n\\n@param `bandwidth` The bandwidth parameter is the number of nearest neighbors to consider when applying the local regression.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `gtsList` List of Geo Time Series™.\\n\\n@param `lresult` List of Geo Time Series™ result.\\n\\n@param `result` Geo Time Series™ result.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOWESS\"},{\"name\":\"LR\",\"detail\":\"gts<GTS>  LR  alpha<DOUBLE> beta<DOUBLE>\",\"documentation\":\"Compute the [simple linear regression](https://en.wikipedia.org/wiki/Linear_regression) parameters `alpha` (y-intercept) and `beta` (line slope) for the given numerical Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ on which to compute linear regression.\\n\\n@param `beta` The slope of the line fitted on the GTS values.\\n\\n@param `alpha` The y-intercept of the lined fitted on the GTS values.\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.13\",\"OPB64name\":\"LR\"},{\"name\":\"LSORT\",\"detail\":\"inputlist<LIST>  LSORT  sortedlist<LIST>\",\"documentation\":\"The `LSORT` function sorts the list on the top of the stack.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `inputlist` The reference of the list to sort\\n\\n@param `sortedlist` The original list sorted, this is not a new list object\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LSORT\"},{\"name\":\"LTTB\",\"detail\":\"gts<GTS> samples<LONG>  LTTB  downsampled<GTS>\\nlgts<LIST<GTS>> samples<LONG>  LTTB  ldownsampled<LIST<GTS>>\",\"documentation\":\"The `LTTB` function downsamples a Geo Time Series™ or list thereof using the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"LTTB\"},{\"name\":\"MACRO->\",\"detail\":\"macro<MACRO>  MACRO->  statements<LIST>\",\"documentation\":\"The `MACRO->` function converts a `MACRO` into a `LIST` of statements.\\n\\n@param `macro` `MACRO` to convert.\\n\\n@param `statements` List of statements from `macro`.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"IJ42JZwhEV\"},{\"name\":\"MACROBUCKETIZER\",\"detail\":\"macro<MACRO>  MACROBUCKETIZER  result<AGGREGATOR>\",\"documentation\":\"`MACROBUCKETIZER` converts a macro into a bucketizer which can be used with the [`BUCKETIZE`](/doc/BUCKETIZE) framework.\\n\\nFor each tick in the mapped GTS, the macro will be called with a list containing the following elements on the stack:\\n\\n```js\\n[tick_of_computation,[gts_classes],[label_bucketize],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n@param `macro` Macro used as a bucketizer\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketize\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROBUCKETIZER\"},{\"name\":\"MACROCONFIG\",\"detail\":\"key<STRING>  MACROCONFIG \",\"documentation\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration keys looked up are those built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIG`.\\n\\n`MACROCONFIG` will check if the keys exists, if not it will remove the part of the macro name after the last `/` and will try that new key. It will successively try all names up to the last part of the macro name.\\n\\nIf none of those keys existed, the call will end in error.\\n\\nSo for example, if `MACROCONFIG` is called from a macro `my/test/macro` to retrieve the value associated with `mykey`, it will look up the following keys in the configuration:\\n\\n```\\nmykey@my/test/macro\\nmykey@my/test\\nmykey@my\\n```\\n\\n@param `key` Configuration key to look up.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIG\"},{\"name\":\"MACROCONFIGDEFAULT\",\"detail\":\"key<STRING> default<STRING>  MACROCONFIGDEFAULT \",\"documentation\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration key looked is built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIGDEFAULT`.\\n\\n`MACROCONFIGDEFAULT` will check if the keys exists, if not it will push the provided default value onto the stack, or fail with an error if the default was `NULL`. If the key is found, the associated value is pushed on the stack.\\n\\n@param `key` Configuration key to look up.\\n\\n@param `default` Default value to use if the key was not found, or `NULL` to fail if the key is absent.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGDEFAULT\"},{\"name\":\"MACROCONFIGSECRET\",\"detail\":\"oldSecret<STRING> newSecret<STRING>  MACROCONFIGSECRET \",\"documentation\":\"The `MACROCONFIGSECRET` macro consumes 2 elements on the stack, the current and new secret to be set. If no secret has been set, the function will throw an error.\\n\\nThe secret set by this function is the secret used by [`SETMACROCONFIG`](/doc/SETMACROCONFIG).\\n\\n@param `newSecret` New secret to override the current one.\\n\\n@param `oldSecret` Currently set secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGSECRET\"},{\"name\":\"MACROFILLER\",\"detail\":\"macro<MACRO> prewindow<LONG> postwindow<LONG>  MACROFILLER  filler<FILLER>\",\"documentation\":\"`MACROFILLER` converts a macro into a *filler* which can be used with the [`FILL`](/doc/FILL) function.\\n\\nThe macro will find the following elements on the stack when it is called:\\n\\n```\\n6: Geo Time Series™ to fill. Both this GTS and the one above are only meant to expose the metadata\\n5: Geo Time Series™ of the *other* GTS with a value at the current tick\\n4: list of [ tick latitude longitude elevation value ] for the pre window\\n3: [ tick latitude longitude elevation value ] of the *other* Geo Time Series™\\n2: list of [ tick latitude longitude elevation value ] for the post window\\nTOP: tick which is being filled\\n```\\n\\nIt must leave on the stack a list containing the following elements, in this order:\\n\\n*tick*, *latitude* or `NaN`, *longitude* or `NaN`, *elevation* or `NaN`, *value*\\n\\n\\n@param `macro` Macro to wrap.\\n\\n@param `prewindow` Number of datapoints needed ahead of the missing datapoint.\\n\\n@param `postwindow` Number of datapoints needed after the missing datapoint.\\n\\n@param `filler` Filler instance.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"MACROFILLER\"},{\"name\":\"MACROFILTER\",\"detail\":\"macro<MACRO>  MACROFILTER  result<FILTER>\",\"documentation\":\"`MACROFILTER` converts a macro into a filter which can be used with the [`FILTER`](/doc/FILTER) framework\\n\\nFor each equivalence classes in the filter set of Geo Time Series™, the macro will be called with the following elements on the stack:\\n\\n```\\n[gts], {labels_equivalence_class}\\n```\\n\\nAfter each call the macro is expected to leave a list on the stack.\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROFILTER\"},{\"name\":\"MACROMAPPER\",\"detail\":\"macro<MACRO>  MACROMAPPER  result<AGGREGATOR>\",\"documentation\":\"`MACROMAPPER` converts a macro into a mapper which can be used with the [`MAP`](/doc/MAP) framework.\\n\\nFor each tick in the mapped Geo Time Series™, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROMAPPER` can also create a multivariate mapper, that is, a mapper that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate mapper with MAP, each input GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n\\n@param `macro` Macro to convert\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROMAPPER\"},{\"name\":\"MACROREDUCER\",\"detail\":\"macro<MACRO>  MACROREDUCER  result<AGGREGATOR>\",\"documentation\":\"`MACROREDUCER` converts a macro into a reducer which can be used with the [`REDUCE`](/doc/REDUCE) framework\\n\\nFor each tick in the Geo Time Series™ to reduce, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nEach list have a length of the number of GTSs in the partition. Each missing value are replaced by `null`, each missing tick by the minimum value of long and each missing latitude, longitude or elevation by NaN. The `label_maps` list as one more element at the end compared to the other lists: the common labels for the GTSs of the partition.\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROREDUCER` can also create a multivariate reducer, that is, a reducer that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate reducer with REDUCE, each input List of GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROREDUCER\"},{\"name\":\"MACROTTL\",\"detail\":\"ttl<LONG>  MACROTTL \",\"documentation\":\"In a file defining a server side macro, the `MACROTTL` function defines the time to live of the macro code. If the macro is accessed after this delay has expired and on-demand loading of macros is enabled, it will unconditionally be reloaded from disk.\\n\\nThis feature is very useful when you have macros generated dynamically on the server side which change frequently. Using `MACROTTL` you can ensure the newest code is loaded regardless of the rescan interval of the macro directory.\\n\\nIn a file defining a server side macro, the call to `MACROTTL` should appear before or after the actual macro definition but not within.\\n\\nThe time after which the macro will no longer be valid is the time of the call to `MACROTTL` plus its parameter.\\n\\n@param `ttl` The time to live to apply to the macro, in ms.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MACROTTL\"},{\"name\":\"MAKEGTS\",\"detail\":\"timestamps<LIST> latitudes<LIST> longitudes<LIST> elevations<LIST> values<LIST>  MAKEGTS  result<GTS>\",\"documentation\":\"The `MAKEGTS` function builds a Geo Time Series™ from **LIST**s.\\n\\nThe timestamp and values lists must be of the exact same size.\\nHowever, as latitudes, longitudes and elevations are optional in a Geo Time Series™, these lists can be shorter than the timestamps lists or even empty. If there are missing latitudes, longitudes and elevations, use [`NaN`](/doc/NaN).\\n\\n@param `values` Values of the GTS\\n\\n@param `elevations` Elevations of the GTS\\n\\n@param `longitudes` Longitudes of the GTS\\n\\n@param `latitudes` Latitudes of the GTS\\n\\n@param `timestamps` Timestamps of the GTS\\n\\n@param `result` Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAKEGTS\"},{\"name\":\"MAN\",\"detail\":\"function<STRING>  MAN  url<STRING>\\nany<ANY>  MAN  url<STRING>\\n MAN  url<STRING>\",\"documentation\":\"The `MAN` function returns the help link for a function name.\\n\\nIf the function does not exists, it returns http://www.warp10.io/\\n\\n\\n@param `function` The function name\\n\\n@param `any` Anything except a function name\\n\\n@param `url` URL of the online help\\n\\n\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.2.18\",\"OPB64name\":\"MAN\"},{\"name\":\"MAP\",\"detail\":\"[ gtsList<LIST<GTS>> mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> ]  MAP  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>> mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> step<LONG> ]  MAP  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>> mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> step<LONG> overrideTick<BOOLEAN> ]  MAP  result<LIST<GTS>>\\ngtsList<LIST<GTS>> { mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> step<LONG> overrideTick<BOOLEAN> outputTicks<LIST<LONG>>  } MAP  result<LIST<GTS>>\",\"documentation\":\"The `MAP` framework applies a function on values of a Geo Time Series™ that fall into a sliding window.\\n\\nThe `MAP` framework is designed to use an existing MAPPER or a custom MACROMAPPER. It could also accept a macro: the current window is passed as a GTS to the macro. See examples below.\\n\\n@param `result` List of Geo Time Series™, one for each input, whose values are the results of the function application on each sliding window. If the input series is bucketized, the result series will be too unless outputTicks is non null.\\n\\n@param `gtsList` A list of Geo Time Series™, or a single Geo Time Series™\\n\\n@param `mapper` Mapper function to apply\\n\\n@param `pre` Width of the sliding window before the current tick. This parameter is interpreted as a number of ticks if its value is positive, and as a number of time units if its value is negative. A value of 0 means the sliding window does not cover the past. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the past. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `post` Width of the sliding window after the current tick. Values have the same semantics as for the `pre` parameter. A value of 0 means the sliding window does not cover the future. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the future. Defaults to 0.\\n\\n@param `occurrences` Limit the number of computations to that number. If the value is 0, compute a value for each tick of the input Geo Time Series™. If it is positive, compute that many values starting from the oldest to the most recent tick. In the other case, do that many computations in the reverse order. This is useful when you are interested in a single result, like the max or sum of all values. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `step` The step size in number of ticks. The mapper beggins at the oldest tick and goes to the tick `step` after the current one and so on. Defaults to 1.\\n\\n@param `overrideTick` If set to true, the tick value returned by the mapper is used to update the current tick, else it is ignored and the original tick is kept. Defaults to false.\\n\\n@param `outputTicks` If non null, it sets the list of ticks that is traversed to anchor the sliding windows (instead of the ticks of the input Geo Time Series™). In that case, a tick of the input Geo Time Series™ that would be equal to one of these anchor points is counted by a positive `post` if `occurences` is non-negative, or by a positive `pre` if `occurences` is negative.\\n\\n\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAP\"},{\"name\":\"MAP->\",\"detail\":\"map<MAP>  MAP->  key<ANY*> value<ANY*> mapsize<LONG>\",\"documentation\":\"The `MAP->` function expands the **MAP** on top of the stack into pairs of elements followed by the number of elements extracted. If the **MAP** was \\ncreated by a call to `->MAP`, the order of the elements will be the same as prior to calling `->MAP`.\\n\\n@param `map` Map to expand\\n\\n@param `key` Key of the pair\\n\\n@param `value` Value of the pair\\n\\n@param `mapsize` The number of key value pushed on the stack.\\n\\n\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"IJ4FAIs\"},{\"name\":\"MAPID\",\"detail\":\"input<MAP>  MAPID  result<STRING>\",\"documentation\":\"Generates a fingerprint of a map.\\n\\n@param `input` Input map\\n\\n@param `result` Fingerprint of the map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAPID\"},{\"name\":\"MARK\",\"detail\":\" MARK  mark<MARK>\",\"documentation\":\"Pushes a mark onto the stack.\\n\\n@param `mark` A MARK instance.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MARK\"},{\"name\":\"MAT->\",\"detail\":\"input<MATRIX>  MAT->  [  result<LIST<LIST<DOUBLE>>>  ]\",\"documentation\":\"The `MAT->` function converts a Matrix into nested lists.\\n\\n\\n@param `input` Matrix to convert\\n\\n@param `result` Nested list of values\\n\\n\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"IJ4JAIs\"},{\"name\":\"MATCH\",\"detail\":\"string<STRING> regexp<STRING>  MATCH  result<LIST<STRING>>\\nstring<STRING> regexp<MATCHER>  MATCH  result<LIST<STRING>>\",\"documentation\":\"The `MATCH` function applies a regular expression (regexp) to a string.\\n\\nIt consumes two parameters from the top of the stack: the regexp pattern and the string to test matching with.\\n\\nIf the string doesn’t match the regexp, the function return an empty list. If it matches, the function will return a list of every matching group.\\n\\nInstead of using a regular expression **STRING**, you can also use the result of [`MATCHER`](/doc/MATCHER) for improved performance.\\n\\n@param `regexp` Regular expression to apply\\n\\n@param `string` String to evaluate\\n\\n@param `result` List of every matching group.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCH\"},{\"name\":\"MATCHER\",\"detail\":\"regexp<STRING>  MATCHER  result<MATCHER>\",\"documentation\":\"The `MATCHER` function will compile a regular expression into an efficient object which can be used by [`MATCH`](/doc/MATCH).\\n\\n@param `regexp` Regular expression to compile\\n\\n@param `result` Compiled regula expression\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCHER\"},{\"name\":\"MAX\",\"detail\":\"p1<NUMBER> p2<NUMBER>  MAX  result<NUMBER>\\np1<COUNTER> p2<COUNTER>  MAX  result<LONG>\\np1<COUNTER> p2<NUMBER>  MAX  result<NUMBER>\\np1<NUMBER> p2<COUNTER>  MAX  result<NUMBER>\\nnlist<LIST<NUMBER>>  MAX  sresult<NUMBER>\\nclist<LIST<COUNTER>>  MAX  sresult<LONG>\\nnlist<LIST<NUMBER>> value<NUMBER>  MAX  nresult<LIST<NUMBER>>\\nclist<LIST<COUNTER>> value<COUNTER>  MAX  nresult<LIST<LONG>>\\nclist<LIST<COUNTER>> value<NUMBER>  MAX  nresult<LIST<NUMBER>>\\ngts<GTS>  MAX  gresult<NUMBER>\\ngts<GTS> value<NUMBER>  MAX  gtsresult<GTS>\",\"documentation\":\"Returns the greater of two numeric values.\\n\\nThe `MAX` function consumes two numeric parameters from the top of the stack and pushes back the greatest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The larger of p1 and p2.\\n\\n@param `sresult` The larger of the elements in the given list.\\n\\n@param `gresult` The larger of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the max between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the max between the element in the GTS and the given value.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAX\"},{\"name\":\"MAXBUCKETS\",\"detail\":\"limit<LONG>  MAXBUCKETS \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXBUCKETS` function modifies the maximum number of buckets which can be created by a call to [`BUCKETIZE`](/doc/BUCKETIZE) by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXBUCKETS\"},{\"name\":\"MAXDEPTH\",\"detail\":\"limit<LONG>  MAXDEPTH \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXDEPTH` function modifies the maximum depth (number of levels) of the execution stack by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXDEPTH\"},{\"name\":\"MAXGEOCELLS\",\"detail\":\"maxcells<LONG>  MAXGEOCELLS \",\"documentation\":\"Modifies the maximum number of cells a **GEOSHAPE** created by [`GEO.WKT`](/doc/GEO.WKT) or [`GEO.JSON`](/doc/GEO.JSON) can have. The limit can be modified up to the configured value for `warpscript.maxgeocells.hard`.\\n\\n@param `maxcells` New limit to set.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.11\",\"OPB64name\":\"MAXGEOCELLS\"},{\"name\":\"MAXGTS\",\"detail\":\"limit<LONG>  MAXGTS \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard limit \\nwhich can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXGTS` function modifies the maximum number of Geo Time Series™ which can be fetched by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXGTS\"},{\"name\":\"MAXJSON\",\"detail\":\"limit<LONG>  MAXJSON \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to\\nthe hard limit value.\\n\\nThe `MAXJSON` function modifies the maximum number of characters in a json produced by [`->JSON`](/doc/AIt9JoxD).\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"MAXJSON\"},{\"name\":\"MAXLONG\",\"detail\":\" MAXLONG  result<LONG>\",\"documentation\":\"Pushes [Long.MAX_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MAX_VALUE) onto the stack.\\n\\n@param `result` Long.MAX_LONG\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLONG\"},{\"name\":\"MAXLOOP\",\"detail\":\"limit<LONG>  MAXLOOP \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard\\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe MAXLOOP function modifies the maximum number of milliseconds which can be spent in a loop setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLOOP\"},{\"name\":\"MAXOPS\",\"detail\":\"limit<LONG>  MAXOPS \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXOPS` function modifies the maximum number of operations which can be performed during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXOPS\"},{\"name\":\"MAXPIXELS\",\"detail\":\"pixels<LONG>  MAXPIXELS \",\"documentation\":\"Modifies the maximum size (in pixels) of images which can be created by [`PGraphics`](/doc/PGraphics). The limit can be modified up to the value configured in `warpscript.maxpixels.hard`.\\n\\n@param `pixels` Maximum size (in pixels).\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXPIXELS\"},{\"name\":\"MAXRECURSION\",\"detail\":\"depth<LONG>  MAXRECURSION \",\"documentation\":\"Modifies the maximum nesting depth of macro calls. The limit can be modified up to the value configured in `warpscript.maxrecursion.hard`.\\n\\n@param `depth` Maximum nesting depth.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MAXRECURSION\"},{\"name\":\"MAXSYMBOLS\",\"detail\":\"limit<LONG>  MAXSYMBOLS \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a \\nhard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXSYMBOLS` function modifies the maximum number of simultaneous symbols which can be defined on the stack during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXSYMBOLS\"},{\"name\":\"MAXURLFETCHCOUNT\",\"detail\":\"limit<LONG>  MAXURLFETCHCOUNT \",\"documentation\":\"The `MAXURLFETCHCOUNT` function modifies the maximum number of URLs which can be fetched with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.MAXURLFETCHCOUNT.limit.hard`.\\n\\n@param `limit` The maximum number of URLs which can be fetched.\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHCOUNT\"},{\"name\":\"MAXURLFETCHSIZE\",\"detail\":\"limit<LONG>  MAXURLFETCHSIZE \",\"documentation\":\"The `MAXURLFETCHSIZE` function modifies the maximum cumulative size of fetched payloads with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.urlfetch.maxsize.hard` and is expressed as a number of bytes.\\n\\n@param `limit` The maximum cumulative size of fetched payloads.\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHSIZE\"},{\"name\":\"MCHECKSIG\",\"detail\":\"macro<MACRO>  MCHECKSIG  macro<MACRO> checked<BOOLEAN>\",\"documentation\":\"The `MCHECKSIG` function checks if a macro signature is valid. If the macro does not contain a signature, the function returns `false` just as if the macro was signed but the signature was not valid. You can use [`MSIGCOUNT`](/doc/MSIGCOUNT) first to determine if the macro contains a signature or not.\\n\\n@param `macro` Macro whose signature must be checked.\\n\\n@param `checked` Boolean indicating if the signature could be validated.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MCHECKSIG\"},{\"name\":\"MD2\",\"detail\":\"input<BYTES>  MD2  result<BYTES>\",\"documentation\":\"The `MD2` function digests a byte array on the stack with the cryptographic hash function [`MD2`](https://en.wikipedia.org/wiki/MD2_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD2\"},{\"name\":\"MD4\",\"detail\":\"input<BYTES>  MD4  result<BYTES>\",\"documentation\":\"The `MD4` function digests a byte array on the stack with the cryptographic hash function [`MD4`](https://en.wikipedia.org/wiki/MD4).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD4\"},{\"name\":\"MD5\",\"detail\":\"input<BYTES>  MD5  result<BYTES>\",\"documentation\":\"The `MD5` function digests a byte array on the stack with the cryptographic hash function [`MD5`](https://en.wikipedia.org/wiki/MD5).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"MD5\"},{\"name\":\"MDETACH\",\"detail\":\"macro<MACRO>  MDETACH  macro<MACRO> sig<MACRO>\",\"documentation\":\"The `MDETACH` function detaches a signature macro from a signed macro. The original macro is shrunk, it is not a shorter copy, you can use `+` right after the call to `MDETACH` to recreate the original macro.\\n\\nIf the input macro does not contain a signature, the result of applying `MDETACH` will be an empty macro and the original macro will not be modified.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MDETACH\"},{\"name\":\"MERGE\",\"detail\":\"gtsList<LIST<GTS>>  MERGE  result<GTS>\",\"documentation\":\"Merge several Geo Time Series™ together.\\n\\nThe `MERGE` function expects a **LIST** of Geo Time Series™ on the top of the stack. It will consume these GTS and push onto the stack a single GTS instance\\nwith all measurements found in the GTS instances present in the **LIST**. The name and labels of the resulting GTS instance are those of the first one of the\\n**LIST**.\\n\\n`MERGE` do not override values on the same timestamp, they are appenned.\\n\\n@param `gtsList` The list of Geo Time Series™\\n\\n@param `result` The merged Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MERGE\"},{\"name\":\"META\",\"detail\":\"gtsList<LIST<GTS>> writeToken<STRING>  META \",\"documentation\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `META` is applied must have a non empty name and attributes (possibly empty).\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"META\"},{\"name\":\"METADIFF\",\"detail\":\"gtsList<LIST<GTS>> writeToken<STRING>  METADIFF \",\"documentation\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend in an incremental manner. New attributes are added and already existing attributes are updated or removed if their value is an empty string.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `METADIFF` is applied must have a non empty name and attributes (possibly empty).\\n\\nTo be able to use `METADIFF`, you must configure *ingress.attributes.allowdelta = true*. \\n\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"METADIFF\"},{\"name\":\"METAMATCH\",\"detail\":\"gts<GTS> selector<STRING>  METAMATCH  match<BOOLEAN>\\nencoder<ENCODER> selector<STRING>  METAMATCH  match<BOOLEAN>\\ngtsList<LIST<GTS>> selector<STRING>  METAMATCH  matchList<LIST<BOOLEAN>>\\nencoderList<LIST<ENCODER>> selector<STRING>  METAMATCH  matchList<LIST<BOOLEAN>>\",\"documentation\":\"`METAMATCH` expose the [`filter.byselector`](/doc/filter.byselector) internals. It returns true if the input GTS metadata matches the given selector. Input can also be an encoder, or a list of GTS or encoders.\\n\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n\\n@param `gts` Geo Time Series™ instance to test\\n\\n@param `encoder` Encoder to test\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `match` Returns true when gts matches the selector\\n\\n@param `gtsList` List of Geo Time Series™ instances to test\\n\\n@param `encoderList` List of Geo Time Series™ instances to test\\n\\n@param `matchList` Returns true when gts or encoder of the input list matches the selector. matchList size is the same as input size, and order is preserved.\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.11\",\"OPB64name\":\"METAMATCH\"},{\"name\":\"METAOFF\",\"detail\":\"message<STRING> secret<STRING>  METAOFF \",\"documentation\":\"Disables meta operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a meta operation is attempted.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAOFF\"},{\"name\":\"METAON\",\"detail\":\"secret<STRING>  METAON \",\"documentation\":\"Enables meta operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAON\"},{\"name\":\"METASET\",\"detail\":\"[ token<STRING> class<STRING> labels<MAP> notbefore<LONG> notafter<LONG> maxduration<LONG> ttl<LONG> ]  METASET  metaset<STRING>\",\"documentation\":\"Performs a [`FIND`](/doc/FIND), retrieving a list of Geo Time Series™ and builds a *metaset* which can be distributed to allow access to those GTS without having to give away credentials.\\n\\nMetaset support is only available if a key has been set for `warp.aes.metasets`.\\n\\n@param `ttl` Time to live of the produces metaset. It will not be usable after that much time has elapsed since the current time. The ttl is specified in time units.\\n\\n@param `maxduration` The maximum span of data which can be retrieved using this metaset, in time units.\\n\\n@param `notafter` Most recent timestamp of the data this metaset can retrieve.\\n\\n@param `notbefore` Most ancient timestamp of the data this meataset can retrieve.\\n\\n@param `labels` Map of label selectors.\\n\\n@param `class` Geo Time Series™ class selector.\\n\\n@param `token` Read token to use for retrieving the GTS.\\n\\n@param `metaset` Encrypted metaset which can be used with a [`FETCH`](/doc/FETCH).\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"METASET\"},{\"name\":\"METASORT\",\"detail\":\"gts<LIST<GTS>> elements<LIST<STRING>>  METASORT  sorted<LIST<GTS>>\\ngts<LIST<GTS>> elements<LIST<STRING>> considerAttributes<BOOLEAN>  METASORT  sorted<LIST<GTS>>\",\"documentation\":\"Sorts a list of Geo Time Series™ according to elements of their metadata. The list of elements to consider for sorting can contain label/attribute names or NULL to consider the classname. Elements will be considered in the order in which they appear in the list.\\nIf two GTSs match the same criteria, the order considered is the one given in the list of Geo Time Series™.\\n\\nIf the list of elements is empty, the sort will apply on class name then on label and last on attributes.\\n\\nWhen sorting on a label/attribute, if 2 GTS match the same criterion, the one with the smallest number of labels is the first.\\nWhen sorting on a label/attribute, the GTS who does not have the label will be considered first.\\n\\n@param `gts` List of Geo Time Series™ to sort.\\n\\n@param `elements` Metadata elements to consider for sorting.\\n\\n@param `considerAttributes` Set to true to consider attributes as labels\\n\\n@param `sorted` Sorted list of GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"METASORT\"},{\"name\":\"MFILTER\",\"detail\":\"inputmap<MAP> macro<MACRO>  MFILTER  results<MAP>\\ninputmap<MAP> macro<MACRO> index<BOOLEAN>  MFILTER  results<MAP>\",\"documentation\":\"The `MFILTER` function filters the element of a **MAP** according to the result of a macro execution on each key/value pair of the **MAP**. It produces a **MAP** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of filtered key/value pairs\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"2.9.0\",\"OPB64name\":\"MFILTER\"},{\"name\":\"MIN\",\"detail\":\"p1<NUMBER> p2<NUMBER>  MIN  result<NUMBER>\\np1<COUNTER> p2<COUNTER>  MIN  result<LONG>\\np1<COUNTER> p2<NUMBER>  MIN  result<NUMBER>\\np1<NUMBER> p2<COUNTER>  MIN  result<NUMBER>\\nnlist<LIST<NUMBER>>  MIN  sresult<NUMBER>\\nclist<LIST<COUNTER>>  MIN  sresult<LONG>\\nnlist<LIST<NUMBER>> value<NUMBER>  MIN  nresult<LIST<NUMBER>>\\nclist<LIST<COUNTER>> value<COUNTER>  MIN  nresult<LIST<LONG>>\\nclist<LIST<COUNTER>> value<NUMBER>  MIN  nresult<LIST<NUMBER>>\\ngts<GTS>  MIN  gresult<NUMBER>\\ngts<GTS> value<NUMBER>  MIN  gtsresult<GTS>\",\"documentation\":\"Returns the smaller of two numeric values.\\n\\nThe `MIN` function consumes two numeric parameters from the top of the stack and pushes back the smallest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The smaller of p1 and p2.\\n\\n@param `sresult` The smaller of the elements in the given list.\\n\\n@param `gresult` The smaller of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the min between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the min between the element in the GTS and the given value.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MIN\"},{\"name\":\"MINLONG\",\"detail\":\" MINLONG  result<LONG>\",\"documentation\":\"Pushes [Long.MIN_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MIN_VALUE) onto the stack.\\n\\n@param `result` Long.MIN_VALUE\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MINLONG\"},{\"name\":\"MINREV\",\"detail\":\"revision<STRING>  MINREV  newer<BOOLEAN>\",\"documentation\":\"The `MINREV` function consumes a string representing a revision on the stack and puts back a boolean indicating if the revision of the current Warp 10™ platform is newer or equal.\\n\\n@param `revision` A string representing a revision (semantic versioning). Given a version number MAJOR.MINOR.PATCH, .MINOR or .MINOR.PATCH can be omitted.\\n\\n@param `newer` A boolean indicating wether the revision of the current Warp 10™ platform is newer or equal to the given revision.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.23\",\"OPB64name\":\"MINREV\"},{\"name\":\"MMAP\",\"detail\":\"inputmap<MAP> macro<MACRO>  MMAP  results<MAP>\\ninputmap<MAP> macro<MACRO> index<BOOLEAN>  MMAP  results<MAP>\",\"documentation\":\"The `MMAP` function applies a macro on each key/value pair of a **MAP**, producing a **MAP** with the two elements on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it.\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"MMAP\"},{\"name\":\"MODE\",\"detail\":\"gts<GTS>  MODE  result<LIST>\\ngtsList<LIST<GTS>>  MODE  result<LIST<LIST>>\",\"documentation\":\"The `MODE` function computes the mode(s) for a given Geo Time Series™ or a GTS **LIST**. Foreach Geo Time Series™ pushes back on the stack a list containing\\ntheir mode(s).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Mode of the list (the items that occurs most often)\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"MODE\"},{\"name\":\"MONOTONIC\",\"detail\":\"gts<GTS> trend<BOOLEAN>  MONOTONIC  result<GTS>\\ngtsList<LIST<GTS>> trend<BOOLEAN>  MONOTONIC  resultList<LIST<GTS>>\",\"documentation\":\"Produces a new Geo Time Series™ from an input by modifying the value so the result is monotonous. This is technically applying a ratchet effect on values.\\n\\nThe `MONOTONIC` function expects a boolean on top of the stack and a Geo Time Series™ or list thereof below the boolean. The boolean indicates whether the\\nresult should be monotonically increasing (false) or decreasing (true).\\n\\n@param `trend` Whether the result should be monotonically increasing (false) or decreasing (true)\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` New Geo Time Series™\\n\\n@param `resultList` List of new Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MONOTONIC\"},{\"name\":\"MOTIONSPLIT\",\"detail\":\"gts<GTS> parameters<MAP>  MOTIONSPLIT  splits<LIST<GTS>>\\nlgts<LIST<GTS>> parameters<MAP>  MOTIONSPLIT  lsplits<LIST<LIST<GTS>>>\",\"documentation\":\"The `MOTIONSPLIT` function splits Geo Time Series™ instances based on several possible motion criteria. Split parameters can be combined to split on multiple criteria.\\n\\n`MOTIONSPLIT` can split on:\\n- stopped state detection\\n- moving to stopped transition\\n- time difference between two ticks (just as [`TIMESPLIT`](/doc/TIMESPLIT) does).\\n- maximal distance between two consecutive positions.\\n\\n`MOTIONSPLIT` parameters:\\n- **timesplit**: LONG value, time in platform time unit. Splits if the time difference between two consecutive ticks is strictly greater than this parameter. If defined, the split type label will be \\\"timesplit\\\".\\n- **distance.split**: DOUBLE value, distance in meter. Splits if the orthodromic distance between two consecutive locations is strictly greater than this parameter. If defined, the split type label will be \\\"distancesplit\\\".\\n- **stopped.min.time**: LONG value, time in platform time unit. This is the minimum time the consecutive locations should stay in the stopped zone radius to consider a stop state. If defined, the split type label will be \\\"stopped\\\".\\n- **stopped.max.radius**: DOUBLE value, distance in meter. As long as consecutive positions remains in the radius during stopped.min.time, `MOTIONSPLIT` detect a stopped state.\\n- **stopped.max.speed**: DOUBLE value, speed in m/s. If the speed is greater than this value while in stopped state, `MOTIONSPLIT` exits the stopped state.\\n- **stopped.max.mean.speed**: DOUBLE value, speed in m/s. Maximum mean speed in the proximity zone that prevent the split. `MOTIONSPLIT` will split only if there is a full stop during the given time and radius, and if the mean speed in the proximity zone is less than this parameter.\\n- **stopped.split**: BOOLEAN value. If true, `MOTIONSPLIT` also splits between stopped and moving sequences. If defined, the split type label will be \\\"stopped\\\" or \\\"moving\\\".\\n- **label.stopped.time**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the time in stopped state. If the split source is not a stop detection, this label won't be set.\\n- **label.split.number**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the split number, starting from 1.\\n- **label.split.type**: STRING value. If defined, `MOTIONSPLIT` will add an extra label that contains the split reason. It could be \\\"timesplit\\\", \\\"distancesplit\\\", \\\"end\\\", \\\"stopped\\\" or \\\"moving\\\".\\n\\n`MOTIONSPLIT` split type priorities:\\n- If stopped.min.time and stopped.max.radius are set, the stop detection has the first priority.\\n- If `MOTIONSPLIT` does not detect a stopped state, it looks for a distance split.\\n- If `MOTIONSPLIT` does not detect a stopped state or a distance split, it looks for a time split.\\n\\n\\n@param `parameters` List of splitting parameters. See the function description.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"MOTIONSPLIT\"},{\"name\":\"MRSEC\",\"detail\":\"macro<MACRO>  MRSEC  secured<MACRO>\",\"documentation\":\"The `MRSEC` function modifies a `MACRO` and any macro it contains, setting its *secure* flag to `true`. It is a recursive version of [`MSEC`](/doc/MSEC).\\n\\n@param `macro` `MACRO` to recursively flag as secure.\\n\\n@param `secured` The original `MACRO` now recursively marked as secure.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MRSEC\"},{\"name\":\"MSEC\",\"detail\":\"macro<MACRO>  MSEC  secured<MACRO>\",\"documentation\":\"The `MSEC` function modifies a `MACRO`, setting its *secure* flag to `true`. Some functions behave differently in the presence of secure macros, namely:\\n\\n* `SNAPSHOT` of a secure macro does not produce the actual code of the macro but a comment indicating the macro is secure.\\n* `ASREGS` and `DEREF` cannot operate on secure macros.\\n\\nMaking a macro secure is handy when returning a macro as the result of another macro call. The returned macro cannot be altered or inspected by the calling code thus providing a level of security and enabling the return of a singleton macro.\\n\\n@param `macro` `MACRO` to flag as secure.\\n\\n@param `secured` The original `MACRO` now marked as secure.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MSEC\"},{\"name\":\"MSGFAIL\",\"detail\":\"message<STRING>  MSGFAIL \",\"documentation\":\"The `MSGFAIL` function stops the execution of WarpScript code by throwing an exception. \\n\\n@param `message` The exception message\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSGFAIL\"},{\"name\":\"MSIG\",\"detail\":\"macro<MACRO>  MSIG  macro<MACRO> sig<MACRO>\",\"documentation\":\"The `MSIG` function extracts a signature macro from a signed macro. The function can also be used with 3 `STRING` parameters in which case is simply consumes those parameters and emits nothing. This latter case is meant for signature macros so such macros are valid macros which do nothing. See [`MSIGN`](/doc/MSIGN) for the format of the signature macros.\\n\\nIf the input macro does not contain a signature, the result of applying `MSIG` will be an empty macro.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIG\"},{\"name\":\"MSIGCOUNT\",\"detail\":\"macro<MACRO>  MSIGCOUNT  count<LONG>\",\"documentation\":\"The `MSIGCOUNT` function counts the number of signatures present in a macro. Note that it does not verify the said signatures.\\n\\n@param `macro` Macro from which to extract the signature count.\\n\\n@param `count` Number of signatures present in the macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGCOUNT\"},{\"name\":\"MSIGINFO\",\"detail\":\"macro<MACRO>  MSIGINFO  macro<MACRO> infos<MAP>\",\"documentation\":\"The `MSIGINFO` function extracts elements from a signed or signature macro. If a signature was found it outputs a map with the following keys, otherwise it outputs an empty map.\\n\\n| Key   | Description|\\n|-------|------------|\\n| `key` | ECC public key to use for signature verification. |\\n| `sig` | Byte array containing the signature. |\\n\\n@param `macro` Macro from which to extract the signature infos.\\n\\n@param `infos` Map containing the extracted informations.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGINFO\"},{\"name\":\"MSIGN\",\"detail\":\"macro<MACRO> privatekey<KEY>  MSIGN  macro<MACRO> sig<MACRO>\",\"documentation\":\"The `MSIGN` function creates a cryptographic signature of a macro. The cryptographic signature is itself a macro with the following structure:\\n\\n```\\n<%\\n  'CURVE'\\n  'PUBKEY'\\n  'SIG'\\n  MSIG\\n%>\\n```\\n\\nwhere `CURVE` is the name of the [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) to use, `PUBKEY` is the hex encoded public key (`Q` parameter) which can be used to verify the signature and `SIG` is the hex encoded `SHA256WITHECSDA` signature of the `UTF-8` content of the snapshot of the macro.\\n\\nThe resulting signature macro can be concatenated at the end of the original unsigned macro to create a *signed* macro. The signature macro can then be extracted using [`MSIG`](/doc/MSIG) or [`MDETACH`](/doc/MDETACH).\\n\\n@param `privatekey` ECC private key to use for signing `macro`.\\n\\n@param `macro` Macro to sign.\\n\\n@param `sig` Signature macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGN\"},{\"name\":\"MSORT\",\"detail\":\"map<MAP>  MSORT  result<MAP>\",\"documentation\":\"The function `MSORT` inspects the top of the stack. If it is a **MAP**, it sorts the **MAP** according to its keys. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\n@param `map` Map to sort\\n\\n@param `result` Sorted map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSORT\"},{\"name\":\"MSTU\",\"detail\":\" MSTU  numberTimeUnits<LONG>\",\"documentation\":\"The `MSTU` function pushes onto the stack the number of platform time units in one millisecond. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one millisecond.\\n\\n\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSTU\"},{\"name\":\"MULTIPLYEXACT\",\"detail\":\"x<NUMBER> y<NUMBER>  MULTIPLYEXACT  prod<LONG>\\nlist<LIST<NUMBER>>  MULTIPLYEXACT  sprod<LONG>\\nlx<LIST<NUMBER>> y<NUMBER>  MULTIPLYEXACT  lprod<LIST<LONG>>\\ngts<GTS>  MULTIPLYEXACT  gprod<LONG>\\ngtsx<GTS> y<NUMBER>  MULTIPLYEXACT  gtsprod<GTS>\",\"documentation\":\"The `MULTIPLYEXACT` function consumes two LONGs from the top of the stack and puts back the product. If the product overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `prod` The product of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sprod` The product of all the elements of list\\n\\n@param `gprod` The product of all the elements of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lprod` List of **LONG** where each value is the product of y and an element in lx\\n\\n@param `gtsprod` GTS of **LONG** values where each value is the product of y and an element in lx\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"MULTIPLYEXACT\"},{\"name\":\"MUSIGMA\",\"detail\":\"gts<GTS> bessel<BOOLEAN>  MUSIGMA  mu<DOUBLE> sigma<DOUBLE>\",\"documentation\":\"The `MUSIGMA` function calculates the mean and the standard deviation of a Geo Time Series. It consumes two parameters from the top of the stack: a boolean \\n(to choose if [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction) should be applied on the standard deviation) and a numeric GTS, and \\nit pushes onto the stack its mean (mu) and its standard deviation (sigma).\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `sigma` Standard deviation\\n\\n@param `mu` Mean\\n\\n@param `gts` A single Geo Time Series\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MUSIGMA\"},{\"name\":\"MUTEX\",\"detail\":\"macro<MACRO> mutex<STRING>  MUTEX \",\"documentation\":\"Attempts to hold a named lock, creating it if needed, and execute a macro while holding the lock. When the macro execution terminates, either normally or with an error, the lock is released.\\n\\n@param `mutex` Name of lock to hold.\\n\\n@param `macro` Macro to execute while holding the lock.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"MUTEX\"},{\"name\":\"MVELEVATIONS\",\"detail\":\"input<GTSENCODER>  MVELEVATIONS  output<LIST>\\ninput<GTS>  MVELEVATIONS  output<LIST>\\nlinput<LIST>  MVELEVATIONS  output<LIST>\",\"documentation\":\"The `MVELEVATIONS` function extracts elevations from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVELEVATIONS` function will emit a list with two elements (a pair), the first element will be the elevation associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the elevations of the Multivariate value itself.\\n\\nIf a tick has no associated elevation, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted elevations.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVELEVATIONS\"},{\"name\":\"MVERIFY\",\"detail\":\"macro<MACRO>  MVERIFY  macro<MACRO>\",\"documentation\":\"The `MVERIFY` function checks if a macro signature is valid and throws an exception if it is not or if the macro was not signed.\\n\\n@param `macro` Macro whose signature must be verified.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MVERIFY\"},{\"name\":\"MVHHCODES\",\"detail\":\"input<GTSENCODER>  MVHHCODES  output<LIST>\\ninput<GTS>  MVHHCODES  output<LIST>\\nlinput<LIST>  MVHHCODES  output<LIST>\",\"documentation\":\"The `MVHHCODES` function extracts [`HHCodes`](https://en.wikipedia.org/wiki/HHCode) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVHHCODES` function will emit a list with two elements (a pair), the first element will be the HHCode associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the HHCodes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted HHCodes.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVHHCODES\"},{\"name\":\"MVINDEXSPLIT\",\"detail\":\"input<GTSENCODER>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> indices<LIST>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> indices<LIST> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> indices<LIST>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> indices<LIST> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTSENCODER>> indices<LIST>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTSENCODER>> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTSENCODER>> indices<LIST> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>> indices<LIST>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>> indices<LIST> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\",\"documentation\":\"The `MVINDEXSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVINDEXSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element index (first element being at index 0).\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:INDEX` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of indices or indices ranges can be specified to only produce encoders for the indices which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `indices` List of indices or indices ranges (list of two indices), used to restrict which indices to consider.\\n\\n@param `renaming` Map of index (LONG) to parameter to `RENAME`. If no entry is present for an index, `+:INDEX` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVINDEXSPLIT\"},{\"name\":\"MVLOCATIONS\",\"detail\":\"input<GTSENCODER>  MVLOCATIONS  output<LIST>\\ninput<GTS>  MVLOCATIONS  output<LIST>\\nlinput<LIST>  MVLOCATIONS  output<LIST>\",\"documentation\":\"The `MVLOCATIONS` function extracts location (latitude, longitude) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVLOCATIONS` function will emit a list with two elements (a pair), the first element will be the latitude and longitude (a list) associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the latitudes and longitudes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `[ NaN NaN ]` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted locations.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVLOCATIONS\"},{\"name\":\"MVTICKS\",\"detail\":\"input<GTSENCODER>  MVTICKS  output<LIST>\\ninput<GTS>  MVTICKS  output<LIST>\\nlinput<LIST>  MVTICKS  output<LIST>\",\"documentation\":\"The `MVTICKS` function extracts ticks from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVTICKS` function will emit a list with two elements (a pair), the first element will be the tick at which the Multivariate value was encountered, the second element will be a list containing the ticks of the Multivariate value itself.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted ticks.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKS\"},{\"name\":\"MVTICKSPLIT\",\"detail\":\"input<GTSENCODER>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> timestamps<LIST>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> timestamps<LIST>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>> timestamps<LIST>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>> timestamps<LIST>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\",\"documentation\":\"The `MVTICKSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVTICKSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element timestamp.\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:TIMESTAMP` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of timestamps or timestamp ranges can be specified to only produce encoders for the timestamps which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `timestamps` List of timestamps or timestamps ranges (list of two timestamps), used to restrict which timestamps to consider.\\n\\n@param `renaming` Map of timestamp (LONG) to parameter to `RENAME`. If no entry is present for a timestamp, `+:TIMESTAMP` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKSPLIT\"},{\"name\":\"MVVALUES\",\"detail\":\"input<GTSENCODER>  MVVALUES  output<LIST>\\ninput<GTS>  MVVALUES  output<LIST>\\nlinput<LIST>  MVVALUES  output<LIST>\",\"documentation\":\"The `MVVALUES` function extracts values from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted values.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVVALUES\"},{\"name\":\"NAME\",\"detail\":\"gts<GTS>  NAME  result<STRING>\\nencoder<GTSENCODER>  NAME  result<STRING>\",\"documentation\":\"The `NAME` function consumes a Geo Time Series™ from the stack, extracts its class name, and pushes it onto the stack.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `encoder` Geo Time Series™ Encoder\\n\\n@param `result` Class name\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NAME\"},{\"name\":\"NBOUNDS\",\"detail\":\"mu<NUMBER> sigma<NUMBER> n<LONG>  NBOUNDS  bounds<LIST<DOUBLE>>\",\"documentation\":\"The `NBOUNDS` function computes bounds defining a specified number of intervals which have the same area under the curve of a normal distribution with a given mean and standard deviation.\\n\\n@param `n` Number of desired intervals.\\n\\n@param `sigma` Positive standard deviation to use for the normal distribution.\\n\\n@param `mu` Mean to use for the normal distribution.\\n\\n@param `bounds` List of `n`-1 bounds defining the `n` intervals.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NBOUNDS\"},{\"name\":\"NDEBUGON\",\"detail\":\"n<NUMBER>  NDEBUGON \",\"documentation\":\"Turns on stack debugging so up to the given number of stack levels will be returned in case of error. Stack debugging is off by default.\\n\\n@param `n` Maximum number of stack levels to return in case of error.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NDEBUGON\"},{\"name\":\"NEGATEEXACT\",\"detail\":\"value<NUMBER>  NEGATEEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  NEGATEEXACT  lresult<LIST<LONG>>\\ngts<GTS>  NEGATEEXACT  gtsresult<GTS>\",\"documentation\":\"The `NEGATEEXACT` function consumes one NUMBER from the top of the stack and puts back the negated value. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be negated\\n\\n@param `result` The negated value\\n\\n@param `lvalue` List of values to be negated\\n\\n@param `lresult` List of negated values\\n\\n@param `gts` GTS containing values to be negated\\n\\n@param `gtsresult` GTS containing negated values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEGATEEXACT\"},{\"name\":\"NEWENCODER\",\"detail\":\" NEWENCODER  encoder<GTSENCODER>\",\"documentation\":\"The `NEWENCODER` function creates an empty encoder and pushes it onto the stack. An encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` A newly created empty encoder instance.\\n\\n\",\"tags\":[\"encoder\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"NEWENCODER\"},{\"name\":\"NEWGTS\",\"detail\":\" NEWGTS  gts<GTS>\",\"documentation\":\"The `NEWGTS` function pushes onto the stack an empty Geo Time Series™ instance.\\n\\n@param `gts` A newly created empty GTS instance.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEWGTS\"},{\"name\":\"NEXTAFTER\",\"detail\":\"from<NUMBER> to<NUMBER>  NEXTAFTER  result<DOUBLE>\\nfrom<NUMBER> lto<LIST<NUMBER>>  NEXTAFTER  lresult<LIST<DOUBLE>>\\nlfrom<LIST<NUMBER>> to<NUMBER>  NEXTAFTER  lresult<LIST<DOUBLE>>\\nfrom<NUMBER> gtsto<GTS>  NEXTAFTER  gtsresult<GTS>\\ngtsfrom<GTS> to<NUMBER>  NEXTAFTER  gtsresult<GTS>\",\"documentation\":\"The `NEXTAFTER` function consumes two numeric parameter from the top of the stack and pushes back the **DOUBLE** adjacent to the first argument in the direction of the second argument. In other words, the result is between *from* and *to* and adjacent to *from*.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `from` Starting value\\n\\n@param `to` Direction used to calculate the adjacent value\\n\\n@param `result` Next **DOUBLE** from *from* to *to*\\n\\n@param `lfrom` List of starting values\\n\\n@param `lto` List of directions used to calculate the adjacent value\\n\\n@param `lresult` List of next **DOUBLE** from *from* to *to*\\n\\n@param `gtsfrom` Numerical GTS of starting values\\n\\n@param `gtsto` Numerical GTS of directions used to calculate the adjacent value\\n\\n@param `gtsresult` Numerical GTS of next **DOUBLE** from *from* to *to*\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTAFTER\"},{\"name\":\"NEXTDOWN\",\"detail\":\"value<NUMBER>  NEXTDOWN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  NEXTDOWN  lresult<LIST<DOUBLE>>\\ngts<GTS>  NEXTDOWN  gtsresult<GTS>\",\"documentation\":\"The `NEXTDOWN` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of negative infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of negative infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of negative infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of negative infinity of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEXTDOWN\"},{\"name\":\"NEXTUP\",\"detail\":\"value<NUMBER>  NEXTUP  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  NEXTUP  lresult<LIST<DOUBLE>>\\ngts<GTS>  NEXTUP  gtsresult<GTS>\",\"documentation\":\"The `NEXTUP` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of positive infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of positive infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of positive infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of positive infinity of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTUP\"},{\"name\":\"NOLOG\",\"detail\":\" NOLOG \",\"documentation\":\"The `NOLOG` function resets java.util.logging.LogManager.\\n\\nIt can be useful to do this during developments and tests of an extension.\\n\\nThe `NOLOG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.2.19\",\"OPB64name\":\"NOLOG\"},{\"name\":\"NONEMPTY\",\"detail\":\"gtsList<LIST<GTS>>  NONEMPTY  results<LIST<GTS>>\",\"documentation\":\"Filter a list of Geo Time Series™ in order to retain only those that have at least one value.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `results` Filtered list of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NONEMPTY\"},{\"name\":\"NONNULL\",\"detail\":\"list<LIST>  NONNULL  nonnulls<LIST>\",\"documentation\":\"The `NONNULL` function consumes a list and produces a list containing only the non NULL elements of the argument list.\\n\\n@param `list` The argument list to filter\\n\\n@param `nonnulls` A new list with only those elements from `list` which are not NULL\\n\\n\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.2.7\",\"OPB64name\":\"NONNULL\"},{\"name\":\"NOOP\",\"detail\":\"\",\"documentation\":\"It does nothing.\\n\\nWhile it does not have a usefulness of its own, it can be used when generating code from within WarpScript code prior to executing it with [`EVAL`](/doc/EVAL).\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOOP\"},{\"name\":\"NORMALIZE\",\"detail\":\"gts<GTS>  NORMALIZE  result<GTS>\\ngtsList<LIST<GTS>>  NORMALIZE  resultList<LIST<GTS>>\",\"documentation\":\"The `NORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between 0 and 1 (i.e. it replaces X by \\n(X - min)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NORMALIZE\"},{\"name\":\"NOT\",\"detail\":\"input<BOOLEAN>  NOT  result<BOOLEAN>\\ngts<GTS>  NOT  negatedgts<GTS>\",\"documentation\":\"Negates a boolean.\\n\\nThe `NOT` function is synonymous for [`!`](/doc/7F). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gts` A boolean Geo Time Series™\\n\\n@param `negatedgts` A boolean Geo Time Series™\\n\\n\",\"tags\":[\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOT\"},{\"name\":\"NOTAFTER\",\"detail\":\"timestamp<LONG>  NOTAFTER \\ndate<STRING>  NOTAFTER \",\"documentation\":\"Checks that the current time is not after the provided timestamp.\\n\\nThe `NOTAFTER` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not after the provided timestamp.\\nIf it is not after the WarpScript execution continues, otherwise it throws an exception.\\n\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTAFTER\"},{\"name\":\"NOTBEFORE\",\"detail\":\"timestamp<LONG>  NOTBEFORE \\ndate<STRING>  NOTBEFORE \",\"documentation\":\"Checks that the current time is not before the provided timestamp.\\n\\nThe `NOTBEFORE` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not before the provided timestamp.\\nIf it is not before the WarpScript execution continues, otherwise it throws an exception.\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTBEFORE\"},{\"name\":\"NOTIMINGS\",\"detail\":\"\",\"documentation\":\"Use of the `NOTIMINGS` function disables the collection of timing information for each line of the input script. Use [`TIMINGS`](/doc/TIMINGS) to enable it again.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTIMINGS\"},{\"name\":\"NOW\",\"detail\":\" NOW  timestamp<LONG>\",\"documentation\":\"The `NOW` function pushes onto the stack the current **LONG** timestamp expressed in the platform time unit. This timestamp is the number of platform time unit elapsed since 00:00:00 on 1 January 1970 UTC minus the number of leap seconds, see [Unix time](https://en.wikipedia.org/wiki/Unix_time).\\n\\nThis function is mostly linear with time but this property is violated when the OS resynchronises its clock (ie consecutive calls to `NOW` may 'jump' or 'go backward').\\n\\n@param `timestamp` The current timestamp in platform time unit.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOW\"},{\"name\":\"NPDF\",\"detail\":\"mu<NUMBER> sigma<NUMBER>  NPDF  npdf<FUNCTION>\",\"documentation\":\"The `NPDF` function builds a function which outputs the probability of occurrence of a given value under a specified normal distribution.\\n\\nThe normal distribution is defined by its mean and standard deviation. The result of the `NPDF` function is itself a function which can be invoked via [`EVAL`](doc/EVAL).\\n\\n*NPDF* stands for Normal (Gaussian) distribution Probability Density Function.\\n\\n@param `sigma` Standard deviation of the normal distribution to consider.\\n\\n@param `mu` Mean of the normal distribution to consider.\\n\\n@param `npdf` Function which given an input number outputs the probability of its occurence under the given normal distribution.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NPDF\"},{\"name\":\"NPEEK\",\"detail\":\"levels<NUMBER>  NPEEK \",\"documentation\":\"Displays a given number of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of stack levels to display.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"NPEEK\"},{\"name\":\"NRETURN\",\"detail\":\"levelnumber<LONG>  NRETURN \",\"documentation\":\"Immediately exit a certain number of macros being executed. The `NRETURN` function expects a number of levels on top of the stack.\\n\\n@param `levelnumber` Number of levels of macro to exit.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"NRETURN\"},{\"name\":\"NSUMSUMSQ\",\"detail\":\"gts<GTS>  NSUMSUMSQ  cardinality<LONG> sum<DOUBLE> square<DOUBLE>\",\"documentation\":\"Computes the cardinality, sum of values and sum of squared values of a Geo Time Series™. Pushes those results on the stack in the order they were mentioned.\\n\\nOnly numeric series are allowed.\\n\\n@param `square` Sum of squared values\\n\\n@param `sum` Sum of values\\n\\n@param `cardinality` Values count\\n\\n@param `gts` Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NSUMSUMSQ\"},{\"name\":\"NULL\",\"detail\":\" NULL  result<NULL>\",\"documentation\":\"The `NULL` function pushes the symbolic value *null* onto the stack.\\n\\n@param `result` Symbolic value *null*\\n\\n\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NULL\"},{\"name\":\"NaN\",\"detail\":\" NaN  result<DOUBLE>\",\"documentation\":\"Pushes the double value *NaN* (Not a Number) onto the stack.\\n\\n@param `result` Value *NaN*\\n\\n\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NaN\"},{\"name\":\"ONLYBUCKETS\",\"detail\":\"gts<GTS>  ONLYBUCKETS  result<GTS>\\nlgts<LIST<GTS>>  ONLYBUCKETS  lresult<LIST<GTS>>\",\"documentation\":\"Only retains ticks from Geo Time Series™ with timestamps which are bucket ends. If an input GTS is not bucketized, a clone of the GTS will be returned.\\n\\nThe `ONLYBUCKETS` function does not remove duplicate ticks, please consider using [`DEDUP`](/doc/DEDUP) for that purpose.\\n\\n@param `gts` Single instance of Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `result` Transformed GTS.\\n\\n@param `lresult` List of transformed GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ONLYBUCKETS\"},{\"name\":\"OPB64->\",\"detail\":\"input<STRING>  OPB64->  output<BYTES>\",\"documentation\":\"Decode a String in order preserving base64 into a byte array.\\n\\nBytes array cannot be represented on the stack.\\n\\n@param `input` Any valid opbbase64 string.\\n\\n@param `output` Byte array of the input decoded input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.7\",\"OPB64name\":\"Ip01CYFhEV\"},{\"name\":\"OPB64TOHEX\",\"detail\":\"input<STRING>  OPB64TOHEX  output<STRING>\",\"documentation\":\"The OPB64TOHEX function decodes the order preserving base64 string on top of the stack and immediately re-encode it in hex string.\\n\\n\\n@param `input` OPBase64 encoded string\\n\\n@param `output` hexadecimal representation\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.2\",\"OPB64name\":\"OPB64TOHEX\"},{\"name\":\"OPS\",\"detail\":\" OPS  ops<LONG>\",\"documentation\":\"Pushes onto the stack the current number of operations which were performed by the WarpScript code execution.\\n\\n@param `ops` number of operations\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPS\"},{\"name\":\"OPTDTW\",\"detail\":\"data<LIST> query<LIST> match<NUMBER>  OPTDTW  result<LIST>\\ndata<LIST> query<LIST> window<NUMBER> match<NUMBER>  OPTDTW  result<LIST>\",\"documentation\":\"The `OPTDTW` function finds the top subsequence matches in a sequence for a given query sequence. The function uses [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping)\\nto assess the subsequence similarity with the query.\\n\\n@param `match` Number of top matches. Use 0 as the number of matches to return to return them all.\\n\\n@param `query` Query numerical sequence, thr shortest\\n\\n@param `data` Data sequence in which to find matches\\n\\n@param `result` List of matches, each match being a pair of (index, distance).\\n\\n@param `window` Maximum index difference.\\n\\n\",\"tags\":[\"math\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPTDTW\"},{\"name\":\"OPTIMIZE\",\"detail\":\"gts<GTS> ratio<NUMBER>  OPTIMIZE  gts<GTS>\\nencoder<GTSENCODER> ratio<NUMBER>  OPTIMIZE  optencoder<GTSENCODER>\\nlgts<LIST<GTS>> ratio<NUMBER>  OPTIMIZE  lgts<LIST<GTS>>\\nlencoder<LIST<GTSENCODER>> ratio<NUMBER>  OPTIMIZE  loptencoder<LIST<GTSENCODER>>\",\"documentation\":\"Optimizes the memory footprint of Geo Time Series™ and GTS Encoder instances.\\n\\n@param `ratio` Ratio of memory footprint to number of values, if this ratio is not exceeded, no optimization will take place. As a result, optimization is always done when ratio <= 1 or ratio is NaN.\\n\\n@param `gts` Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `encoder` Instance of GTS Encoder to optimize.\\n\\n@param `optencoder` Optimized version of the encoder, or the original instance if no optimization occurred.\\n\\n@param `lgts` List of Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `lencoder` List of instances of GTS Encoder to optimize.\\n\\n@param `loptencoder` List of optimized version of the encoders or the original instances if no optimization occurred.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"OPTIMIZE\"},{\"name\":\"OR\",\"detail\":\"p1<BOOLEAN> p2<BOOLEAN>  OR  result<BOOLEAN>\\nl<LIST>  OR  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  OR  gtsresult<GTS>\",\"documentation\":\"The `OR` operator is a synonymous for [`||`](/doc/U6k).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `OR` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"OR\"},{\"name\":\"PACK\",\"detail\":\"input<LIST> format<STRING>  PACK  result<BYTES>\",\"documentation\":\"The `PACK` function packs a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n@param `input` List to pack\\n\\n@param `format` Format used to pack\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"PACK\"},{\"name\":\"PAPPLY\",\"detail\":\"[ op<OPERATOR> labels<LIST> gts<LIST<GTS>+> ]  PAPPLY  result<MAP>\",\"documentation\":\"The `PAPPLY` function performs operations in a way identical to the [`APPLY`](/doc/APPLY) framework but produces a map of results keyed by the label map of each equivalence class.\\n\\nAs [`APPLY`](/doc/APPLY), `PAPPLY` provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can due. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` Map of resulting GTS, one per equivalence class, keyed with the equivalence class labels.\\n\\n@param `op` Operation to perform.\\n\\n\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"PAPPLY\"},{\"name\":\"PARSE\",\"detail\":\"data<STRING>  PARSE  result<LIST<GTS>>\",\"documentation\":\"The `PARSE` function parses an input **STRING** containing datapoints in the [Geo Time Series™ input format](/content/03_Documentation/03_Interacting_with_Warp_10/03_Ingesting_data/02_GTS_input_format) and pushes onto the stack the parsed Geo Time Series™.\\n\\n@param `data` Datapoints in the Geo Time Series™ input format\\n\\n@param `result` List of parsed Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.0.11\",\"OPB64name\":\"PARSE\"},{\"name\":\"PARSESELECTOR\",\"detail\":\"selector<STRING>  PARSESELECTOR  classselector<STRING> labelselector<MAP>\",\"documentation\":\"The `PARSESELECTOR` function parses a GTS Selector (STRING) returnss the class selector and labels selectors.\\n\\nIn order for `PARSESELECTOR` to parse correctly a selector, the following characters MUST appear percent-encoded in the `STRING` to parse, the equal sign (`=`, `%3D`), the comma (`,` `%2C`) and closing curly brace (`}` `%7D`). Due to the way WarpScript parses `STRING` constants, the `%` sign MUST be percent-encoded (`%25`) in the `STRING` if it appears in WarpScript code:\\n\\nThe `STRING` `class{label=comm%2Cequal%3Dsign}` must appear in WarpScript as:\\n\\n```\\n'class{label=comm%252Cequal%253Dsign'\\n```\\n\\nCombined with `TOSELECTOR`, it can be used to build a selector from a subset of GTS.\\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature'\\n  { 'sensorId' '=01' }\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\nFETCH\\n\\n```\\nThis can be used to simplify the syntax of a FETCH or FIND request. \\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature{sensorId=01}' PARSESELECTOR\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\n\\nFETCH\\n```\\n\\n\\n\\n@param `selector` String selector.\\n\\n@param `labelselector` MAP of label selectors.\\n\\n@param `classselector` Class name selector.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARSESELECTOR\"},{\"name\":\"PARSEVALUE\",\"detail\":\"input<STRING>  PARSEVALUE  value<ANY>\",\"documentation\":\"The `PARSEVALUE` function parses a STRING representing a valid value in the Geo Time Series™ input format.\\n\\nThe underlying implementation being the internal WarpScript function, some of the returned types might not be easily handled in the rest of the calling script. Most notably, some floating point representations might lead to BigDecimal instances being produced.\\n\\n@param `input` String representation of the value to parse.\\n\\n@param `value` Parsed value, could be a STRING, LONG, DOUBLE, BIGDECIMAL, BOOLEAN or BYTES elements.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.1.0\",\"OPB64name\":\"PARSEVALUE\"},{\"name\":\"PARTITION\",\"detail\":\"lgts<LIST<GTS>> labels<LIST<STRING>>  PARTITION  result<MAP>\",\"documentation\":\"The `PARTITION` function splits a Geo Time Series™ list in equivalence classes based on label values.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels` plus all labels with common values among the GTS in the equivalence class.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARTITION\"},{\"name\":\"PATTERNDETECTION\",\"detail\":\"gts<GTS> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNDETECTION  result<GTS>\\nlgts<LIST<GTS>> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNDETECTION  lresult<LIST<GTS>>\",\"documentation\":\"The `PATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNDETECTION\"},{\"name\":\"PATTERNS\",\"detail\":\"gts<GTS> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNS  result<GTS>\\nlgts<LIST<GTS>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNS  lresult<LIST<GTS>>\",\"documentation\":\"The `PATTERNS` function extracts symbolic patterns (or motifs) from a Geo Time Series™. Those patterns are similar to [iSAX](http://www.cs.ucr.edu/~eamonn/iSAX/iSAX.html) symbols.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNS` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNS\"},{\"name\":\"PEEK\",\"detail\":\" PEEK \",\"documentation\":\"Displays the top of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEK\"},{\"name\":\"PEEKN\",\"detail\":\"distance<NUMBER>  PEEKN \",\"documentation\":\"Displays the content of the level of the stack at the given distance from the top.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `distance` Distance (in stack levels) between the top of the stack and the level to display.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEKN\"},{\"name\":\"PERMUTE\",\"detail\":\"tensor<LIST> pattern<LIST>  PERMUTE  tensor<LIST>\\n{ tensor<LIST> pattern<LIST> fast<BOOLEAN>  } PERMUTE  tensor<LIST>\",\"documentation\":\"Permute the dimensions of a nested LIST as if it were a tensor or a multidimensional array.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent before operating. Default to false.\\n\\n@param `pattern` The permutation pattern (a LIST of LONG).\\n\\n@param `tensor` The resulting nested LIST.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"PERMUTE\"},{\"name\":\"PFILTER\",\"detail\":\"[ gtsList<LIST<GTS>> labels<LIST<STRING>> filter<FILTER> ]  PFILTER  result<MAP>\",\"documentation\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `PFILTER framework allows for advanced filtering using N-ary functions \\n(functions which accept N parameters). Returned GTS are grouped by equivalence classes.\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A map keyed by the label set of each equivalence class whose values are lists of selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `PFILTER`.\\n\\n\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"PFILTER\"},{\"name\":\"PGPDECRYPT\",\"detail\":\"encrypted<ANY> keyring<KEYRING> keyid<ANY> passphrase<STRING>  PGPDECRYPT  decrypted<BYTES>\",\"documentation\":\"The `PGPDECRYPT` function decrypts encryted data.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n@param `keyid` Key id of the PGP secret key to use for decryption. This can either be a LONG or a hex STRING.\\n\\n@param `keyring` PGP secret key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `encrypted` Encrypted content as `BYTES` or `STRING` (armored).\\n\\n@param `decrypted` Clear text content.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPDECRYPT\"},{\"name\":\"PGPENCRYPT\",\"detail\":\"content<ANY> { date<LONG> keyring<KEYRING> recipient<ANY> algorithm<STRING> armor<BOOLEAN> throw_keyid<BOOLEAN>  } PGPENCRYPT  encrypted<ANY>\",\"documentation\":\"The `PGPENCRYPT` function encrypts data so it can be decrypted by a given [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public key. The encryption is performed using [AES 256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) by default.\\n\\n@param `throw_keyid` Flag indicating whether or not to hide the key id of the recipient. Defaults to `true`.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `algorithm` Symmetric key algorithm to use for encryption. Possible values are `AES_128`, `AES_192`, `AES_256` (default), `BLOWFISH`, `CAMELLIA_128`, `CAMELLIA_192`, `CAMELLIA_256`, `CAST5`, `DES`, `IDEA`, `SAFER`, `TRIPLE_DES`, `TWOFISH`.\\n\\n@param `recipient` Recipient PGP public key or key id (LONG or hex STRING).\\n\\n@param `keyring` PGP key ring containing the key id specified in `recipient`. May not be set when `recipient` is a PGP public key.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to encrypt. `STRING` content will be encoded using `UTF-8` prior to encryption.\\n\\n@param `encrypted` `BYTES` or `STRING` (when `armor` is `true`) encrypted content.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPENCRYPT\"},{\"name\":\"PGPINFO\",\"detail\":\"ring<ANY>  PGPINFO  infos<MAP>\\nkey<KEY>  PGPINFO  infos<MAP>\",\"documentation\":\"The `PGPINFO` function outputs informations about the keys contained in a PGP key ring previously extracted by [`PGPRING`](/doc/PGPRING).\\n\\nIt outputs a MAP keyed by key id and with values which are MAPs containing the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `keyid` | Uppercase 64 bits hecadecimal key id. |\\n| `fingerprint` | Lowercase hexadecimal full key fingerprint. |\\n| `uid` | List of uids associated with the key. Each uid is a byte array (`BYTES`). |\\n| `bits` | Key strength in bits. |\\n| `algorithm` | Algorithm used by the key, can be one of `RSA_GENERAL`, `RSA_SIGN`, `RSA_ENCRYPT`, `ELGAMAL_GENERAL`, `ELGAMAL_ENCRYPT`, `DSA`, `ECDH`, `ECDSA`, `DIFFIE_HELLMAN`, `EDDSA`, and `UNKNOWN_xx` for yet unsupported algorithms.|\\n| `master` | `BOOLEAN` indicating whether or not the key is a master key. |\\n| `signing` | `BOOLEAN` indicating if the key can be used for signing. |\\n| `encryption` | `BOOLEAN` indicating if the key can be used for encryption. |\\n| `expiry` | Timestamp at which the key expires, in platform time units since the Unix Epoch. 0 means no expiration. |\\n| `pubkey` | PGP public key with this key id. |\\n| `attributes` | List of key attributes, each attribute is a byte array. The only supported attribute at the moment is JPEG images. |\\n\\n@param `ring` PGP public or private key ring as extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `infos` Details of the keys present in the ring or key.\\n\\n@param `key` PGP public key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPINFO\"},{\"name\":\"PGPPRIVATE\",\"detail\":\"keyring<KEYRING>  PGPPRIVATE  keyids<LIST<STRING>>\",\"documentation\":\"The `PGPPRIVATE` function outputs the list of key ids for secret keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP secret key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP secret keys present in the key ring.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPRIVATE\"},{\"name\":\"PGPPUBLIC\",\"detail\":\"keyring<KEYRING>  PGPPUBLIC  keyids<LIST<STRING>>\",\"documentation\":\"The `PGPPUBLIC` function outputs the list of key ids for public keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret or public key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP public keys present in the key ring.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPUBLIC\"},{\"name\":\"PGPRING\",\"detail\":\"block<BYTES>  PGPRING  keyrings<LIST<KEYRING>>\\narmored<STRING>  PGPRING  keyrings<LIST<KEYRING>>\\nkeyring<KEYRING>  PGPRING  encoded<BYTES>\",\"documentation\":\"The `PGPRING` function parses a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public or secret key ring block and extracts the various key rings it contains. The function returns a list of key ring objects.\\n\\n@param `block` PGP public or private key ring block as produced by `gpg --export` or `gpg --export-secret-[sub]keys`.\\n\\n@param `armored` PGP public key ring block as produced by `gpg --export*` with the `--armor` option.\\n\\n@param `keyrings` LIST of key rings found in `block`.\\n\\n@param `keyring` PGP public or secret key ring as produced by `PGPRING`.\\n\\n@param `encoded` Encoded form of the input key ring.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPRING\"},{\"name\":\"PGPSIGN\",\"detail\":\"content<ANY> { keyring<KEYRING> keyid<ANY> passphrase<STRING> digest<STRING> armor<BOOLEAN> detached<BOOLEAN>  } PGPSIGN  signature<ANY>\",\"documentation\":\"The `PGPSIGN` function signs some content with a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `digest` Digest algorithm to use for the signature. Possible values are `SHA1`, `SHA224`, `SHA256`, `SHA384`, `SHA512` (default), `SHA3-224`, `SHA3-256`, `SHA3-384`, `SHA3-512`, `RIPEMD160`, `RMD160`, `MD2`, `MD4`, `TIGER`, `HAVAL`, `SM3`, `MD5`.\\n\\n@param `keyring` PGP secret key ring as generated by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the key present in `keyring` to use for signing.\\n\\n@param `detached` Should the signature be a deatched one (default) or not.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to sign. `STRING` content will be encoded using `UTF-8` prior to signature.\\n\\n@param `signature` `STRING` or `BYTES` signature.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPSIGN\"},{\"name\":\"PGPVERIFY\",\"detail\":\"content<ANY> signature<ANY> key<KEY> detached<BOOLEAN>  PGPVERIFY  verified<BOOLEAN>\\nsignature<ANY> key<KEY> detached<BOOLEAN>  PGPVERIFY  signed<BYTES> verified<BOOLEAN>\\ncontent<ANY> signature<ANY> keyring<KEYRING> keyid<ANY> detached<BOOLEAN>  PGPVERIFY  verified<BOOLEAN>\\nsignature<ANY> keyring<KEYRING> keyid<ANY> detached<BOOLEAN>  PGPVERIFY  signed<BYTES> verified<BOOLEAN>\",\"documentation\":\"The `PGPVERIFY` function verifies a PGP signature.\\n\\n@param `key` PGP public key to use for verifying the signature.\\n\\n@param `keyring` PGP secret or public key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the public key to use for verifying the signature. LONG or hex STRING.\\n\\n@param `detached` Flag indicating whether the signature is detached or not.\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content, when `detached` is `true`.\\n\\n@param `verified` Verification result.\\n\\n@param `signed` Extracted signed content, when `detached` is `false`.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPVERIFY\"},{\"name\":\"PGraphics\",\"detail\":\"width<LONG> height<LONG> imgtype<STRING>  PGraphics  pg<PGRAPHICS>\",\"documentation\":\"Warp 10 includes a large subset of the [Processing](http://www.processing.org) drawing library. You can create and manipulate images, then push a base64 encoded png onto the stack.\\n\\n+ Step 1: create a processing graphic object with `PGraphics` function.\\n+ Step 2: manipulate this object with Processing functions.\\n+ Step 3: render the processing graphic with `Pencode` function.\\n\\nDocumentation of every function has a link to original Processing website. Original website includes more examples for each function.\\n\\nProcessing functions offers a lot of different signatures for colors. The most efficient is to keep the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n\\nUp to Warp 10 1.2.18, antialiasing was not available. It is now available, by appending a digit to the **imgtype** string argument. The maximum anti-aliasing level is determined by the hardware of the machine that is running the software, so 2D4 and 2D8 mode will not work with every computer.\\n\\n+ \\\"2D\\\": no antialiasing\\n+ \\\"2D2\\\": bilinear smoothing\\n+ \\\"2D3\\\": bicubic smoothing\\n+ \\\"2D4\\\": 4x antialiasing\\n+ \\\"2D8\\\": 8x antialiasing\\n\\n\\nYou can adjust the maximal number of pixel allowed in Warp 10 configuration file.\\n\\n@param `imgtype` '2D', '3D', or '2Dx', where x is the level of anti aliasing (2, 3, 4, or 8).\\n\\n@param `width` Pixel width of the image.\\n\\n@param `height` Pixel height of the image.\\n\\n@param `pg` Processing graphic object.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PGraphics\"},{\"name\":\"PI\",\"detail\":\" PI  pi<DOUBLE>\",\"documentation\":\"Alias of [pi](/doc/R5Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"J3Z\"},{\"name\":\"PICK\",\"detail\":\"level<NUMBER>  PICK  result<ANY>\",\"documentation\":\"The `PICK` function copies on top of the stack the element at level N. Parameter N is consumed off the top of the stack when `PICK` is called.\\n\\n@param `level` Level of the stack\\n\\n@param `result` What is on stack at *level*\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"PICK\"},{\"name\":\"PICKLE->\",\"detail\":\"input<BYTES>  PICKLE->  output<ANY>\",\"documentation\":\"The `PICKLE->` function decodes some Pickle encoded content contained in a byte array.\\nThe conversion is done using [Pyrolite v4](https://github.com/irmen/pickle).\\n\\nIt can read all pickle protocol versions (0 to 4, so this includes\\nthe latest additions made in Python 3.4).\\n\\n```python\\n>>> myobject={ 'apple':3.5,'banana':18 }\\n>>> pickle.dumps(myobject).encode(\\\"hex\\\")\\n'286470300a53276170706c65270a70310a46332e350a73532762616e616e61270a70320a4931380a732e'\\n```\\n\\n@param `input` Byte array of a pickle encoded content\\n\\n@param `output` Warp 10 object\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"J3_2Hol4AIs\"},{\"name\":\"PIGSCHEMA\",\"detail\":\"elt<ANY*>  PIGSCHEMA  elt<ANY*> schema<STRING>\",\"documentation\":\"The `PIGSCHEMA` function produces on top of the stack a STRING representing the [Pig](https://en.wikipedia.org/wiki/Pig_(programming_tool)) schema definition for the current stack content.\\n\\n@param `elt` Stack content.\\n\\n@param `schema` Schema for the current stack, usable when working with WarpScript in Pig.\\n\\n\",\"tags\":[\"pig\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"PIGSCHEMA\"},{\"name\":\"PIVOT\",\"detail\":\"input<LIST<GTS>> pivot<LIST<GTS>>  PIVOT  result<LIST<GTS>>\",\"documentation\":\"The `PIVOT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick of GTS from the first list, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n1// C3{C1=C} 2\\n2// C4{C2=F} 30\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n4// C3{} 5\\n4// C4{} 50\\n```\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOT\"},{\"name\":\"PIVOTSTRICT\",\"detail\":\"input<LIST<GTS>> pivot<LIST<GTS>>  PIVOTSTRICT  result<LIST<GTS>>\",\"documentation\":\"The `PIVOTSTRICT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™ in a way similar to what [`PIVOT`](/doc/PIVOT) does.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick common to Geo Time Series™ of both lists, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOTSTRICT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n```\\n\\nOnly ticks 0 and 3 appear in the result as those are the only ticks present in both `C1` and `C2`.\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOTSTRICT\"},{\"name\":\"POLYFIT\",\"detail\":\"gts<GTS> degree<LONG> buckets<BOOLEAN>  POLYFIT  coeffs<LIST<DOUBLE>>\\ngts<GTS> degree<LONG>  POLYFIT  coeffs<LIST<DOUBLE>>\",\"documentation\":\"Creates a polynomial of the specified degree which fits the provided Geo Time Series.\\n\\nThe ticks or buckets ids can be considered.\\n\\n@param `buckets` Flag indicating whether to consider the ticks (`false`) or the bucket ids (`true`). If `buckets` is missing the ticks are considered.\\n\\n@param `degree` Degree of the polynomial to generate.\\n\\n@param `gts` Numerical Geo Time Series to fit. Must be bucketized if `buckets` is `true`.\\n\\n@param `coeffs` List of the coefficients of the generated polynomial function.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFIT\"},{\"name\":\"POLYFUNC\",\"detail\":\"coeffs<LIST<DOUBLE>>  POLYFUNC  func<FUNC>\",\"documentation\":\"Creates a WarpScript function which computes a polynomial function of the given coefficients.\\n\\nThe resulting WarpScript function can be applied to a Geo Time Series, a GTS Encoder, a numerical value or a list thereof.\\n\\nWhen applied to a Geo Time Series, the bucket id can be considered instead of the tick by adding a `BOOLEAN` parameter to the call.\\n\\n@param `coeffs` List of polynomial coefficients.\\n\\n@param `func` Generated WarpScript function.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFUNC\"},{\"name\":\"POPR\",\"detail\":\"value<ANY>  POPR \",\"documentation\":\"Pops a value from the top of the stack and stores it into the designated register.\\n\\nThe `POPR` function is really a family of functions named `POPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"POPR\"},{\"name\":\"PREDUCE\",\"detail\":\"[ gts<LIST<GTS>+> labels<LIST<STRING>> reducer<AGGREGATOR> ]  PREDUCE  result<MAP>\",\"documentation\":\"Behaves as [`REDUCE`](/doc/REDUCE) but produces a map of results keyed by the label map of each equivalence class.\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` Map keyed by the label map of each equivalence class and whose values are the Geo Time Series™ produced for each class.\\n\\n\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.5\",\"OPB64name\":\"PREDUCE\"},{\"name\":\"PRNG\",\"detail\":\"seed<LONG>  PRNG \",\"documentation\":\"The `PRNG` function initializes the stack's seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator). This PRNG can later be used by the [`SRAND`](/doc/SRAND) function to produce random numbers in a deterministic way (!).\\n\\n@param `seed` The seed to use for initializing the PRNG.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"PRNG\"},{\"name\":\"PROB\",\"detail\":\"gts<GTS>  PROB  result<GTS>\\ngtslist<LIST<GTS>>  PROB  resultList<LIST<GTS>>\",\"documentation\":\"Computes probability for each value of the input Geo Time Series™.\\n\\nThe function `PROB` consumes a GTS or a list of the GTS from the top of the stack. It pushes back the probability for each value.\\n\\nThe probabilities are computed using the value histogram.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `gtslist` The input list of Geo Time Series™\\n\\n@param `result` The Geo Time Series™ wit probability for each value\\n\\n@param `resultList` The List of Geo Time Series™ with probability for each value\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.6\",\"OPB64name\":\"PROB\"},{\"name\":\"PROBABILITY\",\"detail\":\"valueHistogram<MAP>  PROBABILITY  result<STRING>\",\"documentation\":\"Pushes on the stack a function which computes probabilities according to a provided value histogram.\\n\\nTo use the function pushed by `PROBABILITY` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function expects a value on top of the stack and will output the probability of occurrence of this value.\\n\\n\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"PROBABILITY\"},{\"name\":\"PSTACK\",\"detail\":\"\",\"documentation\":\"When in interactive (REPL) mode, prints the content of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PSTACK\"},{\"name\":\"PUSHR\",\"detail\":\" PUSHR  value<ANY>\",\"documentation\":\"Pushes onto the stack the value currently contained in the designated register.\\n\\nThe `PUSHR` function is really a family of functions named `PUSHRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PUSHR\"},{\"name\":\"PUT\",\"detail\":\"inputmap<MAP> newvalue<ANY> newkey<ANY>  PUT  outputmap<MAP>\",\"documentation\":\"The `PUT` function inserts a new key-value pair in a map.\\nIf the key already exists in the input MAP, the value is replaced by the new one.\\n\\n`PUT` function puts the reference of the MAP on top of the stack.\\n\\n@param `newkey` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `newvalue` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `inputmap` reference to the map to be modified\\n\\n@param `outputmap` copy of input map reference. Useful to chain other instructions on the same map.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"PUT\"},{\"name\":\"Palpha\",\"detail\":\"pg<PGRAPHICS> color<NUMBER>  Palpha  pg<PGRAPHICS> alpha<DOUBLE>\",\"documentation\":\"Extracts the alpha value from a color.\\n\\nThe `Palpha` function is easy to use and understand, but it is slower than bit shifting... \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/alpha_.html)\\n\\n@param `color` Any value of the color datatype\\n\\n@param `alpha` Alpha component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Palpha\"},{\"name\":\"Parc\",\"detail\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> start<DOUBLE> stop<DOUBLE>  Parc  pg<PGRAPHICS>\\npg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> start<DOUBLE> stop<DOUBLE> mode<STRING>  Parc  pg<PGRAPHICS>\",\"documentation\":\"Draws an arc to the screen. Arcs are drawn along the outer edge of an ellipse defined by the **a**, **b**, **c**, and **d** parameters. The origin of the arc's ellipse may be changed with the [`PellipseMode`](/doc/PellipseMode) function. Use the **start** and **stop** parameters to specify the angles (in radians) at which to draw the arc.\\n\\n\\n\\nThere are three ways to draw an arc; the rendering technique used is defined by the optional seventh parameter. The three options, depicted in the examples, are PIE, OPEN, and CHORD. The default mode is the OPEN stroke with a PIE fill.\\n\\n\\n\\nIn some cases, the `Parc` function isn't accurate enough for smooth drawing. For example, the shape may jitter on screen when rotating slowly. If you're having an issue with how arcs are rendered, you'll need to draw the arc yourself with [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) or a **PShape**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/arc_.html)\\n\\n@param `b` y-coordinate of the arc's ellipse\\n\\n@param `a` x-coordinate of the arc's ellipse\\n\\n@param `c` width of the arc's ellipse by default\\n\\n@param `d` height of the arc's ellipse by default\\n\\n@param `start` angle to start the arc, specified in radians\\n\\n@param `stop` angle to stop the arc, specified in radians\\n\\n@param `mode` closing mode. either PIE, OPEN, or CHORD\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Parc\"},{\"name\":\"Pbackground\",\"detail\":\"pg<PGRAPHICS> argb<LONG>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> image<PIMAGE>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> rgb<LONG> alpha<NUMBER>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE> alpha<NUMBER>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Pbackground  pg<PGRAPHICS>\",\"documentation\":\"The `Pbackground` function sets the color used for the background of the processing graphics object. \\n\\nAn image object can also be used as the background for a sketch, although the image's width and height must match that of the processing object. Images used with `Pbackground` will ignore the current [`Ptint`](/doc/Ptint) setting. \\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pbackground` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/background_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `rgb` any rgb color value.\\n\\n@param `alpha` opacity of the background. 0 = transparent, 255 = opaque.\\n\\n@param `gray` a value between white (255) and black (0)\\n\\n@param `image` PImage to set as background (must be same size as pg)\\n\\n@param `v1` red or hue value (depending on the current color mode)\\n\\n@param `v2` green or saturation value (depending on the current color mode)\\n\\n@param `v3` blue or brightness value (depending on the current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbackground\"},{\"name\":\"PbeginContour\",\"detail\":\"pg<PGRAPHICS>  PbeginContour  pg<PGRAPHICS>\",\"documentation\":\"Use the `PbeginContour` and [`PendContour`](/doc/PendContour) function to create negative shapes within shapes such as the center of the letter 'O'. `PbeginContour` begins recording vertices for the shape and [`PendContour`](/doc/PendContour) stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\n\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a `PbeginContour`/[`PendContour`](/doc/PendContour) pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginContour\"},{\"name\":\"PbeginShape\",\"detail\":\"pg<PGRAPHICS> kind<STRING>  PbeginShape  pg<PGRAPHICS>\\npg<PGRAPHICS>  PbeginShape  pg<PGRAPHICS>\",\"documentation\":\"Using the `PbeginShape` and [`PendShape`](/doc/PendShape) functions allow creating more complex forms. `PbeginShape` begins recording vertices for a shape and [`PendShape`](/doc/PendShape) stops recording. \\n\\nThe value of the **kind** parameter tells it which types of shapes to create from the provided vertices. The parameters available for beginShape() are POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, and QUAD_STRIP. After calling the `PbeginShape` function, a series of [`Pvertex`](/doc/Pvertex) commands must follow. To stop drawing the shape, call [`PendShape`](/doc/PendShape). The [`Pvertex`](/doc/Pvertex) function with two parameters specifies a position in 2D. Each shape will be outlined with the current stroke color and filled with the fill color. \\n\\n\\nTransformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within `PbeginShape`. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within `PbeginShape`. \\n\\n\\nThe P2D and P3D renderers allow [`Pstroke`](/doc/Pstroke) and [`Pfill`](/doc/Pfill) to be altered on a per-vertex group basis. Settings such as [`PstrokeWeight`](/doc/PstrokeWeight), [`PstrokeCap`](/doc/PstrokeCap), and [`PstrokeJoin`](/doc/PstrokeJoin) cannot be changed while inside a `PbeginShape`/[`PendShape`](/doc/PendShape) block with any renderer.\\n\\nUp to Warp 10 1.2.18, `PbeginShape` could be called without the **kind** parameter. It defaults to POLYGON.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginShape_.html)\\n\\n@param `kind` Either POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginShape\"},{\"name\":\"Pbezier\",\"detail\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  Pbezier  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> z1<DOUBLE> x2<DOUBLE> y2<DOUBLE> z2<DOUBLE> x3<DOUBLE> y3<DOUBLE> z3<DOUBLE> x4<DOUBLE> y4<DOUBLE> z4<DOUBLE>  Pbezier  pg<PGRAPHICS>\",\"documentation\":\"Draws a Bezier curve on the screen. These curves are defined by a series of anchor and control points. The first two parameters specify the first anchor point and the last two parameters specify the other anchor point. The middle parameters specify the control points which define the shape of the curve. Bezier curves were developed by French engineer Pierre Bezier. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezier_.html)\\n\\n@param `x1` coordinates for the first anchor point\\n\\n@param `y1` coordinates for the first anchor point\\n\\n@param `z1` coordinates for the first anchor point\\n\\n@param `x2` coordinates for the first control point\\n\\n@param `y2` coordinates for the first control point\\n\\n@param `z2` coordinates for the first control point\\n\\n@param `x3` coordinates for the second control point\\n\\n@param `y3` coordinates for the second control point\\n\\n@param `z3` coordinates for the second control point\\n\\n@param `x4` coordinates for the second anchor point\\n\\n@param `y4` coordinates for the second anchor point\\n\\n@param `z4` coordinates for the second anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbezier\"},{\"name\":\"PbezierDetail\",\"detail\":\"pg<PGRAPHICS> detail<NUMBER>  PbezierDetail  pg<PGRAPHICS>\",\"documentation\":\"Sets the resolution at which Beziers display. The default value is 20. This function is only useful when using the **P3D** renderer; the default **P2D** renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierDetail_.html)\\n\\n@param `detail` resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierDetail\"},{\"name\":\"PbezierPoint\",\"detail\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PbezierPoint  pg<PGRAPHICS> out<DOUBLE>\",\"documentation\":\"Evaluates the Bezier at point t for points a, b, c, d. The parameter t varies between 0 and 1, a and d are points on the curve, and b and c are the control points. This can be done once with the x coordinates and a second time with the y coordinates to get the location of a bezier curve at t.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierPoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierPoint\"},{\"name\":\"PbezierTangent\",\"detail\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PbezierTangent  pg<PGRAPHICS> out<DOUBLE>\",\"documentation\":\"Calculates the tangent of a point on a Bezier curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierTangent\"},{\"name\":\"PbezierVertex\",\"detail\":\"pg<PGRAPHICS> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  PbezierVertex  pg<PGRAPHICS>\",\"documentation\":\"Specifies vertex coordinates for Bezier curves. Each call to `PbezierVertex` defines the position of two control points and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PbezierVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only with POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierVertex_.html)\\n\\n@param `x2` The x-coordinate of the 1st control point\\n\\n@param `y2` The y-coordinate of the 1st control point\\n\\n@param `x3` The x-coordinate of the 2nd control point\\n\\n@param `y3` The y-coordinate of the 2nd control point\\n\\n@param `x4` The x-coordinate of the anchor point\\n\\n@param `y4` The y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierVertex\"},{\"name\":\"Pblend\",\"detail\":\"pg<PGRAPHICS> src<PIMAGE> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG> mode<STRING>  Pblend  pg<PGRAPHICS>\\npg<PGRAPHICS> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG> mode<STRING>  Pblend  pg<PGRAPHICS>\",\"documentation\":\"Blends a region of pixels from one image into another (or in itself again) with full alpha channel support.\\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels in the destination image (B):\\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - Multiply the colors, result will always be darker.\\n+ SCREEN - Opposite multiply, uses inverse values of the colors.\\n+ OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values,and screens light values.\\n+ HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.\\n+ SOFT_LIGHT - Mix of DARKEST and LIGHTEST. Works like OVERLAY, but not as harsh.\\n+ DODGE - Lightens light tones and increases contrast, ignores darks.Called \\\"Color Dodge\\\" in Illustrator and Photoshop.\\n+ BURN - Darker areas are applied, increasing contrast, ignores lights.Called \\\"Color Burn\\\" in Illustrator and Photoshop.\\n\\nAll modes use the alpha information (highest byte) of source image pixels as the blending factor. If the source and destination regions are different sizes, the image will be automatically resized to match the destination size. If the **src** parameter is not used, the display window is used as the source image.\\n\\n[Link to original Processing doc](https://processing.org/reference/blend_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `mode` Either BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblend\"},{\"name\":\"PblendMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PblendMode  pg<PGRAPHICS>\",\"documentation\":\"Blends the pixels in the display window according to a defined mode. \\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels already in the display window (B). \\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B. This is the default blending mode.\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - multiply the colors, result will always be darker.\\n+ SCREEN - opposite multiply, uses inverse values of the colors.\\n+ REPLACE - the pixels entirely replace the others and don't utilize alpha (transparency) values\\n\\nA pixel's final color is the result of applying one of the above blend modes with each channel of (A) and (B) independently. For example, red is compared with red, green with green, and blue with blue.\\n\\nWe recommend using `PblendMode` and not the previous [`Pblend`](/doc/Pblend) function. However, unlike [`Pblend`](/doc/Pblend), the `PblendMode` function does not support the following: HARD_LIGHT, SOFT_LIGHT, OVERLAY, DODGE, BURN. On older hardware, the LIGHTEST, DARKEST, and DIFFERENCE modes might not be available as well. \\n\\n[Link to original Processing doc](https://processing.org/reference/blendMode_.html)\\n\\n@param `mode` The blending mode to use\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PblendMode\"},{\"name\":\"Pblue\",\"detail\":\"pg<PGRAPHICS> rgb<NUMBER>  Pblue  pg<PGRAPHICS> blue<DOUBLE>\",\"documentation\":\"Extracts the blue value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pblue` function is easy to use and understand, but it is slower than bit masking. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/blue_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `blue` Blue component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblue\"},{\"name\":\"Pbox\",\"detail\":\"pg<PGRAPHICS> size<NUMBER>  Pbox  pg<PGRAPHICS>\\npg<PGRAPHICS> w<NUMBER> h<NUMBER> d<NUMBER>  Pbox  pg<PGRAPHICS>\",\"documentation\":\"A box is an extruded rectangle. A box with equal dimensions on all sides is a cube.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/box_.html)\\n\\n@param `size` dimension of the box in all dimensions (creates a cube)\\n\\n@param `w` dimension of the box in the x-dimension\\n\\n@param `h` dimension of the box in the y-dimension\\n\\n@param `d` dimension of the box in the z-dimension\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbox\"},{\"name\":\"Pbrightness\",\"detail\":\"pg<PGRAPHICS> rgb<NUMBER>  Pbrightness  pg<PGRAPHICS> brightness<DOUBLE>\",\"documentation\":\"Extracts the brightness value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/brightness_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `brightness` Brightness component of input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbrightness\"},{\"name\":\"Pclear\",\"detail\":\"pg<PGRAPHICS>  Pclear  pg<PGRAPHICS>\",\"documentation\":\"Clears the pixels. This function clears everything in a **PGraphics** object to make all of the pixels 100% transparent.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clear_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclear\"},{\"name\":\"Pclip\",\"detail\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Pclip  pg<PGRAPHICS>\",\"documentation\":\"Limits the rendering to the boundaries of a rectangle defined by the parameters. The boundaries are drawn based on the state of the [`PimageMode`](/doc/PimageMode) function, either CORNER, CORNERS, or CENTER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clip_.html)\\n\\n@param `a` x-coordinate of the rectangle, by default\\n\\n@param `b` y-coordinate of the rectangle, by default\\n\\n@param `c` width of the rectangle, by default\\n\\n@param `d` height of the rectangle, by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclip\"},{\"name\":\"Pcolor\",\"detail\":\"pg<PGRAPHICS> gray<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> gray<NUMBER> alpha<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\",\"documentation\":\"`Pcolor` creates colors for storing in ARGB LONG datatype.\\n\\n+ RGB: The most efficient is to skip Pcolor function, using the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n+ HSB: For Hue Saturation Brightness to RGB conversion, use [`PcolorMode`](/doc/PcolorMode) to specify HSB, then use Pcolor to convert to ARGB.\\n\\nThe parameters are interpreted as RGB or HSB values depending on the current [`PcolorMode`](/doc/PcolorMode). The default mode is RGB values from 0 to 255.\\n\\nNote that if only one value is provided to `Pcolor`, it will be interpreted as a grayscale value. Add a second value, and it will be used for alpha transparency. When three values are specified, they are interpreted as either RGB or HSB values. Adding a fourth value applies alpha transparency.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/color_.html)\\n\\n@param `gray` int: number specifying value between white and black\\n\\n@param `alpha` float, or int: relative to current color range\\n\\n@param `v1` float, or int: red or hue values relative to the current color range\\n\\n@param `v2` float, or int: green or saturation values relative to the current color range\\n\\n@param `v3` float, or int: blue or brightness values relative to the current color range\\n\\n@param `color` ARGB color.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcolor\"},{\"name\":\"PcolorMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PcolorMode  pg<PGRAPHICS>\\npg<PGRAPHICS> mode<STRING> max<DOUBLE>  PcolorMode  pg<PGRAPHICS>\\npg<PGRAPHICS> mode<STRING> max1<DOUBLE> max2<DOUBLE> max3<DOUBLE>  PcolorMode  pg<PGRAPHICS>\\npg<PGRAPHICS> mode<STRING> max1<DOUBLE> max2<DOUBLE> max3<DOUBLE> maxA<DOUBLE>  PcolorMode  pg<PGRAPHICS>\",\"documentation\":\"Changes the way Processing interprets color data. By default, the parameters for [`Pfill`](/doc/Pfill), [`Pstroke`](/doc/Pstroke), [`Pbackground`](/doc/Pbackground), and [`Pcolor`](/doc/Pcolor) are defined by values between 0 and 255 using the RGB color model. The `PcolorMode` function is used to change the numerical range used for specifying colors and to switch color systems. For example, calling **colorMode(RGB, 1.0)** will specify that values are specified between 0 and 1. The limits for defining colors are altered by setting the parameters **max**, **max1**, **max2**, **max3**, and **maxA**.\\n\\nWhen using max different from default values, do not work with grayscale.\\n\\nAfter changing the range of values for colors with code like **colorMode(HSB, 360, 100, 100)**, those ranges remain in use until they are explicitly changed again. For example, after running **colorMode(HSB, 360, 100, 100)** and then changing back to **colorMode(RGB)**, the range for R will be 0 to 360 and the range for G and B will be 0 to 100. To avoid this, be explicit about the ranges when changing the color mode. For instance, instead of **colorMode(RGB)**, write **colorMode(RGB, 255, 255, 255)**. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/colorMode_.html)\\n\\n@param `mode` Either 'RGB' or 'HSB', corresponding to Red/Green/Blue and Hue/Saturation/Brightness\\n\\n@param `max` range for all color elements\\n\\n@param `max1` range for the red or hue depending on the current color mode\\n\\n@param `max2` range for the green or saturation depending on the current color mode\\n\\n@param `max3` range for the blue or brightness depending on the current color mode\\n\\n@param `maxA` range for the alpha\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcolorMode\"},{\"name\":\"Pconstrain\",\"detail\":\"pg<PGRAPHICS> x<DOUBLE> low<DOUBLE> high<DOUBLE>  Pconstrain  pg<PGRAPHICS> clamped<DOUBLE>\",\"documentation\":\"Constrains a value to not exceed a maximum and minimum value. Also known as clamping a value. \\n\\nIt could be done with warpscript MIN MAX functions, see example.\\n\\n[Link to original Processing doc](https://processing.org/reference/constrain_.html)\\n\\n@param `x` The value to clamp.\\n\\n@param `low` Minimum limit.\\n\\n@param `high` Maximum limit.\\n\\n@param `clamped` Clamped value of x in [low high] range.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pconstrain\"},{\"name\":\"Pcopy\",\"detail\":\"pg<PGRAPHICS> src<PIMAGE> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG>  Pcopy  pg<PGRAPHICS>\\npg<PGRAPHICS> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG>  Pcopy  pg<PGRAPHICS>\\npg<PGRAPHICS>  Pcopy  pg<PGRAPHICS> img<PIMAGE>\",\"documentation\":\"Copies a region of pixels from the display window to another area of the display window and copies a region of pixels from an image used as the **src** parameter into the display window. If the source and destination regions are not the same size, it will automatically resize the source pixels to fit the specified target region. No alpha information is used in the process, however if the source image has an alpha channel set, it will be copied as well.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/copy_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `img` PIMAGE object, copy of pg\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcopy\"},{\"name\":\"PcreateFont\",\"detail\":\"pg<PGRAPHICS> name<STRING>  PcreateFont  pg<PGRAPHICS> font<PFONT>\\npg<PGRAPHICS> name<STRING> size<NUMBER>  PcreateFont  pg<PGRAPHICS> font<PFONT>\\npg<PGRAPHICS> name<STRING> size<NUMBER> smooth<BOOLEAN>  PcreateFont  pg<PGRAPHICS> font<PFONT>\\npg<PGRAPHICS> name<STRING> size<NUMBER> smooth<BOOLEAN> charset<STRING>  PcreateFont  pg<PGRAPHICS> font<PFONT>\",\"documentation\":\"Dynamically converts a font to the format used by Processing from a font that is installed on the computer.  Not all fonts can be used and some might work with one operating system and not others.\\n\\nThe **size** parameter states the font size you want to generate. The **smooth** parameter specifies if the font should be antialiased or not.\\n\\nSince the 2.5.0 version, the name of the font can be a URI to a OpenType or Type1 font which will be resolved by a macro defined by the `processing.font.resolver` configuration.\\n\\n[Link to original Processing doc](https://processing.org/reference/createFont_.html)\\n\\n@param `name` Name of the font to load or URI from where to load the font.\\n\\n@param `size` Point size of the font\\n\\n@param `smooth` True for an antialiased font, false for aliased\\n\\n@param `charset` subset of ascii characters to be generated.\\n\\n@param `font` Processing font object compatible with PtextFont.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcreateFont\"},{\"name\":\"Pcurve\",\"detail\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  Pcurve  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> z1<DOUBLE> x2<DOUBLE> y2<DOUBLE> z2<DOUBLE> x3<DOUBLE> y3<DOUBLE> z3<DOUBLE> x4<DOUBLE> y4<DOUBLE> z4<DOUBLE>  Pcurve  pg<PGRAPHICS>\",\"documentation\":\"Draws a curved line on the screen. The first and second parameters specify the beginning control point and the last two parameters specify the ending control point. The middle parameters specify the start and stop of the curve. Longer curves can be created by putting a series of `Pcurve` functions together or using [`PcurveVertex`](/doc/PcurveVertex). An additional function called [`PcurveTightness`](/doc/PcurveTightness) provides control for the visual quality of the curve. The `Pcurve` function is an implementation of Catmull-Rom splines. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n[Link to original Processing doc](https://processing.org/reference/curve_.html)\\n\\n@param `x1` float: coordinates for the beginning control point\\n\\n@param `y1` float: coordinates for the beginning control point\\n\\n@param `x2` float: coordinates for the first point\\n\\n@param `y2` float: coordinates for the first point\\n\\n@param `x3` float: coordinates for the second point\\n\\n@param `y3` float: coordinates for the second point\\n\\n@param `x4` float: coordinates for the ending control point\\n\\n@param `y4` float: coordinates for the ending control point\\n\\n@param `z1` float: coordinates for the beginning control point\\n\\n@param `z2` float: coordinates for the first point\\n\\n@param `z3` float: coordinates for the second point\\n\\n@param `z4` float: coordinates for the ending control point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcurve\"},{\"name\":\"PcurveDetail\",\"detail\":\"pg<PGRAPHICS> detail<NUMBER>  PcurveDetail  pg<PGRAPHICS>\",\"documentation\":\"Sets the resolution at which curves display. The default value is 20. This function is only useful when using the P3D renderer as the default P2D renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveDetail_.html)\\n\\n@param `detail` Resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveDetail\"},{\"name\":\"PcurvePoint\",\"detail\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PcurvePoint  pg<PGRAPHICS> out<DOUBLE>\",\"documentation\":\"Evaluates the curve at point **t** for points **a**, **b**, **c**, **d**. The parameter **t** may range from 0 (the start of the curve) and 1 (the end of the curve). **a** and **d** are points on the curve, and **b** and **c** are the control points. This can be used once with the **x** coordinates and a second time with the **y** coordinates to get the location of a curve at **t**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curvePoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of second point on the curve\\n\\n@param `c` coordinate of third point on the curve\\n\\n@param `d` coordinate of fourth point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurvePoint\"},{\"name\":\"PcurveTangent\",\"detail\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PcurveTangent  pg<PGRAPHICS> out<DOUBLE>\",\"documentation\":\"Calculates the tangent of a point on a curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTangent\"},{\"name\":\"PcurveTightness\",\"detail\":\"pg<PGRAPHICS> tightness<NUMBER>  PcurveTightness  pg<PGRAPHICS>\",\"documentation\":\"Modifies the quality of forms created with [`Pcurve`](/doc/Pcurve) and [`PcurveVertex`](/doc/PcurveVertex). The parameter **tightness** determines how the curve fits to the vertex points. The value 0.0 is the default value for **tightness** (this value defines the curves to be Catmull-Rom splines) and the value 1.0 connects all the points with straight lines. Values within the range -5.0 and 5.0 will deform the curves but will leave them recognizable and as values increase in magnitude, they will continue to deform.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTightness_.html)\\n\\n@param `tightness` Amount of deformation from the original vertices\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTightness\"},{\"name\":\"PcurveVertex\",\"detail\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  PcurveVertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  PcurveVertex  pg<PGRAPHICS>\",\"documentation\":\"Specifies vertex coordinates for curves. This function may only be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). The first and last points in a series of `PcurveVertex` lines will be used to guide the beginning and end of a the curve. A minimum of four points is required to draw a tiny curve between the second and third points. Adding a fifth point with `PcurveVertex` will draw the curve between the second, third, and fourth points. The `PcurveVertex` function is an implementation of Catmull-Rom splines. \\n\\n[Link to original Processing doc](https://processing.org/reference/curveVertex_.html)\\n\\n@param `x` The x-coordinate of the vertex\\n\\n@param `y` The y-coordinate of the vertex\\n\\n@param `z` The z-coordinate of the vertex\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveVertex\"},{\"name\":\"Pdecode\",\"detail\":\"b64img<STRING>  Pdecode  img<PIMAGE>\\nrawimg<BYTES>  Pdecode  img<PIMAGE>\",\"documentation\":\"`Pdecode` takes the image representation on the stack and pushes a Pimage object on the stack. This object can only be used as an input for [`Pset`](/doc/Pset), [`Pimage`](/doc/Pimage), [`Pbackground`](/doc/Pbackground).\\n\\nInput string must start with the header `data:image/png;base64,`.\\n\\nSupported input types: PNG, GIF, JPG.\\n\\n@param `img` Processing Pimage object.\\n\\n@param `rawimg` Image bytes.\\n\\n@param `b64img` Base64 encoded image string\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdecode\"},{\"name\":\"Pdist\",\"detail\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> z1<DOUBLE> x2<DOUBLE> y2<DOUBLE> z2<DOUBLE>  Pdist  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE>  Pdist  pg<PGRAPHICS>\",\"documentation\":\"Calculates the distance between two points, in 2D or 3D space.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/dist_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdist\"},{\"name\":\"Pellipse\",\"detail\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Pellipse  pg<PGRAPHICS>\",\"documentation\":\"Draws an ellipse (oval) to the screen. An ellipse with equal width and height is a circle. By default, the first two parameters set the location, and the third and fourth parameters set the shape's width and height. The origin may be changed with the [`PellipseMode`](/doc/PellipseMode) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipse_.html)\\n\\n@param `a` float: x-coordinate of the ellipse\\n\\n@param `b` float: y-coordinate of the ellipse\\n\\n@param `c` float: width of the ellipse by default\\n\\n@param `d` float: height of the ellipse by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pellipse\"},{\"name\":\"PellipseMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PellipseMode  pg<PGRAPHICS>\",\"documentation\":\"Modifies the location from which ellipses are drawn by changing the way in which parameters given to [`Pellipse`](/doc/Pellipse) are intepreted.\\n\\nThe default mode is **ellipseMode(CENTER)**, which interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(RADIUS)** also uses the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, but uses the third and fourth parameters to specify half of the shapes's width and height.\\n\\n**ellipseMode(CORNER)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(CORNERS)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the location of one corner of the ellipse's bounding box, and the third and fourth parameters as the location of the opposite corner.\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipseMode_.html)\\n\\n@param `mode` Either CENTER, RADIUS, CORNER, or CORNERS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PellipseMode\"},{\"name\":\"Pencode\",\"detail\":\"pg<PGRAPHICS>  Pencode  b64img<STRING>\\npg<PGRAPHICS> metadata<MAP>  Pencode  b64img<STRING>\\nimg<PIMAGE>  Pencode  b64img<STRING>\\nimg<PIMAGE> metadata<MAP>  Pencode  b64img<STRING>\",\"documentation\":\"`Pencode` function takes a processing graphic object on the top of the stack, render it to a png file, encode it in base64, prefix the result with the standard png header \\\"data:image/png;base64,\\\".\\n\\nSince the 2.7.3 version, this function can be called on a **PIMAGE** instance.\\n\\nThe resulting string is ready to use in an html document.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing image object.\\n\\n@param `b64img` Base64 encoded image string, ready to use in an html page.\\n\\n@param `metadata` Map of metadata to add to the PNG. Accepted keys are 'tEXt', 'zTXt' and 'iTXt', while values are lists of maps with 'keyword' and 'text' keys.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pencode\"},{\"name\":\"PendContour\",\"detail\":\"pg<PGRAPHICS>  PendContour  pg<PGRAPHICS>\",\"documentation\":\"Use the [`PbeginContour`](/doc/PbeginContour) and `PendContour` function to create negative shapes within shapes such as the center of the letter 'O'. [`PbeginContour`](/doc/PbeginContour) begins recording vertices for the shape and `PendContour` stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a [`PbeginContour`](/doc/PbeginContour)/`PendContour` pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n[Link to original Processing doc](https://processing.org/reference/endContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendContour\"},{\"name\":\"PendShape\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PendShape  pg<PGRAPHICS>\\npg<PGRAPHICS>  PendShape  pg<PGRAPHICS>\",\"documentation\":\"The `PendShape` function is the companion to [`PbeginShape`](/doc/PbeginShape) and may only be called after [`PbeginShape`](/doc/PbeginShape). When `Pendshape` is called, all of image data defined since the previous call to [`PbeginShape`](/doc/PbeginShape) is written into the image buffer. The constant CLOSE as the value for the MODE parameter to close the shape (to connect the beginning and the end). \\n\\nUp to Warp 10 1.2.18, `PendShape` could be called without the **mode** parameter. It defaults to OPEN.\\n\\n[Link to original Processing doc](https://processing.org/reference/endShape_.html)\\n\\n@param `mode` Use CLOSE to close the shape, OPEN otherwise.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendShape\"},{\"name\":\"Pfill\",\"detail\":\"pg<PGRAPHICS> argb<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> argb<LONG> alpha<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<LONG> v2<LONG> v3<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<LONG> v2<LONG> v3<LONG> alpha<LONG>  Pfill  pg<PGRAPHICS>\",\"documentation\":\"Sets the color used to fill shapes. For example, if you run **fill(204, 102, 0)**, all subsequent shapes will be filled with orange. This color is either specified in terms of the RGB or HSB color depending on the current [`PcolorMode`](/doc/PcolorMode). The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\nThe value for the \\\"gray\\\" parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\nTo change the color of an image or a texture, use [`Ptint`](/doc/Ptint).\\n\\n[Link to original Processing doc](https://processing.org/reference/fill_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pfill\"},{\"name\":\"Pfilter\",\"detail\":\"pg<PGRAPHICS> kind<STRING>  Pfilter  pg<PGRAPHICS>\\npg<PGRAPHICS> kind<STRING> param<DOUBLE>  Pfilter  pg<PGRAPHICS>\",\"documentation\":\"Filters the display window using a preset filter or with a custom shader. Using a shader with `Pfilter` is much faster than without. Shaders require the P2D or P3D renderer in size().\\n\\n\\nThe presets options are:\\n\\n+ **THRESHOLD** Converts the image to black and white pixels depending if they are above or below the threshold defined by the level parameter. The parameter must be between 0.0 (black) and 1.0 (white). If no level is specified, 0.5 is used.\\n+ **GRAY** Converts any colors in the image to grayscale equivalents. No parameter is used.\\n+ **OPAQUE** Sets the alpha channel to entirely opaque. No parameter is used.\\n+ **INVERT** Sets each pixel to its inverse value. No parameter is used.\\n+ **POSTERIZE** Limits each channel of the image to the number of colors specified as the parameter. The parameter can be set to values between 2 and 255, but results are most noticeable in the lower ranges.\\n+ **BLUR** Executes a Guassian blur with the level parameter specifying the extent of the blurring. If no parameter is used, the blur is equivalent to Guassian blur of radius 1. Larger values increase the blur.\\n+ **ERODE** Reduces the light areas. No parameter is used.\\n+ **DILATE** Increases the light areas. No parameter is used.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/filter_.html)\\n\\n@param `kind` Either THRESHOLD, GRAY, OPAQUE, INVERT, POSTERIZE, BLUR, ERODE, or DILATE\\n\\n@param `param` unique for each, see above\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.2.17\",\"OPB64name\":\"J5OdQ6G_RV\"},{\"name\":\"Pget\",\"detail\":\"pg<PGRAPHICS>  Pget  pg<PGRAPHICS> img<PIMAGE>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER>  Pget  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> w<NUMBER> h<NUMBER>  Pget  pg<PGRAPHICS> img<PIMAGE>\",\"documentation\":\"Reads the color of any pixel or grabs a section of an image. If no parameters are specified, the entire image is returned (same as `Pcopy`). Use the **x** and **y** parameters to get the value of one pixel. Get a section of the display window by specifying additional **w** and **h** parameters. When getting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\nIf the pixel requested is outside of the image window, black is returned. The numbers returned are scaled according to the current color ranges, but only RGB values are returned by this function. For example, even though you may have drawn a shape with **colorMode(HSB)**, the numbers returned will be in RGB format.\\n\\nGetting the color of a single pixel with **get(x, y)** is easy, but not as fast as grabbing the data directly from [`Ppixels`](/doc/Ppixels).\\n\\n[Link to original Processing doc](https://processing.org/reference/get_.html)\\n\\n@param `x` int: x-coordinate of the pixel\\n\\n@param `y` int: y-coordinate of the pixel\\n\\n@param `w` int: width of pixel rectangle to get\\n\\n@param `h` int: height of pixel rectangle to get\\n\\n@param `img` PIMAGE object\\n\\n@param `color` Color of the pixel, 32bits ARGB format.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pget\"},{\"name\":\"Pgreen\",\"detail\":\"pg<PGRAPHICS> rgb<NUMBER>  Pgreen  pg<PGRAPHICS> green<DOUBLE>\",\"documentation\":\"Extracts the green value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pgreen` function is easy to use and understand, but it is slower than bit shifting. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/green_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `green` Green component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pgreen\"},{\"name\":\"Phue\",\"detail\":\"pg<PGRAPHICS> rgb<NUMBER>  Phue  pg<PGRAPHICS> hue<DOUBLE>\",\"documentation\":\"Extracts the hue value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/hue_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `hue` Hue component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Phue\"},{\"name\":\"Pimage\",\"detail\":\"pg<PGRAPHICS> img<PIMAGE> a<NUMBER> b<NUMBER>  Pimage  pg<PGRAPHICS>\\npg<PGRAPHICS> img<PIMAGE> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Pimage  pg<PGRAPHICS>\",\"documentation\":\"The `Pimage` function draws a Pimage (see [`Pdecode`](/doc/Pdecode)) on a PGraphic object.\\n\\nThe **img** parameter specifies the image to display and by default the **a** and **b** parameters define the location of its upper-left corner. The image is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PimageMode`](/doc/PimageMode) function can be used to change the way these parameters draw the image.\\n\\nThe color of an image may be modified with the [`Ptint`](/doc/Ptint) function. This function will maintain transparency for GIF and PNG images.\\n\\n[Link to original Processing doc](https://processing.org/reference/image_.html)\\n\\n@param `img` PImage: the image to display\\n\\n@param `a` float: x-coordinate of the image by default\\n\\n@param `b` float: y-coordinate of the image by default\\n\\n@param `c` float: width to display the image by default\\n\\n@param `d` float: height to display the image by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pimage\"},{\"name\":\"PimageMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PimageMode  pg<PGRAPHICS>\",\"documentation\":\"Modifies the location from which images are drawn by changing the way in which parameters given to [`Pimage`](/doc/Pimage) are intepreted.\\n\\nThe default mode is **imageMode(CORNER)**, which interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the upper-left corner of the image. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n**imageMode(CENTER)** interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the image's center point. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/imageMode_.html)\\n\\n@param `mode` could be CORNER or CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PimageMode\"},{\"name\":\"Plerp\",\"detail\":\"pg<PGRAPHICS> start<NUMBER> stop<NUMBER> amt<NUMBER>  Plerp  pg<PGRAPHICS>\",\"documentation\":\"Calculates a number between two numbers at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 equal to the first point, 0.1 is very near the first point, 0.5 is half-way in between, etc. The lerp function is convenient for creating motion along a straight path and for drawing dotted lines, or any linear interpolation.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerp_.html)\\n\\n@param `start` first value\\n\\n@param `stop` second value\\n\\n@param `amt` float between 0.0 and 1.0\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Plerp\"},{\"name\":\"PlerpColor\",\"detail\":\"pg<PGRAPHICS> c1<NUMBER> c2<NUMBER> amt<NUMBER>  PlerpColor  pg<PGRAPHICS> outcolor<LONG>\",\"documentation\":\"Calculates a color between two colors at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 is equal to the first point, 0.1 is very near the first point, 0.5 is halfway in between, etc. \\n\\nAn amount below 0 will be treated as 0. Likewise, amounts above 1 will be capped at 1. This is different from the behavior of `Plerp`, but necessary because otherwise numbers outside the range will produce strange and unexpected colors.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerpColor_.html)\\n\\n@param `c1` interpolate from this color\\n\\n@param `c2` interpolate to this color\\n\\n@param `amt` between 0.0 and 1.0\\n\\n@param `outcolor` the interpolated result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PlerpColor\"},{\"name\":\"Pline\",\"detail\":\"pg<PGRAPHICS> x1<NUMBER> y1<NUMBER> x2<NUMBER> y2<NUMBER>  Pline  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<NUMBER> y1<NUMBER> z1<NUMBER> x2<NUMBER> y2<NUMBER> z2<NUMBER>  Pline  pg<PGRAPHICS>\",\"documentation\":\"Draws a line (a direct path between two points) to the screen. The version of `Pline` with four parameters draws the line in 2D.  To color a line, use the [`Pstroke`](/doc/Pstroke) function. A line cannot be filled, therefore the [`Pfill`](/doc/Pfill) function will not affect the color of a line. 2D lines are drawn with a width of one pixel by default, but this can be changed with the [`PstrokeWeight`](/doc/PstrokeWeight) function. The version with six parameters allows the line to be placed anywhere within XYZ space. Drawing this shape in 3D with the **z** parameter requires the P3D parameter.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/line_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pline\"},{\"name\":\"PloadShape\",\"detail\":\"svg<STRING>  PloadShape  Pshape<PSHAPE>\",\"documentation\":\"`PloadShape` can load a [SVG image](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) and return a PSHAPE object. WarpScript does not support [OBJ files](https://en.wikipedia.org/wiki/Wavefront_.obj_file) yet. \\n\\nThis feature is experimental, some files may render empty. \\n\\n@param `svg` A one line or a multiline SVG string.\\n\\n@param `Pshape` A PSHAPE object which can be used with Pshape.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"PloadShape\"},{\"name\":\"Pmag\",\"detail\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER>  Pmag  pg<PGRAPHICS> mag<DOUBLE>\",\"documentation\":\"Calculates the magnitude (or length) of a vector. A vector is a direction in space commonly used in computer graphics and linear algebra. Because it has no \\\"start\\\" position, the magnitude of a vector can be thought of as the distance from the coordinate 0,0 to its x,y value. Therefore, `Pmag` is a shortcut for writing **0 0 x y Pdist**. It is exactly the same as warpscript function [`HYPOT`](/doc/HYPOT).\\n\\n3D is not yet supported.\\n\\n[Link to original Processing doc](https://processing.org/reference/mag_.html)\\n\\n@param `a` first value\\n\\n@param `b` second value\\n\\n@param `mag` result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmag\"},{\"name\":\"Pmap\",\"detail\":\"pg<PGRAPHICS> value<DOUBLE> start1<DOUBLE> stop1<DOUBLE> start2<DOUBLE> stop2<DOUBLE>  Pmap  pg<PGRAPHICS> output<DOUBLE>\",\"documentation\":\"Re-maps a number from one range to another.\\n\\nIn the first example, the number 25 is converted from a value in the range of 0 to 100 into a value that ranges from the left edge of the window (0) to the right edge (width).\\n\\n\\nAs shown in the second example, numbers outside of the range are not clamped to the minimum and maximum parameters values, because out-of-range values are often intentional and useful.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/map_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start1` lower bound of the value's current range\\n\\n@param `stop1` upper bound of the value's current range\\n\\n@param `start2` lower bound of the value's target range\\n\\n@param `stop2` upper bound of the value's target range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmap\"},{\"name\":\"Pmask\",\"detail\":\"orginal_img<PIMAGE> mask_image<PIMAGE>  Pmask  masked_image<PIMAGE>\\norginal_grp<PGRAPHICS> mask_image<PIMAGE>  Pmask  masked_grp<PGRAPHICS>\\norginal_img<PIMAGE> mask_grp<PGRAPHICS>  Pmask  masked_image<PIMAGE>\\norginal_grp<PGRAPHICS> mask_grp<PGRAPHICS>  Pmask  masked_grp<PGRAPHICS>\",\"documentation\":\"The `Pmask` function copies the blue channel of an image to the alpha channel of an other.\\n\\nAs **PGRAPHICS** intances are alse **PIMAGE** instances, you can use this function with **PGRAPHICS**.\\n\\n@param `orginal_img` PImage to be masked\\n\\n@param `mask_image` Pimage to serve as mask\\n\\n@param `masked_image` Masked Pimage\\n\\n@param `orginal_grp` PGraphics to be masked\\n\\n@param `mask_grp` PGraphics to serve as mask\\n\\n@param `masked_grp` Masked PGraphics\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.7.0\",\"OPB64name\":\"Pmask\"},{\"name\":\"PnoClip\",\"detail\":\"pg<PGRAPHICS>  PnoClip  pg<PGRAPHICS>\",\"documentation\":\"Disables the clipping previously started by the [`Pclip`](/doc/Pclip) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noClip_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoClip\"},{\"name\":\"PnoFill\",\"detail\":\"pg<PGRAPHICS>  PnoFill  pg<PGRAPHICS>\",\"documentation\":\"Disables filling geometry. If both [`PnoStroke`](/doc/PnoStroke) and `PnoFill` are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noFill_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoFill\"},{\"name\":\"PnoStroke\",\"detail\":\"pg<PGRAPHICS>  PnoStroke  pg<PGRAPHICS>\",\"documentation\":\"Disables drawing the stroke (outline). If both `PnoStroke` and [`PnoFill`](/doc/PnoFill) are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noStroke_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoStroke\"},{\"name\":\"PnoTint\",\"detail\":\"pg<PGRAPHICS>  PnoTint  pg<PGRAPHICS>\",\"documentation\":\"Removes the current fill value for displaying images and reverts to displaying images with their original hues.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noTint_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoTint\"},{\"name\":\"Pnorm\",\"detail\":\"pg<PGRAPHICS> value<NUMBER> start<NUMBER> stop<NUMBER>  Pnorm  pg<PGRAPHICS> output<DOUBLE>\",\"documentation\":\"Normalizes a number from another range into a value between 0 and 1. Identical to `value low high 0 1 Pmap`.\\n\\nNumbers outside of the range are not clamped to 0 and 1, because out-of-range values are often intentional and useful. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/norm_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start` lower bound of the value's current range\\n\\n@param `stop` upper bound of the value's current range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pnorm\"},{\"name\":\"Ppixels\",\"detail\":\"pg<PGRAPHICS>  Ppixels  pg<PGRAPHICS> pixels<LIST<LONG>>\\nimg<PIMAGE>  Ppixels  pixels<LIST<LONG>>\",\"documentation\":\"Returns an array containing the values for all the pixels in the display window. These values are of the color datatype. This array is the size of the display window. For example, if the image is 100x100 pixels, there will be 10000 values and if the window is 200x300 pixels, there will be 60000 values. After **pixels** has been modified, the [`PupdatePixels`](/doc/PupdatePixels) function must be run to update the content of the display window.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pixels.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppixels\"},{\"name\":\"Ppoint\",\"detail\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  Ppoint  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  Ppoint  pg<PGRAPHICS>\",\"documentation\":\"Draws a point, a coordinate in space at the dimension of one pixel. The first parameter is the horizontal value for the point, the second value is the vertical value for the point.\\n\\nUse [`Pstroke`](/doc/Pstroke) to set the color of a `Ppoint`.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/point_.html)\\n\\n@param `x` x-coordinate of the point\\n\\n@param `y` y-coordinate of the point\\n\\n@param `z` z-coordinate of the point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppoint\"},{\"name\":\"PpopMatrix\",\"detail\":\"pg<PGRAPHICS>  PpopMatrix  pg<PGRAPHICS>\",\"documentation\":\"Pops the current transformation matrix off the matrix stack. Understanding pushing and popping requires understanding the concept of a matrix stack. The [`PpushMatrix`](/doc/PpushMatrix) function saves the current coordinate system to the stack and `PpopMatrix` restores the prior coordinate system. [`PpushMatrix`](/doc/PpushMatrix) and `PpopMatrix` are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopMatrix\"},{\"name\":\"PpopStyle\",\"detail\":\"pg<PGRAPHICS>  PpopStyle  pg<PGRAPHICS>\",\"documentation\":\"The [`PpushStyle`](/doc/PpushStyle) function saves the current style settings and `PpopStyle` restores the prior settings; these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with [`PpushStyle`](/doc/PpushStyle), it builds on the current style information. The [`PpushStyle`](/doc/PpushStyle) and `PpopStyle` functions can be nested to provide more control (see example for a demonstration.)\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopStyle\"},{\"name\":\"PpushMatrix\",\"detail\":\"pg<PGRAPHICS>  PpushMatrix  pg<PGRAPHICS>\",\"documentation\":\"Pushes the current transformation matrix onto the matrix stack. Understanding `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) requires understanding the concept of a matrix stack. The `PpushMatrix` function saves the current coordinate system to the stack and [`PpopMatrix`](/doc/PpopMatrix) restores the prior coordinate system. `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushMatrix\"},{\"name\":\"PpushStyle\",\"detail\":\"pg<PGRAPHICS>  PpushStyle  pg<PGRAPHICS>\",\"documentation\":\"The `PpushStyle` function saves the current style settings and [`PpopStyle`](/doc/PpopStyle) restores the prior settings. Note that these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with `PpushStyle`, it builds on the current style information. The `PpushStyle` and [`PpopStyle`](/doc/PpopStyle) functions can be nested to provide more control. (See example for a demonstration.)\\n\\n\\nThe style information controlled by the following functions are included in the style:fill, stroke, tint, strokeWeight, strokeCap, strokeJoin, imageMode, rectMode, ellipseMode, shapeMode, colorMode, textAlign, textFont, textMode, textSize, textLeading, emissive, specular, shininess, ambient.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushStyle\"},{\"name\":\"Pquad\",\"detail\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  Pquad  pg<PGRAPHICS>\",\"documentation\":\"A quad is a quadrilateral, a four sided polygon. It is similar to a rectangle, but the angles between its edges are not constrained to ninety degrees. The first pair of parameters (x1,y1) sets the first vertex and the subsequent pairs should proceed clockwise or counter-clockwise around the defined shape.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quad_.html)\\n\\n@param `x1` float: x-coordinate of the first corner\\n\\n@param `y1` float: y-coordinate of the first corner\\n\\n@param `x2` float: x-coordinate of the second corner\\n\\n@param `y2` float: y-coordinate of the second corner\\n\\n@param `x3` float: x-coordinate of the third corner\\n\\n@param `y3` float: y-coordinate of the third corner\\n\\n@param `x4` float: x-coordinate of the fourth corner\\n\\n@param `y4` float: y-coordinate of the fourth corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pquad\"},{\"name\":\"PquadraticVertex\",\"detail\":\"pg<PGRAPHICS> cx<DOUBLE> cy<DOUBLE> x3<DOUBLE> y3<DOUBLE>  PquadraticVertex  pg<PGRAPHICS>\",\"documentation\":\"Specifies vertex coordinates for quadratic Bezier curves. Each call to `PquadraticVertex` defines the position of one control point and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PquadraticVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when there is no MODE parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quadraticVertex_.html)\\n\\n@param `cx` the x-coordinate of the control point\\n\\n@param `cy` the y-coordinate of the control point\\n\\n@param `x3` the x-coordinate of the anchor point\\n\\n@param `y3` the y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PquadraticVertex\"},{\"name\":\"Prect\",\"detail\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Prect  pg<PGRAPHICS>\\npg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER> r<NUMBER>  Prect  pg<PGRAPHICS>\\npg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER> tl<NUMBER> tr<NUMBER> br<NUMBER> bl<NUMBER>  Prect  pg<PGRAPHICS>\",\"documentation\":\"Draws a rectangle to the screen. A rectangle is a four-sided shape with every angle at ninety degrees. By default, the first two parameters set the location of the upper-left corner, the third sets the width, and the fourth sets the height. The way these parameters are interpreted, however, may be changed with the [`PrectMode`](/doc/PrectMode) function.\\n\\n\\n\\nTo draw a rounded rectangle, add a fifth parameter, which is used as the radius value for all four corners.\\n\\n\\n\\nTo use a different radius value for each corner, include eight parameters. When using eight parameters, the latter four set the radius of the arc at each corner separately, starting with the top-left corner and moving clockwise around the rectangle.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rect_.html)\\n\\n@param `a` float: x-coordinate of the rectangle by default\\n\\n@param `b` float: y-coordinate of the rectangle by default\\n\\n@param `c` float: width of the rectangle by default\\n\\n@param `d` float: height of the rectangle by default\\n\\n@param `r` float: radii for all four corners\\n\\n@param `tl` float: radius for top-left corner\\n\\n@param `tr` float: radius for top-right corner\\n\\n@param `br` float: radius for bottom-right corner\\n\\n@param `bl` float: radius for bottom-left corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Prect\"},{\"name\":\"PrectMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PrectMode  pg<PGRAPHICS>\",\"documentation\":\"Modifies the location from which rectangles are drawn by changing the way in which parameters given to [`Prect`](/doc/Prect) are intepreted.\\n\\nThe default mode is **CORNER**, which interprets the first two parameters of [`Prect`](/doc/Prect) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**CORNERS** interprets the first two parameters of [`Prect`](/doc/Prect) as the location of one corner, and the third and fourth parameters as the location of the opposite corner.\\n\\n**CENTER** interprets the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**RADIUS** also uses the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, but uses the third and fourth parameters to specify half of the shape's width and height.\\n\\nThe parameter must be written in ALL CAPS because Processing is a case-sensitive language.\\n\\n[Link to original Processing doc](https://processing.org/reference/rectMode_.html)\\n\\n@param `mode` either CORNER, CORNERS, CENTER, or RADIUS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PrectMode\"},{\"name\":\"Pred\",\"detail\":\"pg<PGRAPHICS> rgb<NUMBER>  Pred  pg<PGRAPHICS> red<DOUBLE>\",\"documentation\":\"Extracts the red value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pred` function is easy to use and understand, but it is slower than bit shifting. \\n\\n[Link to original Processing doc](https://processing.org/reference/red_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `red` Red component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pred\"},{\"name\":\"PresetMatrix\",\"detail\":\"pg<PGRAPHICS>  PresetMatrix  pg<PGRAPHICS>\",\"documentation\":\"Replaces the current matrix with the identity matrix. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/resetMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PresetMatrix\"},{\"name\":\"Presize\",\"detail\":\"img<PIMAGE> width<LONG> height<LONG>  Presize  resized<PIMAGE>\",\"documentation\":\"The `Presize` function takes a **PIMAGE**, a width and a height and resizes the **PIMAGE**. This resizing does bilinear interpolation, which results in a smoother image than using [`Pimage`](/doc/Pimage) to resize.\\n\\n@param `height` New height of the image.\\n\\n@param `width` New width of the image.\\n\\n@param `img` Image to be resized\\n\\n@param `resized` Resized image.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.7.3\",\"OPB64name\":\"Presize\"},{\"name\":\"Protate\",\"detail\":\"pg<PGRAPHICS> angle<NUMBER>  Protate  pg<PGRAPHICS>\",\"documentation\":\"Rotates the amount specified by the **angle** parameter. Angles must be specified in radians (values from **0** to **2 PI**). \\n\\nThe coordinates are always rotated around their relative position to the origin. Positive numbers rotate objects in a clockwise direction and negative numbers rotate in the couterclockwise direction. Transformations apply to everything that happens afterward, and subsequent calls to the function compound the effect. For example, calling `pi 2.0 / Protate` once and then calling `pi 2.0 / Protate` a second time is the same as a single `pi Protate`. \\n \\n\\nTechnically, `Protate` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rotate_.html)\\n\\n@param `angle` angle of rotation specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Protate\"},{\"name\":\"Psaturation\",\"detail\":\"pg<PGRAPHICS> rgb<NUMBER>  Psaturation  pg<PGRAPHICS> saturation<DOUBLE>\",\"documentation\":\"Extracts the saturation value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/saturation_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `saturation` Saturation component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psaturation\"},{\"name\":\"Pscale\",\"detail\":\"pg<PGRAPHICS> s<NUMBER>  Pscale  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER>  Pscale  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  Pscale  pg<PGRAPHICS>\",\"documentation\":\"Increases or decreases the size of a shape by expanding and contracting vertices. Objects always scale from their relative origin to the coordinate system. Scale values are specified as decimal percentages. For example, the function call `2.0 Pscale` increases the dimension of a shape by 200%.\\n\\n\\n\\nTransformations apply to everything that happens after and subsequent calls to the function multiply the effect. For example, calling `2.0 Pscale` and then `1.5 Pscale` is the same as `3.0 Pscale`. This function can be further controlled with [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/scale_.html)\\n\\n@param `s` percentage to scale the object\\n\\n@param `x` percentage to scale the object in the x-axis\\n\\n@param `y` percentage to scale the object in the y-axis\\n\\n@param `z` percentage to scale the object in the z-axis\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pscale\"},{\"name\":\"Pset\",\"detail\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER> c<NUMBER>  Pset  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> img<PIMAGE>  Pset  pg<PGRAPHICS>\",\"documentation\":\"Changes the color of any pixel, or writes an image directly to the display window.\\n\\n\\n\\nThe **x** and **y** parameters specify the pixel to change and the **c** parameter specifies the color value. The **c** parameter is interpreted according to the current color mode.  (The default color mode is RGB values from 0 to 255.)  When setting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\n\\n\\nSetting the color of a single pixel with **set(x, y)** is easy, but not as fast as putting the data directly into the list of pixels returned by  [`Ppixels`](/doc/Ppixels).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/set_.html)\\n\\n@param `x` X-coordinate of the pixel\\n\\n@param `y` Y-coordinate of the pixel\\n\\n@param `c` Any value of the color datatype\\n\\n@param `img` Image to copy into the original image\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pset\"},{\"name\":\"Pshape\",\"detail\":\"pg<PGRAPHICS> shape<PSHAPE>  Pshape  pg<PGRAPHICS>\\npg<PGRAPHICS> shape<PSHAPE> x<DOUBLE> y<DOUBLE>  Pshape  pg<PGRAPHICS>\\npg<PGRAPHICS> shape<PSHAPE> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE>  Pshape  pg<PGRAPHICS>\",\"documentation\":\"Draws shapes to the display window. Shapes must be loaded with [`PloadShape`](/doc/PloadShape). Processing currently works with SVG, OBJ, and custom-created shapes. WrapScript only support SVG. The **shape** parameter specifies the shape to display and the coordinate parameters define the location of the shape from its upper-left corner. The shape is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PshapeMode`](/doc/PshapeMode) function can be used to change the way these parameters are interpreted.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shape_.html)\\n\\n@param `shape` the shape to display\\n\\n@param `x` x-coordinate of the shape\\n\\n@param `y` y-coordinate of the shape\\n\\n@param `a` x-coordinate of the shape\\n\\n@param `b` y-coordinate of the shape\\n\\n@param `c` width to display the shape\\n\\n@param `d` height to display the shape\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"Pshape\"},{\"name\":\"PshapeMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PshapeMode  pg<PGRAPHICS>\",\"documentation\":\"Modifies the location from which shapes draw. The default mode is **shapeMode(CORNER)**, which specifies the location to be the upper left corner of the shape and uses the third and fourth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. The syntax **shapeMode(CORNERS)** uses the first and second parameters of [`Pshape`](/doc/Pshape) to set the location of one corner and uses the third and fourth parameters to set the opposite corner. The syntax **shapeMode(CENTER)** draws the shape from its center point and uses the third and forth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shapeMode_.html)\\n\\n@param `mode` int: either CORNER, CORNERS, CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshapeMode\"},{\"name\":\"PshearX\",\"detail\":\"pg<PGRAPHICS> angle<NUMBER>  PshearX  pg<PGRAPHICS>\",\"documentation\":\"Shears a shape around the x-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearX` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearX_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearX\"},{\"name\":\"PshearY\",\"detail\":\"pg<PGRAPHICS> angle<NUMBER>  PshearY  pg<PGRAPHICS>\",\"documentation\":\"Shears a shape around the y-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearY` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearY_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearY\"},{\"name\":\"Psize\",\"detail\":\"img<PIMAGE>  Psize  width<LONG> height<LONG>\\npg<PGRAPHICS>  Psize  width<LONG> height<LONG>\",\"documentation\":\"The `Psize` function returns the pixel `width` and `height` of a Pimage or PGraphics object.\\n\\n@param `img` PImage instance to measure.\\n\\n@param `pg` PGraphics instance to measure.\\n\\n@param `height` Object height in pixels.\\n\\n@param `width` Object height in pixels.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.6.0\",\"OPB64name\":\"Psize\"},{\"name\":\"Psphere\",\"detail\":\"pg<PGRAPHICS> r<NUMBER>  Psphere  pg<PGRAPHICS>\",\"documentation\":\"A sphere is a hollow ball made from tessellated triangles.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphere_.html)\\n\\n@param `r` the radius of the sphere\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psphere\"},{\"name\":\"PsphereDetail\",\"detail\":\"pg<PGRAPHICS> res<NUMBER>  PsphereDetail  pg<PGRAPHICS>\\npg<PGRAPHICS> ures<NUMBER> vres<NUMBER>  PsphereDetail  pg<PGRAPHICS>\",\"documentation\":\"Controls the detail used to render a sphere by adjusting the number of vertices of the sphere mesh. The default resolution is 30, which creates a fairly detailed sphere definition with vertices every 360/30 = 12 degrees. If you are going to render a great number of spheres per frame, it is advised to reduce the level of detail using this function. The setting stays active until `PsphereDetail` is called again with a new parameter and so should **not** be called prior to every [`Psphere`](/doc/Psphere) statement, unless you wish to render spheres with different settings, e.g. using less detail for smaller spheres or ones further away from the camera. To control the detail of the horizontal and vertical resolution independently, use the version of the functions with two parameters.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphereDetail_.html)\\n\\n@param `res` int: number of segments (minimum 3) used per full circle revolution\\n\\n@param `ures` int: number of segments used longitudinally per full circle revolutoin\\n\\n@param `vres` int: number of segments used latitudinally from top to bottom\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PsphereDetail\"},{\"name\":\"Pstroke\",\"detail\":\"pg<PGRAPHICS> argb<LONG>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> argb<LONG> alpha<DOUBLE>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE> alpha<DOUBLE>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Pstroke  pg<PGRAPHICS>\",\"documentation\":\"Sets the color used to draw lines and borders around shapes. This color is either specified in terms of the RGB or HSB color depending on the current **colorMode** The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/stroke_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pstroke\"},{\"name\":\"PstrokeCap\",\"detail\":\"pg<PGRAPHICS> cap<STRING>  PstrokeCap  pg<PGRAPHICS>\",\"documentation\":\"Sets the style for rendering line endings. These ends are either squared, extended, or rounded, each of which specified with the corresponding parameters: SQUARE, PROJECT, and ROUND. The default cap is ROUND.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeCap_.html)\\n\\n@param `cap` Either SQUARE, PROJECT, or ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeCap\"},{\"name\":\"PstrokeJoin\",\"detail\":\"pg<PGRAPHICS> join<STRING>  PstrokeJoin  pg<PGRAPHICS>\",\"documentation\":\"Sets the style of the joints which connect line segments. These joints are either mitered, beveled, or rounded and specified with the corresponding parameters MITER, BEVEL, and ROUND. The default joint is MITER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeJoin_.html)\\n\\n@param `join` Either MITER, BEVEL, ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeJoin\"},{\"name\":\"PstrokeWeight\",\"detail\":\"pg<PGRAPHICS> weight<NUMBER>  PstrokeWeight  pg<PGRAPHICS>\",\"documentation\":\"Sets the width of the stroke used for lines, points, and the border around shapes. All widths are set in units of pixels.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight. See [`Ppoint`](/doc/Ppoint) example.\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeWeight_.html)\\n\\n@param `weight` The weight (in pixels) of the stroke.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeWeight\"},{\"name\":\"Ptext\",\"detail\":\"pg<PGRAPHICS> s<STRING> x<DOUBLE> y<DOUBLE>  Ptext  pg<PGRAPHICS>\\npg<PGRAPHICS> s<STRING> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE>  Ptext  pg<PGRAPHICS>\",\"documentation\":\"Draws text to the screen. Displays the information specified in the first parameter on the screen in the position specified by the additional parameters. A default font will be used unless a font is set with the [`PtextFont`](/doc/PtextFont) function and a default size will be used unless a font is set with [`PtextSize`](/doc/PtextSize). Change the color of the text with the [`Pfill`](/doc/Pfill) function. The text displays in relation to the [`PtextAlign`](/doc/PtextAlign) function, which gives the option to draw to the left, right, and center of the coordinates.\\n\\n\\n\\nThe **x2** and **y2** parameters define a rectangular area to display within and may only be used with string data. When these parameters are specified, they are interpreted based on the current [`PrectMode`](/doc/PrectMode) setting. Text that does not fit completely within the rectangle specified will not be drawn to the screen.\\n\\n\\n\\nNote that Processing now lets you call `Ptext` without first specifying a PFont with [`PtextFont`](/doc/PtextFont). In that case, a generic sans-serif font will be used instead.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/text_.html)\\n\\n@param `s` the string to be displayed\\n\\n@param `x` by default, x-coordinate of text\\n\\n@param `y` by default, y-coordinate of text\\n\\n@param `x1` by default, the x-coordinate of text, see PrectMode for more info\\n\\n@param `y1` by default, the y-coordinate of text, see PrectMode for more info\\n\\n@param `x2` by default, the width of the text box, see PrectMode for more info\\n\\n@param `y2` by default, the height of the text box, see PrectMode for more info\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptext\"},{\"name\":\"PtextAlign\",\"detail\":\"pg<PGRAPHICS> alignX<STRING>  PtextAlign  pg<PGRAPHICS>\\npg<PGRAPHICS> alignX<STRING> alignY<STRING>  PtextAlign  pg<PGRAPHICS>\",\"documentation\":\"Sets the current alignment for drawing text. The parameters LEFT, CENTER, and RIGHT set the display characteristics of the letters in relation to the values for the **x** and **y** parameters of the [`Ptext`](/doc/Ptext) function.\\n\\n\\n\\nAn optional second parameter can be used to vertically align the text. BASELINE is the default, and the vertical alignment will be reset to BASELINE if the second parameter is not used. The TOP and CENTER parameters are straightforward. The BOTTOM parameter offsets the line based on the current [`PtextDescent`](/doc/PtextDescent). For multiple lines, the final line will be aligned to the bottom, with the previous lines appearing above it.\\n\\n\\n\\nWhen using [`Ptext`](/doc/Ptext) with width and height parameters, BASELINE is ignored, and treated as TOP. (Otherwise, text would by default draw outside the box, since BASELINE is the default setting. BASELINE is not a useful drawing mode for text drawn in a rectangle.)\\n\\n\\n\\nThe vertical alignment is based on the value of [`PtextAscent`](/doc/PtextAscent), which many fonts do not specify correctly. It may be necessary to use a hack and offset by a few pixels by hand so that the offset looks correct. To do this as less of a hack, use some percentage of [`PtextAscent`](/doc/PtextAscent) or [`PtextDescent`](/doc/PtextDescent) so that the hack works even if you change the size of the font.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAlign_.html)\\n\\n@param `alignX` Horizontal alignment, either LEFT, CENTER, or RIGHT\\n\\n@param `alignY` Vertical alignment, either TOP, BOTTOM, CENTER, or BASELINE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAlign\"},{\"name\":\"PtextAscent\",\"detail\":\"pg<PGRAPHICS>  PtextAscent  pg<PGRAPHICS> ascent<DOUBLE>\",\"documentation\":\"Returns ascent of the current font at its current size. This information is useful for determining the height of the font above the baseline. For example, adding the `PtextAscent` and [`PtextDescent`](/doc/PtextDescent) values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAscent_.html)\\n\\n@param `ascent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAscent\"},{\"name\":\"PtextDescent\",\"detail\":\"pg<PGRAPHICS>  PtextDescent  pg<PGRAPHICS> descent<DOUBLE>\",\"documentation\":\"Returns descent of the current font at its current size. This information is useful for determining the height of the font below the baseline. For example, adding the [`PtextAscent`](/doc/PtextAscent) and `PtextDescent` values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textDescent_.html)\\n\\n@param `descent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextDescent\"},{\"name\":\"PtextFont\",\"detail\":\"pg<PGRAPHICS> font<PFONT>  PtextFont  pg<PGRAPHICS>\\npg<PGRAPHICS> font<PFONT> size<NUMBER>  PtextFont  pg<PGRAPHICS>\",\"documentation\":\"Sets the current font that will be drawn with the [`Ptext`](/doc/Ptext) function. Fonts must be created for Processing with [`PcreateFont`](/doc/PcreateFont) before they can be used. The font set through `PtextFont` will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textFont_.html)\\n\\n@param `font` Any variable of the type PFont\\n\\n@param `size` the size of the letters in pixel.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextFont\"},{\"name\":\"PtextLeading\",\"detail\":\"pg<PGRAPHICS> leading<NUMBER>  PtextLeading  pg<PGRAPHICS>\",\"documentation\":\"Sets the spacing between lines of text in units of pixels. This setting will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.  Note, however, that the leading is reset by [`PtextSize`](/doc/PtextSize). For example, if the leading is set to 20 with `20 PtextLeading`, then if `48 PtextSize` is run at a later point, the leading will be reset to the default for the text size of 48.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textLeading_.html)\\n\\n@param `leading` The size in pixels for spacing between lines\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextLeading\"},{\"name\":\"PtextMode\",\"detail\":\"pg<PGRAPHICS> mode<STRING>  PtextMode  pg<PGRAPHICS>\",\"documentation\":\"Sets the way text draws to the screen, either as texture maps or as vector geometry. The default **textMode(MODEL)**, uses textures to render the fonts. The **textMode(SHAPE)** mode draws text using the glyph outlines of individual characters rather than as textures. This mode is only supported with the **PDF** and **P3D** renderer settings. With the **PDF** renderer, you must call **textMode(SHAPE)** before any other drawing occurs. If the outlines are not available, then **textMode(SHAPE)** will be ignored and **textMode(MODEL)** will be used instead.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textMode_.html)\\n\\n@param `mode` int: either MODEL or SHAPE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextMode\"},{\"name\":\"PtextSize\",\"detail\":\"pg<PGRAPHICS> size<NUMBER>  PtextSize  pg<PGRAPHICS>\",\"documentation\":\"Sets the current font size. This size will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function. Font size is measured in units of pixels.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textSize_.html)\\n\\n@param `size` float: the size of the letters in units of pixels\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextSize\"},{\"name\":\"PtextWidth\",\"detail\":\"pg<PGRAPHICS> str<STRING>  PtextWidth  pg<PGRAPHICS> w<DOUBLE>\",\"documentation\":\"Calculates and returns the width of any character or text string.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textWidth_.html)\\n\\n@param `str` The String of characters to measure\\n\\n@param `w` The width of the input string\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextWidth\"},{\"name\":\"Ptint\",\"detail\":\"pg<PGRAPHICS> argb<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> argb<NUMBER> alpha<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Ptint  pg<PGRAPHICS>\",\"documentation\":\"Sets the fill value for displaying images. Images can be tinted to specified colors or made transparent by including an alpha value.\\n\\n\\n\\nTo apply transparency to an image without affecting its color, use white as the tint color and specify an alpha value. For instance, **tint(255, 128)** will make an image 50pc transparent (assuming the default alpha range of 0-255, which can be changed with [`PcolorMode`](/doc/PcolorMode)).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/tint_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `alpha` opacity of the image\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptint\"},{\"name\":\"PtoImage\",\"detail\":\"pg<PGRAPHICS>  PtoImage  img<PIMAGE>\",\"documentation\":\"The `PtoImage` function transforms a `PGRAPHICS` to a `PIMAGE`.\\n\\nThe `PGRAPHICS` can still be used after the transformation as this function copies the pixel values. This is equivalent to `Pencode Pdecode` but it is a lot faster.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing Pimage object.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.1.0\",\"OPB64name\":\"PtoImage\"},{\"name\":\"Ptranslate\",\"detail\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  Ptranslate  pg<PGRAPHICS>\",\"documentation\":\"Specifies an amount to displace objects within the display window. The **x** parameter specifies left/right translation, the **y** parameter specifies up/down translation.\\n\\n\\n\\nTransformations are cumulative and apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling **50 0 Ptranslate** and then **20 0 Ptranslate** is the same as **70 0 Ptranslate**. This function can be further controlled by using [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/translate_.html)\\n\\n@param `x` left/right translation\\n\\n@param `y` up/down translation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptranslate\"},{\"name\":\"Ptriangle\",\"detail\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE>  Ptriangle  pg<PGRAPHICS>\",\"documentation\":\"A triangle is a plane created by connecting three points. The first two arguments specify the first point, the middle two arguments specify the second point, and the last two arguments specify the third point. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/triangle_.html)\\n\\n@param `x1` float: x-coordinate of the first point\\n\\n@param `y1` float: y-coordinate of the first point\\n\\n@param `x2` float: x-coordinate of the second point\\n\\n@param `y2` float: y-coordinate of the second point\\n\\n@param `x3` float: x-coordinate of the third point\\n\\n@param `y3` float: y-coordinate of the third point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptriangle\"},{\"name\":\"PupdatePixels\",\"detail\":\"pg<PGRAPHICS> pixels<LIST<LONG>>  PupdatePixels  pg<PGRAPHICS>\\nimg<PIMAGE> pixels<LIST<LONG>>  PupdatePixels  img<PIMAGE>\",\"documentation\":\"Updates the display window with the data in the **pixels[]** array. Use in conjunction with [`Ppixels`](/doc/Ppixels). If you are only reading pixels from the array, there's no need to call `PupdatePixels` - updating is only necessary to apply changes.\\n\\n[Link to original Processing doc](https://processing.org/reference/updatePixels_.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PupdatePixels\"},{\"name\":\"Pvertex\",\"detail\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  Pvertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  Pvertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> u<NUMBER> v<NUMBER>  Pvertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER> u<NUMBER> v<NUMBER>  Pvertex  pg<PGRAPHICS>\",\"documentation\":\"All shapes are constructed by connecting a series of vertices. `Pvertex` is used to specify the vertex coordinates for points, lines, triangles, quads, and polygons. It is used exclusively within the [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/vertex_.html)\\n\\n@param `x` x-coordinate of the vertex\\n\\n@param `y` y-coordinate of the vertex\\n\\n@param `z` float: z-coordinate of the vertex\\n\\n@param `u` float: horizontal coordinate for the texture mapping\\n\\n@param `v` float: vertical coordinate for the texture mapping\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pvertex\"},{\"name\":\"Q->\",\"detail\":\"input<LONG>  Q->  w<DOUBLE> x<DOUBLE> y<DOUBLE> z<DOUBLE>\",\"documentation\":\"The `Q->` function consumes on the stack a [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long and push back the quaternion into\\n4 doubles (w, x, y, z, with z being on top).\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `input` Quaternion representation\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"JHoy\"},{\"name\":\"QCONJUGATE\",\"detail\":\"quaternion<LONG>  QCONJUGATE  result<LONG>\",\"documentation\":\"The `QCONJUGATE` function performs a [conjugation](https://en.wikipedia.org/wiki/Quaternion#Conjugation,_the_norm,_and_reciprocal) of a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the quaternion conjugate into a long.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `result` The conjugated quaternion\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QCONJUGATE\"},{\"name\":\"QDIVIDE\",\"detail\":\"q<LONG> r<LONG>  QDIVIDE  result<LONG>\",\"documentation\":\"The `QDIVIDE` function divides a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of dividing them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from division *q* by *r*\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QDIVIDE\"},{\"name\":\"QMULTIPLY\",\"detail\":\"q<LONG> r<LONG>  QMULTIPLY  result<LONG>\",\"documentation\":\"The `QMULTIPLY` function multiplies a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of multiplying them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from multiplication *q* by *r*\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QMULTIPLY\"},{\"name\":\"QROTATE\",\"detail\":\"x<DOUBLE> y<DOUBLE> z<DOUBLE> quaternion<LONG>  QROTATE  x<DOUBLE> y<DOUBLE> z<DOUBLE>\",\"documentation\":\"Rotates a vector by a [quaternion](https://en.wikipedia.org/wiki/Quaternion).\\n\\nThe `QROTATE` function consumes on the top of the stack three doubles representing a vector(x, y, z) and a long representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the vector rotated into 3 doubles (x, y, z with z being on top).\\n\\n@param `quaternion` The quaternion used to rotate the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATE\"},{\"name\":\"QROTATION\",\"detail\":\"quaternion<LONG>  QROTATION  x<DOUBLE> y<DOUBLE> z<DOUBLE> angle<DOUBLE>\",\"documentation\":\"The `QROTATION` extracts the axis and angle of the rotation represented by the [quaternion](https://en.wikipedia.org/wiki/Quaternion) on the stack.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `angle` The angle of rotation\\n\\n@param `x` The X axis\\n\\n@param `y` The Y axis\\n\\n@param `z` The Z axis\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATION\"},{\"name\":\"QUANTIZE\",\"detail\":\"gts<GTS> bounds<LIST<DOUBLE>> values<LIST>  QUANTIZE  qgts<GTS>\\nlgts<LIST<GTS>> bounds<LIST<DOUBLE>> values<LIST>  QUANTIZE  lqgts<LIST<GTS>>\",\"documentation\":\"The `QUANTIZE` function produces a quantized version of a Geo Time Series™ by replacing each value with a value from a finite list according to the interval the original value falls in. This function only works on numeric Geo Time Series™.\\nThis function can help to \\\"discretify\\\" data before calling [`VALUEHISTOGRAM`](/doc/VALUEHISTOGRAM).\\nThe list of intervals is defined as: [-∞,bounds<sub>0</sub>], (bounds<sub>0</sub>,bounds_<sub>1</sub>], (bounds<sub>1</sub>,bounds<sub>2</sub>], ..., (bounds<sub>n-1</sub>,+∞]\\n\\n@param `values` List of `n+1` values, one for each interval defined by `bounds`. If empty, the list `[ `0` `1` ... `n+1` ]` will be used.\\n\\n@param `bounds` Sorted list of `n` finite bounds defining `n+1` intervals.\\n\\n@param `gts` Geo Time Series™ to quantize.\\n\\n@param `qgts` Quantized GTS.\\n\\n@param `lgts` List of Geo Time Series™ to quantize.\\n\\n@param `lqgts` List of quantized GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"QUANTIZE\"},{\"name\":\"RAND\",\"detail\":\" RAND  num<DOUBLE>\",\"documentation\":\"The `RAND` function pushes onto the stack a random floating point number between 0.0 (inclusive) and 1.0 (exlusive) generated by the default random generator.\\n\\nThis generation is cryptographically secure.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RAND\"},{\"name\":\"RANDOM\",\"detail\":\" RANDOM  num<DOUBLE>\",\"documentation\":\"The `RANDOM` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThis function is very similar to [SRAND](/doc/SRAND) except the seed is choosen pseudorandomly when the function is first called. Subsequent calls use the same generator.\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"RANDOM\"},{\"name\":\"RANDPDF\",\"detail\":\"valueHistogram<MAP>  RANDPDF  result<STRING>\",\"documentation\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe result if a function pushed onto the stack. This function does not have any arguments.\\n\\nTo use the function pushed by `RANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.7\",\"OPB64name\":\"RANDPDF\"},{\"name\":\"RANGE\",\"detail\":\"[ end<LONG> ]  RANGE  output<LIST<LONG>>\\n[ start<LONG> end<LONG> ]  RANGE  output<LIST<LONG>>\\n[ start<LONG> end<LONG> step<LONG> ]  RANGE  output<LIST<LONG>>\",\"documentation\":\"`RANGE` pushes onto the stack a list of integers in the given range [start included, end excluded[. If start is not in the parameter list, start=0.\\n\\n`RANGE` also accepts a step parameter in the parameter list.\\n\\n\\n@param `start` The start of range, default is 0\\n\\n@param `end` The end of range\\n\\n@param `step` The step between integers, default is 1\\n\\n@param `output` The list of every integers in the range [start end[\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGE\"},{\"name\":\"RANGECOMPACT\",\"detail\":\"gts<GTS>  RANGECOMPACT  compacted<GTS>\\nlgts<LIST<GTS>>  RANGECOMPACT  lcompacted<LIST<GTS>>\",\"documentation\":\"The `RANGECOMPACT` simplifies a Geo Time Series™ by simplifying ranges of identical values (with identical latitude, longitude and elevation), retaining only the first and last ticks of each range.\\n\\n@param `gts` Geo Time Series™ to compact.\\n\\n@param `compacted` Compacted GTS.\\n\\n@param `lgts` List of Geo Time Series™ to compact.\\n\\n@param `lcompacted` List of compacted GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGECOMPACT\"},{\"name\":\"RAWDTW\",\"detail\":\"gts1<GTS> gts2<GTS> threshold<DOUBLE>  RAWDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> characteristic<STRING>  RAWDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> distance<STRING> characteristic<STRING>  RAWDTW  dtw<DOUBLE>\",\"documentation\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe computation is performed on the raw Geo Time Series™, no transformation is applied to them.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"RAWDTW\"},{\"name\":\"REDEFS\",\"detail\":\"flag<BOOLEAN>  REDEFS \",\"documentation\":\"The `REDEFS` function allows or disallows execution of redefined functions.\\n\\n@param `flag` Shall we allow or disallow the execution of redefined functions.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REDEFS\"},{\"name\":\"REDUCE\",\"detail\":\"[ gts<LIST<GTS>+> labels<LIST<STRING>> reducer<AGGREGATOR> ]  REDUCE  result<LIST<GTS>>\\n[ gts<LIST<GTS>+> labels<LIST<STRING>> reducer<AGGREGATOR> overrideTick<BOOLEAN> ]  REDUCE  result<LIST<GTS>>\",\"documentation\":\"The `REDUCE` framework groups Geo Time Series™ by equivalence classes based on label values and applies a function on each equivalence class of Geo Time Series™, considering the values of each tick and producing one GTS per equivalence class.\\n\\nAs the selected reducer function is applied tick by tick, it is usually wise to [`BUCKETIZE`](/doc/BUCKETIZE) the GTS first with a common value of `lastbucket`.\\n\\nThe labels whose values are common to all the GTS in an equivalence class will be retained.\\n\\nIf all the inputs are bucketized with the same bucket span and bucket end, the output of reduce will be bucketized too. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) if needed after `REDUCE`.\\n\\nSince 2.1 you can make REDUCE override the GTSs ticks. This usage in mainly to be used in conjuction with [`MACROREDUCER`](/doc/MACROREDUCER).\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` List of resulting Geo Time Series™.\\n\\n@param `overrideTick` Boolean, if true allows the reducer to modify the ticks of the GTSs. If not set, the reducer cannot modify the ticks.\\n\\n\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"REDUCE\"},{\"name\":\"RELABEL\",\"detail\":\"gts<GTS> labels<MAP>  RELABEL  gts<GTS>\\nlgts<LIST<GTS>> labels<MAP>  RELABEL  lgts<LIST<GTS>>\\nencoder<GTSENCODER> labels<MAP>  RELABEL  encoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> labels<MAP>  RELABEL  lencoder<LIST<GTSENCODER>>\",\"documentation\":\"Modifies the labels of a Geo Time Series™. The `RELABEL` function expects a parameter MAP whose entries are labels to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `RELABEL` function will use the rest of the MAP as the actual labels to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing labels.\\n\\nAn entry with an empty STRING value or a NULL value will have the effect of removing the label from the GTS' labels.        \\n\\n@param `labels` Parameter map of label names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `encoder` Encoder to relabel\\n\\n@param `lencoder` List of encoders to relabel\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RELABEL\"},{\"name\":\"REMOVE\",\"detail\":\"inputlist<LIST> index<LONG>  REMOVE  outputlist<LIST> removeditem<ANY>\\ninputmap<MAP> key<ANY>  REMOVE  outputmap<MAP> removeditem<ANY>\\ninputgts<GTS> pointindex<LONG>  REMOVE  outputgts<GTS> removedpoint<LIST>\",\"documentation\":\"Removes an entry from a MAP or from a LIST.\\n\\nThe `REMOVE` function consumes a list (or a map) and a index (or a key), then remove the entry.\\nIt lets the input on the stack and puts the removed item on top of the stack. \\nAs a result, the input map or list is modified and the map or list left on top of the stack is *not* a copy. \\n\\nIf the index is out of bound, the returned value is `NULL` and the list or array is unmodified.\\nIf the key does not exist in the map, it returns null as the removed entry.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **GTS**.\\n\\nSince 2.7, `REMOVE` can be called on a **GTS**.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `inputmap` The reference to the map to be modified\\n\\n@param `index` The index of the list, 0 for the first item\\n\\n@param `inputlist` The reference to the list to be modified\\n\\n@param `removeditem` Depending on map or list content, could be any type\\n\\n@param `outputmap` The input map modified\\n\\n@param `outputlist` The input list modified\\n\\n@param `pointindex` Index of the point in the GTS, 0-indexed, handles negative indexing.\\n\\n@param `inputgts` The GTS to remove the point from.\\n\\n@param `removedpoint` The removed point. List of timestamp, latitude, longitude, elevation and value.\\n\\n@param `outputgts` The acopy of the original GTS with the requested point removed.\\n\\n\",\"tags\":[\"maps\",\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"REMOVE\"},{\"name\":\"REMOVETICK\",\"detail\":\"gts<GTS> tick<LONG>  REMOVETICK  pruned<GTS>\\ngts<GTS> lticks<LIST<LONG>>  REMOVETICK  pruned<GTS>\\ngts<GTS> lticks<SET<LONG>>  REMOVETICK  pruned<GTS>\",\"documentation\":\"The `REMOVETICK` function transforms a Geo Time Series™ by removing all occurrences of a tick or ticks.\\n\\n@param `tick` Tick (timestamp) to remove.\\n\\n@param `lticks` List or Set of ticks to remove.\\n\\n@param `gts` Geo Time Series™ to transform.\\n\\n@param `pruned` Tranformed Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.19\",\"OPB64name\":\"REMOVETICK\"},{\"name\":\"RENAME\",\"detail\":\"gts<GTS> name<STRING>  RENAME  gts<GTS>\\nlgts<LIST<GTS>> name<STRING>  RENAME  lgts<LIST<GTS>>\\nencoder<GTSENCODER> name<STRING>  RENAME  encoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> name<STRING>  RENAME  lencoder<LIST<GTSENCODER>>\",\"documentation\":\"The `RENAME` function changes the name of a Geo Time Series™, an Encoder or a list thereof. This operation may be required prior to using some functions. If the name starts with '+', the specified name will be appended to the current name of the GTS or Encoder.\\n\\nIf you want to rename a Geo Time Series™ or an Encoder so its name starts with a '+', you must first set its name to the empty string then use rename with the desired name prefixed with an additional '+'.\\n\\n@param `gts` Geo Time Series™ instance to rename.\\n\\n@param `lgts` List of Geo Time Series™ instances to rename.\\n\\n@param `encoder` Encoder to rename.\\n\\n@param `lencoder` Encoder to rename.\\n\\n@param `name` New name to give to the GTS.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"RENAME\"},{\"name\":\"REOPTALT\",\"detail\":\"alternatives<LIST<STRING>>  REOPTALT  regexp<STRING>\",\"documentation\":\"Produces a **R**egular **E**xpression **OPT**imized for **ALT**ernation from a list of STRINGs. Large alternations in regular expressions can lead to excessive backtracking and poor matching performance. In order to mitigate this, the `REOPTALT` function will produce a regular expression from a list of STRINGs which reduces the backtracking thus leading to better matching performance.\\n\\n@param `alternatives` List of STRINGs which should be used in the alternation.\\n\\n@param `regexp` Regular expression\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.2.16\",\"OPB64name\":\"REOPTALT\"},{\"name\":\"REPLACE\",\"detail\":\"original<ANY> pattern<ANY> replacement<ANY>  REPLACE  result<STRING>\",\"documentation\":\"Replaces the first occurrence of a pattern by its substitution.\\n\\nThe `REPLACE` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with the replaced value if it was found\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACE\"},{\"name\":\"REPLACEALL\",\"detail\":\"original<ANY> pattern<ANY> replacement<ANY>  REPLACEALL  result<STRING>\",\"documentation\":\"Replaces all occurrence of a pattern by its substitution.\\n\\nThe `REPLACEALL` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with all occurrences of pattern replaced by its value\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACEALL\"},{\"name\":\"REPORT\",\"detail\":\"secret<STRING>  REPORT  report<STRING>\",\"documentation\":\"The `REPORT` function pushes onto the stack a STRING containing configuration and usage informations which can be useful when investigating issues.\\n\\n@param `secret` Secret configured for using the `REPORT` function.\\n\\n@param `report` Actual report.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"REPORT\"},{\"name\":\"RESET\",\"detail\":\"depth<LONG>  RESET \",\"documentation\":\"The `RESET` function resets the stack to the given depth, discarding any items above those 'depth' items.\\n\\n@param `depth` Depth at which the stack should be reset.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESET\"},{\"name\":\"RESETS\",\"detail\":\"gts<GTS> decreasingGTS<BOOLEAN>  RESETS  result<GTS>\\nlgts<LIST<GTS>> decreasingGTS<BOOLEAN>  RESETS  lresult<LIST<GTS>>\",\"documentation\":\"The `RESETS` functions transforms a numerical Geo Time Series™, shifting values so no offset (*i.e.* a decrease or increase of values) appears after the operation.\\n\\nThe parameter to `RESETS` determines if the Geo Time Series should be considered as decreasing instead of increasing.\\n\\n@param `decreasingGTS` Flag set to `true` to indicate the GTS is decreasing.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `lgts` List of Geo Time Series™ or list thereof to transform.\\n\\n@param `result` GTS with resets compensated.\\n\\n@param `lresult` List of GTS with resets compensated.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESETS\"},{\"name\":\"RESHAPE\",\"detail\":\"input<LIST> shape<LIST<LONG>>  RESHAPE  output<LIST>\",\"documentation\":\"The `RESHAPE` function modifies the shape of a list.\\n\\nThe new shape is specified using a list of dimensions, the first being the outer dimension. Such a shape can be produced by `SHAPE`.\\n\\nNote that the number of elements in the array must be compatible with the requested shape, i.e. the product of the dimensions must match the number of elements in the input list.\\n\\n@param `input` List to reshape.\\n\\n@param `shape` Shape specification, list of dimensions, the first element being the outer list.\\n\\n@param `output` Reshaped list.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"RESHAPE\"},{\"name\":\"RESTORE\",\"detail\":\"context<CONTEXT>  RESTORE \",\"documentation\":\"The `RESTORE` function resets the stack's symbol table to the state recorded in the context passed as parameter.\\n\\n@param `context` Stack context produced by [`SAVE`](doc/SAVE).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESTORE\"},{\"name\":\"RETHROW\",\"detail\":\" RETHROW \",\"documentation\":\"Inside the *catch* or *finally* macro of a [`TRY`](/doc/TRY), rethrows the last thrown error. If no error was previously thrown, `RETHROW` does nothing.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"RETHROW\"},{\"name\":\"RETURN\",\"detail\":\" RETURN \",\"documentation\":\"Returns immediately from the currently executing macro. If called outside a macro, `RETURN` will stop the execution of the current script, behaving like [`STOP`](/doc/STOP).\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"RETURN\"},{\"name\":\"REV\",\"detail\":\" REV  revision<STRING>\",\"documentation\":\"The `REV` function pushes onto the stack the revision of the Warp 10 instance.`\\n\\n@param `revision` Revision of the Warp 10 platform.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"REV\"},{\"name\":\"REVBITS\",\"detail\":\"long<LONG>  REVBITS  gnol<LONG>\",\"documentation\":\"Reverses the order of the bits of a LONG value.\\n\\n@param `long` LONG value from which to revert the bits.\\n\\n@param `gnol` LONG value whose bits are in reverse order compared to those of `long`.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVBITS\"},{\"name\":\"REVERSE\",\"detail\":\"originalList<LIST>  REVERSE  reversedObj<LIST>\\noriginalString<STRING>  REVERSE  reversedObj<STRING>\\noriginalString<BYTES>  REVERSE  reversedObj<BYTES>\",\"documentation\":\"Reverses the order of the elements of the list or the string.\\n\\nThe `REVERSE` function inverts the order of the elements of the list or the string on the top of the stack.\\nBeware, `REVERSE` do not create a new object. Use [`CLONEREVERSE`](/doc/CLONEREVERSE) if you want to keep input.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n\\n@param `originalList` The list to reverse\\n\\n@param `originalString` The string to reverse\\n\\n@param `reversedObj` The original object with the elements in reverse order\\n\\n\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVERSE\"},{\"name\":\"REXEC\",\"detail\":\"warpscript<STRING> endpoint<STRING>  REXEC  stack<ANY*>\",\"documentation\":\"The `REXEC` function executes some WarpScript code on a remote Warp 10 instance. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.0.8\",\"OPB64name\":\"REXEC\"},{\"name\":\"REXECZ\",\"detail\":\"warpscript<STRING> endpoint<STRING>  REXECZ  stack<ANY*>\",\"documentation\":\"The `REXECZ` function executes some WarpScript code on a remote Warp 10 instance just like [`REXEC`](/doc/REXEC) does, but compresses the WarpScript code prior to sending it. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REXECZ\"},{\"name\":\"RINT\",\"detail\":\"value<NUMBER>  RINT  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  RINT  lresult<LIST<DOUBLE>>\\ngts<GTS>  RINT  gtsresult<GTS>\",\"documentation\":\"The `RINT` function consumes a numeric parameter from the top of the stack and pushes back the DOUBLE the closest to the parameter and equal to a mathematical integer.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `result` Closest floating-point value to a that is equal to a mathematical integer.\\n\\n@param `lvalue` List of Numeric values.\\n\\n@param `lresult` List of closest floating-point values to a that is equal to a mathematical integer.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are closest floating-point values of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RINT\"},{\"name\":\"RIPEMD128\",\"detail\":\"input<BYTES>  RIPEMD128  result<BYTES>\",\"documentation\":\"The `RIPEMD128` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-128](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD128\"},{\"name\":\"RIPEMD160\",\"detail\":\"input<BYTES>  RIPEMD160  result<BYTES>\",\"documentation\":\"The `RIPEMD160` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-160](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD160\"},{\"name\":\"RIPEMD256\",\"detail\":\"input<BYTES>  RIPEMD256  result<BYTES>\",\"documentation\":\"The `RIPEMD256` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-256](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD256\"},{\"name\":\"RIPEMD320\",\"detail\":\"input<BYTES>  RIPEMD320  result<BYTES>\",\"documentation\":\"The `RIPEMD320` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-320](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD320\"},{\"name\":\"RLOWESS\",\"detail\":\"gts<GTS> q<LONG> r<LONG> d<LONG> p<LONG>  RLOWESS  result<GTS>\\ngtsList<LIST<GTS>> q<LONG> r<LONG> d<LONG> p<LONG>  RLOWESS  resultList<LIST<GTS>>\",\"documentation\":\"The `RLOWESS` function applies an iterative smoothing program on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is done via locally weighted regression, and is robust to outliers.\\n\\n> ### REFERENCE\\n>\\n> **Cleveland, W. S.** (1979) Robust locally weighted regression and smoothing scatter plots. J. American Statistical Association 74, 829–836.\\n>\\n> **Cleveland, W. S.** (1981) LOWESS: A program for smoothing scatter plots by robust locally weighted regression. The American Statistician 35, 54.\\n\\n@param `p` The degree for the polynomial fit of the regression\\n\\n@param `d` The delta radius (in time units) within which the local regression is computed only once (other points are interpolated). For very large datasets, it can be wise to set `d` > 0 to speed up the computations.\\n\\n@param `r` The number of robustifying iterations. The higher the value of `r`, the better the program is robust to outliers.\\n\\n@param `q` The bandwidth of the local regression. To obtain a good smoothing, it is advised to choose an odd number of at least 5.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RLOWESS\"},{\"name\":\"RLP->\",\"detail\":\"encoded<BYTES>  RLP->  decoded<ANY>\",\"documentation\":\"The `RLP->` function decodes a byte array containing [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoded content.\\n\\nNote that numbers are decoded as their byte representation, not actual `LONG`s.\\n\\n@param `encoded` RLP encoded content to decode.\\n\\n@param `decoded` Result of decoding.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"JZlFAIs\"},{\"name\":\"ROLL\",\"detail\":\"eltN<ANY> elt2<ANY> elt1<ANY> N<LONG>  ROLL  elt2<ANY> elt1<ANY> eltN<ANY>\",\"documentation\":\"`ROLL` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element at level *N* to the top of the stack and moving the other elements up one level.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLL\"},{\"name\":\"ROLLD\",\"detail\":\"eltN<ANY> elt2<ANY> elt1<ANY> N<LONG>  ROLLD  elt1<ANY> eltN<ANY> elt2<ANY>\",\"documentation\":\"`ROLLD` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element on top of the stack to level *N* and moving the other *N-1* elements down the stack.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLLD\"},{\"name\":\"ROT\",\"detail\":\"level3<ANY> level2<ANY> top<ANY>  ROT  level2<ANY> top<ANY> level3<ANY>\",\"documentation\":\"`ROT` cycles through the 3 topmost elements of the stack by moving the element at level 3 to the top of the stack and pushing the other 2 elements up the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n@param `level3` The element at the third level of the stack prior to the function execution\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROT\"},{\"name\":\"ROTATIONQ\",\"detail\":\"x<DOUBLE> y<DOUBLE> z<DOUBLE> angle<DOUBLE>  ROTATIONQ  quaternion<QUATERNION>\",\"documentation\":\"The `ROTATIONQ` function consumes on the stack 4 doubles representing a rotation vector and pushes back [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long.\\n\\n@param `quaternion` The quaternion representation\\n\\n@param `angle` The angle of the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROTATIONQ\"},{\"name\":\"ROUND\",\"detail\":\"input<NUMBER>  ROUND  output<LONG>\",\"documentation\":\"The `ROUND` function consumes a numeric parameter from the top of the stack and pushes back the long number the closest to the parameter.\\n\\n@param `input` Input to round.\\n\\n@param `output` Input rounded to the nearest Long.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROUND\"},{\"name\":\"RSADECRYPT\",\"detail\":\"cipher<BYTES> key<KEY>  RSADECRYPT  data<BYTES>\",\"documentation\":\"Decrypts content encrypted with an RSA key.\\n\\n@param `key` RSA key to use for decryption (a public key if content was encrypted with a private key, a private key otherwise).\\n\\n@param `cipher` Encrypted data.\\n\\n@param `data` Cleartext data.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSADECRYPT\"},{\"name\":\"RSAENCRYPT\",\"detail\":\"data<BYTES> key<KEY>  RSAENCRYPT  encrypted<BYTES>\",\"documentation\":\"Encrypts a byte array using an RSA key (either public or private).\\n\\n@param `key` Instance of the RSA private or public key to use for encryption.\\n\\n@param `data` Data to encrypt.\\n\\n@param `encrypted` Ciphered version of `data`.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAENCRYPT\"},{\"name\":\"RSAGEN\",\"detail\":\"publicExponent<LONG> keylen<LONG>  RSAGEN  privkeyparams<MAP> pubkeyparams<MAP>\",\"documentation\":\"Generates an RSA public key pair.\\n\\n@param `keylen` Key length in bits.\\n\\n@param `publicExponent` RSA public exponent, typically 65537.\\n\\n@param `pubkeyparams` Parameters of the generated RSA public key. Can be converted to a public key using [`RSAPUBLIC`](/doc/RSAPUBLIC).\\n\\n@param `privkeyparams` Parameters of the generated RSA privsate key. Can be converted to a private key using [`RSAPRIVATE`](/doc/RSAPRIVATE)\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAGEN\"},{\"name\":\"RSAPRIVATE\",\"detail\":\"privkeyparams<MAP>  RSAPRIVATE  privkey<KEY>\",\"documentation\":\"Creates an RSA private key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `privkeyparams` Map of private key parameters.\\n\\n@param `privkey` RSA private key instance.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPRIVATE\"},{\"name\":\"RSAPUBLIC\",\"detail\":\"pubkeyparams<MAP>  RSAPUBLIC  pubkey<KEY>\",\"documentation\":\"Creates an RSA public key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `pubkeyparams` Map of public key parameters.\\n\\n@param `pubkey` RSA public key instance.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPUBLIC\"},{\"name\":\"RSASIGN\",\"detail\":\"data<BYTES> alg<STRING> privkey<KEY>  RSASIGN  signature<BYTES>\",\"documentation\":\"Signs a byte array with an RSA private key.\\n\\n@param `privkey` RSA private key to use for signing.\\n\\n@param `alg` Name of algorithm to use for computing the data fingerprint. Supported algorithms are those provided by [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `data` Data to sign.\\n\\n@param `signature` Computed signature.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSASIGN\"},{\"name\":\"RSAVERIFY\",\"detail\":\"content<BYTES> signature<BYTES> alg<STRING> pubkey<KEY>  RSAVERIFY  verified<BOOLEAN>\",\"documentation\":\"The `RSAVERIFY` function verify a signature generated with [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) cryptosystem and a hash algorithm.\\n\\nAlgorithms are those supported by [BouncyCastle](http://stackoverflow.com/questions/8778531/bouncycastle-does-not-find-algorithms-that-it-provides).\\n\\n@param `pubkey` RSA public key to use for verifying the signature.\\n\\n@param `alg` Algorithm used for generating the signature. See [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content.\\n\\n@param `verified` Status of the signature verification.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAVERIFY\"},{\"name\":\"RSORT\",\"detail\":\"gts<GTS>  RSORT  result<GTS>\\ngtsList<LIST<GTS>>  RSORT  resultList<LIST<GTS>>\",\"documentation\":\"Sort Geo Time Series™ values (and associated locations/elevations) by reverse order of their ticks (i.e. most recent ticks first).\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RSORT\"},{\"name\":\"RTFM\",\"detail\":\" RTFM  url<STRING>\",\"documentation\":\"The `RTFM` function pushes onto the stack the URL of the Warp 10 documentation, so whenever you are lost you can rapidly retrieve the URL you need to get back on track!\\n\\n@param `url` URL of the Warp 10 documentation.\\n\\n\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.0.7\",\"OPB64name\":\"RTFM\"},{\"name\":\"RUN\",\"detail\":\"macroName<STRING>  RUN \\nmacroRegister<LONG>  RUN \",\"documentation\":\"The `RUN` function attempts to execute the macro whose name is on top of the stack. It is equivalent to `@macro` if called with `macro` on top of the stack.\\n\\n@param `macroName` Name of macro to execute, without a leading '@'\\n\\n@param `macroRegister` Register number in which the macro is stored, without a leading '@'\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"RUN\"},{\"name\":\"RUNNERAT\",\"detail\":\"t<LONG>  RUNNERAT \",\"documentation\":\"`RUNNERAT` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds, starting at the Warp 10 instance start. \\n`RUNNERAT` allow to dynamically schedule the next run to an absolute timestamp before the period defined in the path. Combined with `RUNNERIN`, `RUNNERAT` can be used to schedule the next run to an absolute timestamp whatever the period defined in the path. See examples below.\\n\\n`RUNNERAT` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERAT to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond offset to now allowed for `RUNNERAT`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `t` reschedule timestamp in platform time unit. Next iteration will be at scheduled at t.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERAT\"},{\"name\":\"RUNNERIN\",\"detail\":\"p<LONG>  RUNNERIN \",\"documentation\":\"`RUNNERIN` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds. \\n`RUNNERIN` allow to dynamically schedule the next run, overriding the period defined in the path. See also `RUNNERAT` to schedule next run at an absolute time.\\n\\n`RUNNERIN` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERIN to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond allowed for `RUNNERIN`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `p` reschedule period in platform time unit. Next iteration will be at scheduled at runnerstart + p\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERIN\"},{\"name\":\"RUNNERNONCE\",\"detail\":\"nonce<STRING>  RUNNERNONCE  time<LONG>\",\"documentation\":\"The `RUNNERNONCE` function decrypts the content of a runner *nonce* as generated when a script is executed by a Warp 10 runner instance.\\n\\nWhen a script is executed by a runner instance, the following symbols are defined when the script is invoked:\\n\\n| Symbol | Description |\\n| --- | --- |\\n| `runner.periodicity` | Periodicity at which the script is supposed to run, in ms. |\\n| `runner.path` | Path of the script. |\\n| `runner.scheduledat` | Time at which the current execution was scheduled, in ms since the [UNIX Epoch](). |\\n| `runner.nonce` | Encrypted time of execution, in time units since the [UNIX Epoch](). |\\n\\nNote that if the runner pre-shared key is not configured via `runner.psk`, the `RUNNERNONCE` function will push `NULL` onto the stack. Note that in this case, the `runner.nonce` symbol will not be defined.\\n\\n@param `nonce` Runner *nonce* as stored in `runner.nonce`.\\n\\n@param `time` Time retrieved from the *nonce*.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.7\",\"OPB64name\":\"RUNNERNONCE\"},{\"name\":\"RUNR\",\"detail\":\" RUNR \",\"documentation\":\"Run the macro currently contained in the designated register.\\n\\nThe `RUNR` function is really a family of functions named `RUNRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"RUNR\"},{\"name\":\"RVALUESORT\",\"detail\":\"gts<GTS>  RVALUESORT  result<GTS>\\ngtsList<LIST<GTS>>  RVALUESORT  resultList<LIST<GTS>>\",\"documentation\":\"Sort Geo Time Series™ values (and associated locations/elevations) by by reverse order of their values.\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RVALUESORT\"},{\"name\":\"SAVE\",\"detail\":\" SAVE  context<CONTEXT>\",\"documentation\":\"The `SAVE` function pushes onto the stack a *context* object which contains all the symbols currently defined in the current stack. This context can be passed as a parameter to the [`RESTORE`](doc/RESTORE) function to later reset the symbol table to the state store in the context. Any symbol created after the context was saved and before it is restored will be discarded when `RESTORE` is called.\\n\\n@param `context` Stack context, suitable as a parameter to [`RESTORE`](doc/RESTORE).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SAVE\"},{\"name\":\"SCALB\",\"detail\":\"d<NUMBER> scaleFactor<LONG>  SCALB  result<TYPE>\",\"documentation\":\"The `SCALB` function consumes a scale factor *scaleFactor* and a numeric parameter *d* and pushes back <math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>d</mi><mo>&#xD7;</mo><msup><mn>2</mn><mi>scaleFactor</mi></msup></math>. The scale factor must fit into an INT.\\n\\n@param `scaleFactor` The scaling factor, must fit into an INT\\n\\n@param `d` The value to be scaled\\n\\n@param `result` The scaled value\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SCALB\"},{\"name\":\"SECTION\",\"detail\":\"section<STRING>  SECTION \",\"documentation\":\"The `SECTION` function modifies the value of the *section* attribute of the stack. This value appears in the error messages and can therefore help you debug your WarpScript code. Typically, the `SECTION` function is used to separate your code in different logical units.\\n\\n@param `section` Name to assign to the *section* attribute.\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"SECTION\"},{\"name\":\"SECURE\",\"detail\":\"script<STRING>  SECURE  encrypted<STRING>\",\"documentation\":\"The `SECURE` function encrypts a STRING representing a WarpScript code fragment using the platform's secure script cryptographic key and the current secret set via [`SECUREKEY`](doc/SECUREKEY).\\n\\nSecure scripts can also be created using the `<S .... S>` syntax.\\n\\n@param `script` Cleartext version of the WarpScript fragment to encrypt.\\n\\n@param `encrypted` Encrypted secure script.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"SECURE\"},{\"name\":\"SECUREKEY\",\"detail\":\"key<STRING>  SECUREKEY \",\"documentation\":\"The `SECUREKEY` function sets the secret which will be used to decrypt further secure scripts.\\n\\nSecure scripts are WarpScript fragments which are encrypted with a cryptographic key specific to the platform they were created on. They can be executed on a platform configured with the same cryptographic key.\\n\\n@param `key` Secret to use for unlocking the cleartext versions of future secure scripts.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SECUREKEY\"},{\"name\":\"SENSISION.DUMP\",\"detail\":\"valueTimestamp<BOOLEAN>  SENSISION.DUMP  dump<STRING>\",\"documentation\":\"The `SENSISION.DUMP` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) metrics in the JVM.\\n\\nThe STRING produced by `SENSISION.DUMP` can be parsed using `PARSE`.\\n\\n@param `valueTimestamp` Flag indicating whether to dump the Geo Time Series™ with the timestamp of last updates or the timestamp at which the value is read.\\n\\n@param `dump` Latest values of all Geo Time Series™ known to Sensision in Geo Time Series™ output input.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMP\"},{\"name\":\"SENSISION.DUMPEVENTS\",\"detail\":\" SENSISION.DUMPEVENTS  dump<STRING>\",\"documentation\":\"The `SENSISION.DUMPEVENTS` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) events in the events history.\\n\\nThe STRING produced by `SENSISION.DUMPEVENTS` can be parsed using `PARSE`.\\n\\nNote that if the system property `sensision.events.history` is not set to a value greater than 0, the function will always return an empty STRING.\\n\\nThe Sensision event history is a circular buffer.\\n\\n@param `dump` Latest values of all events in the Sensision event history.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMPEVENTS\"},{\"name\":\"SENSISION.EVENT\",\"detail\":\"[ class<STRING> labels<MAP> value<LONG> ]  SENSISION.EVENT \\n[ class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.EVENT \\n[ class<STRING> labels<MAP> value<STRING> ]  SENSISION.EVENT \\n[ class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<LONG> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<STRING> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.EVENT \",\"documentation\":\"The `SENSISION.EVENT` function creates a [Sensision](https://github.com/senx/sensision) event.\\n\\n@param `class` Name of the class of the Sensision event to emit.\\n\\n@param `labels` Map of label names to values, both STRINGs of the Sensision event.\\n\\n@param `value` Value associated with the event.\\n\\n@param `ts` Optional timestamp for the event (in Sensision time units), if omitted, the current timestamp will be used.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.EVENT\"},{\"name\":\"SENSISION.GET\",\"detail\":\"selector<STRING>  SENSISION.GET  gts<GTS>\\nclass<STRING> labels<MAP>  SENSISION.GET  gts<GTS>\",\"documentation\":\"The `SENSISION.GET` function reads the current value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to read.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to read.\\n\\n@param `selector` Geo Time Series™ selector (`class{labels}`) of the Sensision metric to read.\\n\\n@param `gts` A Geo Time Series™ containing the current value of the Sensision metric. If the metric does not exist, the resulting GTS will be empty.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.GET\"},{\"name\":\"SENSISION.SET\",\"detail\":\"[ class<STRING> labels<MAP> value<LONG> ]  SENSISION.SET \\n[ class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.SET \\n[ class<STRING> labels<MAP> value<STRING> ]  SENSISION.SET \\n[ class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<LONG> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<STRING> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.SET \",\"documentation\":\"The `SENSISION.SET` function sets a value for a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `value` Value to assign to the Sensision metric.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.SET\"},{\"name\":\"SENSISION.UPDATE\",\"detail\":\"[ class<STRING> labels<MAP> delta<LONG> ]  SENSISION.UPDATE \\n[ class<STRING> labels<MAP> delta<DOUBLE> ]  SENSISION.UPDATE \\n[ class<STRING> labels<MAP> delta<LONG> ttl<LONG> ]  SENSISION.UPDATE \\n[ class<STRING> labels<MAP> delta<DOUBLE> ttl<LONG> ]  SENSISION.UPDATE \",\"documentation\":\"The `SENSISION.UPDATE` function updates the numerical value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `delta` Delta to add to the current value of the Sensision metric. If the metric does not exist it will be created with this value.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.UPDATE\"},{\"name\":\"SET\",\"detail\":\"inputlist<LIST> item<ANY> index<LONG>  SET  outputlist<LIST>\\ninputlist<LIST> item<ANY> index<LIST>  SET  outputlist<LIST>\\narray<BYTES> bytevalue<LONG> index<LONG>  SET  outputarray<LIST>\",\"documentation\":\"The `SET` function replaces item at specified index in a list.\\nIf the index is greater than the size of the list, it will raise an error.\\n\\nWhen used on a **BYTE ARRAY**, SET replaces the byte by the byte value. The byte value, signed or not, must be in the range of [-128,255].\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, SET can set an element in a nested list. In this case, the index is a list.\\n\\n@param `index` The index in the list, 0 for the first item.\\n\\n@param `inputlist` The input list to modified.\\n\\n@param `outputlist` The input list modified,  this is not a new list object.\\n\\n@param `item` The item to update in the inputlist at index, could be any type.\\n\\n@param `array` Byte array to which write a byte.\\n\\n@param `bytevalue` The value of the byte, signed or unsigned (from -128 to 255).\\n\\n@param `outputarray` The input byte array modified, this is not a new byte array.\\n\\n\",\"tags\":[\"lists\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SET\"},{\"name\":\"SET->\",\"detail\":\"input<SET>  SET->  output<LIST>\",\"documentation\":\"The `SET->` function converts the set on top of the stack into a **LIST**.\\n\\n@param `input` Input set.\\n\\n@param `output` A list containing input elements.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"JoKJAIs\"},{\"name\":\"SETATTRIBUTES\",\"detail\":\"gts<GTS> attributes<MAP>  SETATTRIBUTES  gts<GTS>\\nlgts<LIST<GTS>> attributes<MAP>  SETATTRIBUTES  lgts<LIST<GTS>>\\nencoder<GTSENCODER> attributes<MAP>  SETATTRIBUTES  encoder<GTSENCODER>\\nlencoder<LIST<GTS>> attributes<MAP>  SETATTRIBUTES  lencoder<LIST<GTS>>\",\"documentation\":\"Modifies the attributes of a Geo Time Series™, an encoder or a list thereof. The `SETATTRIBUTES` function expects a parameter MAP whose entries are attributes to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `SETATTRIBUTES` function will use the rest of the MAP as the actual attributes to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing attributes.\\n\\nAn entry with an empty STRING value will have the effect of removing the attribute from the attributes of the GTSs or encoders.   \\n\\n@param `attributes` Parameter map of attributes names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lencoder` List of Encoders.\\n\\n@param `encoder` Encoder to relabel\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETATTRIBUTES\"},{\"name\":\"SETMACROCONFIG\",\"detail\":\"value<STRING> key<STRING> secret<STRING>  SETMACROCONFIG \",\"documentation\":\"The `SETMACROCONFIG` function allows you to set or modify the value of a configuration key accessible via the [`MACROCONFIG`](/doc/MACROCONFIG) or [`MACROCONFIGDEFAULT`](/doc/MACROCONFIGDEFAULT) functions or via the runner script variable expansion.\\n\\nThis function can only be used if the `warpscript.macroconfig.secret` is set in the Warp 10™ configuration.\\n\\nThe configuration keys which can be set using `SETMACROCONFIG` must have the format `key@path/tomacro` or `key@/path/to/runner/script`.\\n\\nSetting the value of a configuration key to `NULL` has the effect of removing the configuration key altogether.\\n\\n@param `key` Configuration key to set.\\n\\n@param `secret` Macro config secret.\\n\\n@param `value` String value to set for the key or `NULL`.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"SETMACROCONFIG\"},{\"name\":\"SETVALUE\",\"detail\":\"gts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<STRING>  SETVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<BOOLEAN>  SETVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<DOUBLE>  SETVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<LONG>  SETVALUE  result<GTS>\",\"documentation\":\"The `SETVALUE` function adds a value to a GTS or override an existing value. If the tick already exists, this function will overwrite the first one it encounters in the GTS. If the tick does not exist, it is appended. \\nThe [`ADDVALUE`](/doc/ADDVALUE) function adds a value to a GTS but do not override an existing value.\\n\\nThe `SETVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `SETVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, using [`GET`](/doc/GET) for instance.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Serie\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `elevation` Elevation or NaN\\n\\n@param `result` modified Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETVALUE\"},{\"name\":\"SHA1\",\"detail\":\"input<BYTES>  SHA1  result<BYTES>\",\"documentation\":\"The `SHA1` function digests a byte array on the stack with the cryptographic hash function [SHA-1](https://en.wikipedia.org/wiki/SHA-1).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1\"},{\"name\":\"SHA1HMAC\",\"detail\":\"message<BYTES> secret<BYTES>  SHA1HMAC  result<BYTES>\",\"documentation\":\"The `SHA1HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-1](https://en.wikipedia.org/wiki/SHA-1) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1HMAC\"},{\"name\":\"SHA224\",\"detail\":\"input<BYTES>  SHA224  result<BYTES>\",\"documentation\":\"The `SHA224` function digests a byte array on the stack with the cryptographic hash function [SHA-224](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA224\"},{\"name\":\"SHA256\",\"detail\":\"input<BYTES>  SHA256  result<BYTES>\",\"documentation\":\"The `SHA256` function digests a byte array on the stack with the cryptographic hash function [SHA-256](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256\"},{\"name\":\"SHA256HMAC\",\"detail\":\"message<BYTES> secret<BYTES>  SHA256HMAC  result<BYTES>\",\"documentation\":\"The `SHA256HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-256](https://en.wikipedia.org/wiki/SHA-2) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256HMAC\"},{\"name\":\"SHA3.224\",\"detail\":\"input<BYTES>  SHA3.224  result<BYTES>\",\"documentation\":\"The `SHA3.224` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.224\"},{\"name\":\"SHA3.256\",\"detail\":\"input<BYTES>  SHA3.256  result<BYTES>\",\"documentation\":\"The `SHA3.256` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.256\"},{\"name\":\"SHA3.384\",\"detail\":\"input<BYTES>  SHA3.384  result<BYTES>\",\"documentation\":\"The `SHA3.384` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.384\"},{\"name\":\"SHA3.512\",\"detail\":\"input<BYTES>  SHA3.512  result<BYTES>\",\"documentation\":\"The `SHA3.512` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.512\"},{\"name\":\"SHA384\",\"detail\":\"input<BYTES>  SHA384  result<BYTES>\",\"documentation\":\"The `SHA384` function digests a byte array on the stack with the cryptographic hash function [SHA-384](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA384\"},{\"name\":\"SHA512\",\"detail\":\"input<BYTES>  SHA512  result<BYTES>\",\"documentation\":\"The `SHA512` function digests a byte array on the stack with the cryptographic hash function [SHA-512](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA512\"},{\"name\":\"SHAPE\",\"detail\":\"list<LIST>  SHAPE  shape<LIST>\\nlist<LIST> fast<BOOLEAN>  SHAPE  shape<LIST>\",\"documentation\":\"Return the shape of an input list if it could be a tensor (or multidimensional array), or raise an Exception.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent and it returns a shape based on the first nested lists at each level. Default to false.\\n\\n@param `list` The input list.\\n\\n@param `shape` The shape of the input list.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHAPE\"},{\"name\":\"SHMDEFINED\",\"detail\":\"symbol<STRING>  SHMDEFINED  exists<BOOLEAN>\",\"documentation\":\"The `SHMDEFINED` function checks whether a shared symbol exists in shared memory, *i.e.* in a memory location independent of a given execution context. It return true if it exists, false otherwise.\\n\\nAs unused symbols can be removed from shared memory because of the `shm.ttl` configuration, a call to `SHMDEFINED` ensures that, within the same [`MUTEX`](/doc/MUTEX) call, a call to [`SHMLOAD`](/doc/SHMLOAD) on the same symbol name will not fail.\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `exists` Whether `symbol` exists or not.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"SHMDEFINED\"},{\"name\":\"SHMLOAD\",\"detail\":\"symbol<STRING>  SHMLOAD  object<ANY>\",\"documentation\":\"The `SHMLOAD` function loads data previously stored by [`SHMSTORE`](/doc/SHMSTORE) in shared memory, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the requested shared symbol is not known or if the calling script does not currently hold the mutex associated with the symbol.\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `object` Object currently stored under `symbol`.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMLOAD\"},{\"name\":\"SHMSTORE\",\"detail\":\"object<ANY> symbol<STRING>  SHMSTORE \",\"documentation\":\"The `SHMSTORE` function stores an object in a named shared memory location, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the calling script is not currently holding a mutex (in a call to [`MUTEX`](/doc/MUTEX)). The call will have no effect if the named memory location was already set by a previous call to `SHMSTORE`.\\n\\nIn order to overwrite a shared memory location, its content must first be cleared by storing [`NULL`](/doc/NULL).\\n\\nIf the calling script currently holds a mutex, this mutex will be associated with the shared memory location, the same mutex will have to be held when retrieving the content of the memory location via [`SHMLOAD`](/doc/SHMLOAD).\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to store.\\n\\n@param `object` Object to store under `symbol` or `NULL` to clear its content.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMSTORE\"},{\"name\":\"SHOW\",\"detail\":\"levels<LONG>  SHOW \",\"documentation\":\"The `SHOW` function makes visible some levels of the stack which were previously hidden by a call to [`HIDE`](/doc/HIDE).\\n\\nThe levels made visible are the ones closest to the top of the stack. Depending on the `levels` parameter to the call to `SHOW`, the revealed levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there are at most a certain number ((*abs(`levels`)*) with `levels` < 0) of visible levels after the call.\\n\\nWhen called with `NULL` as parameter, `SHOW` wil reveal all levels currently hidden.\\n\\n@param `levels` Number of levels to reveal, or `NULL` to reveal them all.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"SHOW\"},{\"name\":\"SHRINK\",\"detail\":\"gts<GTS> size<LONG>  SHRINK  result<GTS>\",\"documentation\":\"Shrink the number of values of a Geo Time Series™ to `size`. The oldest values are kept if `size` is non negative. The earliest ones are kept in the other case.\\n\\nThis function has the side effect of sorting the Geo Time Series™. If the Geo Time Series™ has fewer than `size` values the function raises an error.\\n\\n@param `size` Size used to shrink the Geo Time Series™\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `result` A shrinked Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SHRINK\"},{\"name\":\"SHUFFLE\",\"detail\":\"input<LIST>  SHUFFLE  shuffled<LIST>\",\"documentation\":\"The `SHUFFLE` function shuffles a list.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `input` The reference of the list to shuffle\\n\\n@param `shuffled` The original list shuffled, this is not a new list object\\n\\n\",\"tags\":[\"lists\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHUFFLE\"},{\"name\":\"SIGNUM\",\"detail\":\"value<NUMBER>  SIGNUM  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SIGNUM  lresult<LIST<DOUBLE>>\\ngts<GTS>  SIGNUM  gtsresult<GTS>\",\"documentation\":\"The `SIGNUM` function consumes a numeric parameter from the top of the stack and pushes back its signum.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Signum, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of signum for each given value, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are signum of the given GTS values, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIGNUM\"},{\"name\":\"SIN\",\"detail\":\"value<NUMBER>  SIN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SIN  lresult<LIST<DOUBLE>>\\ngts<GTS>  SIN  gtsresult<GTS>\",\"documentation\":\"The `SIN` function consumes a floating point number from the top of the stack and pushes back its sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Sine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the sine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIN\"},{\"name\":\"SINGLEEXPONENTIALSMOOTHING\",\"detail\":\"gts<GTS> alpha<DOUBLE>  SINGLEEXPONENTIALSMOOTHING  result<GTS>\",\"documentation\":\"The `SINGLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Simple Exponential Smoothing](https://www.otexts.org/fpp/7/1) formula.\\n\\nIt consumes two parameters from the top of the stack:\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** is pushed onto the stack.\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The smoothed Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINGLEEXPONENTIALSMOOTHING\"},{\"name\":\"SINH\",\"detail\":\"value<NUMBER>  SINH  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SINH  lresult<LIST<DOUBLE>>\\ngts<GTS>  SINH  gtsresult<GTS>\",\"documentation\":\"The `SINH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic sine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic sine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINH\"},{\"name\":\"SIZE\",\"detail\":\"input<LIST>  SIZE  size<LONG>\\ninput<MAP>  SIZE  size<LONG>\\ninput<GTS>  SIZE  size<LONG>\\ninput<STRING>  SIZE  size<LONG>\\ninput<BYTES>  SIZE  size<LONG>\\ninput<GEOSHAPE>  SIZE  size<LONG>\\ninput<GTSENCODER>  SIZE  size<LONG>\\ninput<SET>  SIZE  size<LONG>\\ninput<MACRO>  SIZE  size<LONG>\",\"documentation\":\"Returns the size of the input parameter.\\n\\nThe `SIZE` function computes the size of a LIST, MAP, GTS or ENCODER (number of values), STRING, byte array MACRO (number of statements)  or GEOSHAPE (number of cells).\\n\\n@param `input` The input parameter\\n\\n@param `size` The size of the input parameter\\n\\n\",\"tags\":[\"strings\",\"lists\",\"maps\",\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIZE\"},{\"name\":\"SKEWNESS\",\"detail\":\"gts<GTS> bessel<BOOLEAN>  SKEWNESS  skewness<DOUBLE>\\nlgts<LIST<GTS>> bessel<BOOLEAN>  SKEWNESS  lskewness<LIST<DOUBLE>>\",\"documentation\":\"The `SKEWNESS` function computes the [skewness](https://en.wikipedia.org/wiki/Skewness) of a Geo Time Series™.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the skewness.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `skewness` Computed skewness of the Geo Time Series™ instance.\\n\\n@param `lskewness` List of computed skewness of the Geo Time Series™ instances.\\n\\n\",\"tags\":[\"statistics\",\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"SKEWNESS\"},{\"name\":\"SMARTPARSE\",\"detail\":\"string<STRING> regexp<STRING>  SMARTPARSE  results<LIST<GTS>>\\ngts<GTS> regexp<STRING>  SMARTPARSE  results<LIST<GTS>>\\nlgts<LIST<GTS>> regexp<STRING>  SMARTPARSE  lresults<LIST<LIST<GTS>>>\",\"documentation\":\"The `SMARTPARSE` function parses STRING values, either from a single STRING parameter or from STRING Geo Time Series™, and produces a number of GTS from the parsed data.\\n\\nThe parsing is done according to a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) which contains [named capturing groups](https://www.regular-expressions.info/named.html) with the Java/.NET syntax, *i.e.* `(?<name>...)`.\\n\\nThe captured group is interpreted differently based on the syntax of the name.\\n\\n| Syntax | Interpretation |\\n| --- | --- |\\n| Lxxx | Captured content is used as the value of label `xxx` |\\n| TU | Captured group is interpreted as a timestamp in unit `U` from the [UNIX Epoch](https://en.wikipedia.org/wiki/Unix_time) origin. Valid values for U are `s`, `ms`, `us`, `ns` |\\n| lat | Captured group is interpreted as the latitude if another group named `lon` is also present |\\n| lon | Captured group is interpreted as the longitude if another group named `lat` is also present |\\n| elevU | Captured group is interpreted as the elevation in unit `U`, where `U` can be `m`, `cm`, `mm`, `ft`, `km`, `mi`, `nm` (Nautical Mile). The value is parsed as a DOUBLE and converted to a LONG in `mm` |\\n| VTxxx | Captured group is interpreted as a value for a GTS with class `xxx`. The type of the value is determined by the value of `T` which can be `B`(oolean) `S`(tring) `L`(ong) or `D`(ouble) |\\n\\nThis function is ideally suited for parsing log messages and producing Geo Time Series™ from their content.\\n\\n@param `regexp` Regular expression to use for parsing. See the function description for the syntax to use.\\n\\n@param `string` String to parse\\n\\n@param `results` List of Geo Time Series™ created from the parsed data.\\n\\n@param `lresults` List of list of GTS created from the parsed data.\\n\\n@param `gts` STRING valued Geo Time Series™ whose values are to be parsed.\\n\\n@param `lgts` List of STRING valued GTS whose values are to be parsed.\\n\\n\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.2.13\",\"OPB64name\":\"SMARTPARSE\"},{\"name\":\"SNAPSHOT\",\"detail\":\"stack<ANY*>  SNAPSHOT  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOT` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOT` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.6\",\"OPB64name\":\"SNAPSHOT\"},{\"name\":\"SNAPSHOTALL\",\"detail\":\"stack<ANY*>  SNAPSHOTALL  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTALL` functions acts similarly as [`SNAPSHOT`](/doc/SNAPSHOT) and produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTALL` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALL\"},{\"name\":\"SNAPSHOTALLTOMARK\",\"detail\":\"mark<MARK> stack<ANY*>  SNAPSHOTALLTOMARK  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTALLTOMARK` functions acts similarly as [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) and produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTALLTOMARK` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALLTOMARK\"},{\"name\":\"SNAPSHOTCOPY\",\"detail\":\"stack<ANY*>  SNAPSHOTCOPY  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTCOPY` function behaves like [`SNAPSHOT`](/doc/SNAPSHOT) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPY` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPY\"},{\"name\":\"SNAPSHOTCOPYALL\",\"detail\":\"stack<ANY*>  SNAPSHOTCOPYALL  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTCOPYALL` function behaves like [`SNAPSHOTALL`](/doc/SNAPSHOTALL) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALL\"},{\"name\":\"SNAPSHOTCOPYALLTOMARK\",\"detail\":\"stack<ANY*>  SNAPSHOTCOPYALLTOMARK  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTCOPYALLTOMARK` function behaves like [`SNAPSHOTALLTOMARK`](/doc/SNAPSHOTALLTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALLTOMARK\"},{\"name\":\"SNAPSHOTCOPYN\",\"detail\":\"stack<ANY*> n<LONG>  SNAPSHOTCOPYN  snapshot<STRING>\",\"documentation\":\"Performs a [`SNAPSHOTCOPY`](/doc/SNAPSHOTCOPY) on the top *N* elements of the stack.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTCOPYN\"},{\"name\":\"SNAPSHOTCOPYTOMARK\",\"detail\":\"stack<ANY*>  SNAPSHOTCOPYTOMARK  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTCOPYTOMARK` function behaves like [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYTOMARK\"},{\"name\":\"SNAPSHOTN\",\"detail\":\"stack<ANY*> n<LONG>  SNAPSHOTN  snapshot<STRING>\",\"documentation\":\"Produces a WarpScript code fragment which will regenerate the *N* top levels of the stack. The content of those levels is consumed off the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTN\"},{\"name\":\"SNAPSHOTREADABLE\",\"detail\":\"stack<ANY*>  SNAPSHOTREADABLE  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTREADABLE` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTREADABLE` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTREADABLE` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\nThis is similar to the [`SNAPSHOT`](/doc/SNAPSHOT) function but the output is easier to read for a human.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"SNAPSHOTREADABLE\"},{\"name\":\"SNAPSHOTTOMARK\",\"detail\":\"mark<MARK> stack<ANY*>  SNAPSHOTTOMARK  snapshot<STRING>\",\"documentation\":\"The `SNAPSHOTTOMARK` functions produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTTOMARK` was called.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTTOMARK\"},{\"name\":\"SORT\",\"detail\":\"gts<GTS>  SORT  sgts<GTS>\\nlgts<LIST<GTS>>  SORT  slist<LIST<GTS>>\",\"documentation\":\"Sorts a Geo Time Series™ or each GTS of a list of GTS in ascending tick order.\\n\\n@param `gts` Single Geo Time Series™ instance to sort.\\n\\n@param `sgts` Sorted Geo Time Series™, this is the same instance as `gts`.\\n\\n@param `lgts` List of Geo Time Series™ instances to sort.\\n\\n@param `slist` List of sorted Geo Time Series™. Each instance is the same as the input one.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SORT\"},{\"name\":\"SORTBY\",\"detail\":\"list<LIST> macro<MACRO>  SORTBY  lsorted<LIST>\\nmap<MAP> macro<MACRO>  SORTBY  msorted<MAP>\",\"documentation\":\"The `SORTBY` function sorts a **LIST** or a **MAP** according to a value returned by a macro. The macro must return a value of the same type (LONG, DOUBLE or STRING) for each element.\\n\\nOnly **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nBefore release `1.2.22`, the `SORTBY` function could only sort lists of Geo Time Series™.\\n\\nBefore release `2.7.0`, the `SORTBY` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for sorting, consumes a list element off the stack and produces a LONG, DOUBLE or STRING value.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"tags\":[\"lists\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"SORTBY\"},{\"name\":\"SORTWITH\",\"detail\":\"list<LIST> macro<MACRO>  SORTWITH  lsorted<LIST>\\nmap<MAP> macro<MACRO>  SORTWITH  msorted<MAP>\",\"documentation\":\"The `SORTWITH` function sorts a **LIST** or a **MAP** according to a value returned by a comparison macro. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nIn used a on **LIST**, the comparison macro is given 2 elements of the **LIST** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest element in the stack is respectively strictly less than, equal to or strictly more than than the element on the stack.\\n\\nIn used a on **MAP**, the comparison macro is given 2 entries (key deepest, value shallowest) of the **MAP** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest entry in the stack is respectively strictly less than, equal to or strictly more than than the shallowest entry on the stack.\\n\\nBefore release `2.7.0`, the `SORTWITH` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for comparison, must consume two elements of the stack and produces a LONG.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"tags\":[\"lists\",\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"SORTWITH\"},{\"name\":\"SPLIT\",\"detail\":\"s<STRING> delimiter<STRING>  SPLIT  result<LIST<STRING>>\\ns<STRING> delimiter<STRING> limit<LONG>  SPLIT  result<LIST<STRING>>\",\"documentation\":\"The SPLIT function split a string in segments given a delimiter.\\n\\n\\nIt consumes two parameters from the top of the stack: the delimiter and the string to test matching with. The delimiter must be a string of length 1, i.e. only one character.\\n\\n\\nThe function will return a list with all the segments. If delimiter is not found, the output list contains the input string.\\n\\n@param `delimiter` One character delimiter.\\n\\n@param `s` The string to split\\n\\n@param `limit` The maximum size of the resulting **LIST**, must be positive. The last entry will contain all input beyond the last matched delimiter\\n\\n@param `result` List of strings.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"SPLIT\"},{\"name\":\"SQRT\",\"detail\":\"value<NUMBER>  SQRT  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SQRT  lresult<LIST<DOUBLE>>\\ngts<GTS>  SQRT  gtsresult<GTS>\",\"documentation\":\"The `SQRT` function consumes a numeric parameter from the top of the stack and pushes back its square root.\\n\\nFor negative numbers, SQRT returns NaN.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Square root of the given value, NaN if it is negative.\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of square root of each given value, NaN if it is negative.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the square root of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SQRT\"},{\"name\":\"SRAND\",\"detail\":\" SRAND  num<DOUBLE>\",\"documentation\":\"The `SRAND` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThe seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"SRAND\"},{\"name\":\"SRANDPDF\",\"detail\":\"valueHistogram<MAP>  SRANDPDF  result<STRING>\",\"documentation\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe randomization is seeded. The seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThe result is a function. This function does not have any arguments.\\n\\nTo use the function pushed by `SRANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"tags\":[\"math\",\"statistics\"],\"since\":\"2.2.1\",\"OPB64name\":\"SRANDPDF\"},{\"name\":\"SSSS->\",\"detail\":\"splits<LIST<BYTES>>  SSSS->  secret<BYTES>\",\"documentation\":\"The `SSSS->` retrieves a secret from `K` splits generated using `->SSSS`.\\n\\nNote that no check is performed to ensure that the retrieved secret is the expected one.\\n\\n@param `secret` Reconstructed secret.\\n\\n@param `splits` List of splits to use for reconstruction.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"JpCIJmoy\"},{\"name\":\"SSTFIND\",\"detail\":\"[ secret<STRING> largeskey<STRING> smallestkey<STRING> ]  SSTFIND  report<LIST>\\n[ secret<STRING> largeskey<STRING> smallestkey<STRING> labelsSelectors<MAP> classSelector<STRING> token<STRING> ]  SSTFIND  report<LIST>\",\"documentation\":\"Identifies Geo Time Series™ which MAY have data within a given key range, assuming those keys are bounds of an SST file.\\n\\nThis function is key to identifying which SST files should be purged using `SSTPURGE`.\\n\\nIf no token and selectors are specified in the parameter list of `SSTFIND`, all Geo Time Series™ will be considered, otherwise, only those matching the entered criteria will be used.\\n\\nThe return value of the `SSTFIND` function is a list of lists, each inner list containing 3 fields, `gts`, `mints`, `maxts`.\\n\\nThe `gts` field is either an actual empty Geo Time Series™, but with all metadata set, or `null`. If `gts` is not null, it means that the Geo Time Series™ **may** have data in the file given because its internal id falls within the key range. If `gts` is `null`, it means there is a Geo Time Series™ that may exist in the file but whose metadata (class and labels) were not matched by the provided selectors. This is a helpful hint to indicate that there may be some data in the file which belong to series you were not initially interested in.\\n\\nThe values of `mints` and `maxts` indicate between which timestamps `gts` may have datapoints. If the id of `gts` is not matched by either the smallest or largest key of the range, both `mints` and `maxts` will have extreme values (respectively `MINLONG` and `MAXLONG`). If the `gts` id matches one of the bounds, the `mints` and/or `maxts` fields will have more meaningful values.\\n\\nKeys of datapoints start with `0x52' (`R`), keys for metadata start with `0x4d` (`M`).\\n\\nWhen `SSTFIND` is called with metadata keys, the fields `mints` and `maxts` will be set to `null`.\\n\\nIf `SSTFIND` is called with keys for both metadata and data, an error is raised indicating that `SSTFIND` cannot determine what lies inside *hydrid* files.\\n\\nKeys invalid for both metadata and data will also lead to an *invalid key range* error.\\n\\n@param `secret` LevelDB secret.\\n\\n@param `smallestkey` Hex encoded lower key of the range to check.\\n\\n@param `largeskey` Hex encoded higher key of the range to check.\\n\\n@param `token` Warp 10™ read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Selector to use for identifying classes of Geo Time Series™.\\n\\n@param `labelsSelectors` Map of label selectors for matching Geo Time Series™.\\n\\n@param `report` Report about the Geo Time Series™ which may have data or metadata within the provided key range.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTFIND\"},{\"name\":\"SSTINFO\",\"detail\":\"id<LONG> secret<STRING>  SSTINFO  infos<MAP>\",\"documentation\":\"Retrieves informations about a LevelDB SST file.\\n\\nThe `infos` map returned by `SSTINFO` contains the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| size | Size of SST file in bytes |\\n| creationTime | Creation time of the SST file in platform's time units. Note that on some architectures this information might be inaccurate due to limitations of the filesystem interaction by the JVM. |\\n\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `id` LevelDB SST file id.\\n\\n@param `infos` Map of retrieved informations.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTINFO\"},{\"name\":\"SSTPURGE\",\"detail\":\"ids<LIST<LONG>> secret<STRING>  SSTPURGE  ldeleted<LIST<LONG>>\",\"documentation\":\"Attempts to purge a set of SST Files. A `.sst` file will be deleted only if it is at the deepest level of the LevelDB file organization.\\n\\nDuring file deletion, the underlying LevelDB database is closed and therefore all operations which interact with the DB will be blocked until the deletion has finished.\\n\\nEven though the LevelDB database is closed for updates and reads, it is not safe to manipulate its files as the deletion process actually modifies some of them.\\n\\nThe maximum number of SST files which can be deleted in a single call to `SSTPURGE` is set using the `leveldb.maxpurge` configuration key, it defaults to 1000.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `ids` List of file ids to delete.\\n\\n@param `ldeleted` List of ids of files which were deleted from the LevelDB database.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTPURGE\"},{\"name\":\"SSTREPORT\",\"detail\":\"secret<STRING>  SSTREPORT  report<MAP>\",\"documentation\":\"Builds a report on the content of the various SST (Sorted String Table) files of the LevelDB database backing the Warp 10™ storage engine.\\n\\nThe function returns a map containing the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `maxlevel` | Deepest level of SST files |\\n| `manifest` | Name of `MANIFEST` file used for building the report |\\n| `sst` | List of SST file descriptors |\\n\\nEach SST file descriptor is a list containing the following elements:\\n\\n* Level of the file\\n* Number (id) of the file\\n* Hex encoded smallest key found in the file\\n* Hex encoded largest key found in the file\\n\\n\\n@param `secret` LevelDB secret.\\n\\n@param `report` Report about the SST files of the LevelDB database.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTREPORT\"},{\"name\":\"SSTTIMESTAMP\",\"detail\":\"key<STRING>  SSTTIMESTAMP  ts<LONG>\\nbkey<BYTES>  SSTTIMESTAMP  ts<LONG>\",\"documentation\":\"Given a key from an SST File, for example as returned by `SSTREPORT`, extracts the timestamp encoded in the key (in the platform time units).\\n\\n@param `key` Hex encoded SST File key from which to extract the timestamp.\\n\\n@param `bkey` Byte array containing an SST File key from which to extract the timestamp.\\n\\n@param `ts` Extracted timestamp.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTTIMESTAMP\"},{\"name\":\"STACKATTRIBUTE\",\"detail\":\"name<STRING>  STACKATTRIBUTE  value<ANY>\",\"documentation\":\"Retrieves the value of a stack attribute.\\n\\n@param `name` Name of the stack attribute to retrieve.\\n\\n@param `value` Associated value or null if attribute is not set.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STACKATTRIBUTE\"},{\"name\":\"STACKPSSECRET\",\"detail\":\"newsecret<STRING> secret<STRING>  STACKPSSECRET \",\"documentation\":\"Modifies the secret needed for using functions such as `WSPS`, `WSSTOP` and `WSKILL`.\\n\\nThis function is only usable if a secret was configured using `stackps.secret`.\\n\\n@param `secret` Current secret for process status operations, initially the value configured via `stackps.secret`.\\n\\n@param `newsecret` New secret to set for process status operations.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"STACKPSSECRET\"},{\"name\":\"STACKTOLIST\",\"detail\":\"stack<ANY*>  STACKTOLIST  list<LIST>\",\"documentation\":\"Converts the whole stack into a list and pushes this list on top of the stack. The elements are consumed off the stack in the way [`->LIST`](/doc/AItBHKCJ) does it.\\n\\n@param `stack` Content of the stack.\\n\\n@param `list` List containing the elements of the stack.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"STACKTOLIST\"},{\"name\":\"STANDARDIZE\",\"detail\":\"gts<GTS>  STANDARDIZE  result<GTS>\\ngtsList<LIST<GTS>>  STANDARDIZE  resultList<LIST<GTS>>\",\"documentation\":\"Standardizes a single (or a list of) numeric Geo Time Series™ (i.e. it replaces X by (X-mu)/sd).\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STANDARDIZE\"},{\"name\":\"STDERR\",\"detail\":\"msg<STRING>  STDERR \",\"documentation\":\"The `STDERR` function prints text to the standard error stream.\\n\\nThe `STDERR` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDERR\"},{\"name\":\"STDIN\",\"detail\":\" STDIN  iterable<OBJECT>\",\"documentation\":\"The `STDIN` function outputs an iterable which allows to iterate over the lines present in the standard input.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `iterable` An iterable containing the lines from standard input.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"STDIN\"},{\"name\":\"STDOUT\",\"detail\":\"obj<ANY>  STDOUT \",\"documentation\":\"The `STDOUT` function prints text to the standard output stream.\\n\\nThe `STDOUT` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `obj` The object to print. Its `.toString()` method is used to generate the outputed String.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDOUT\"},{\"name\":\"STL\",\"detail\":\"gts<GTS> { p<LONG>  } STL  result<GTS>\\ngtsList<LIST<GTS>> { p<LONG>  } STL  resultList<LIST<GTS>>\",\"documentation\":\"The `STL` function applies a Seasonal Trend decomposition on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is based on multiple calls of [`RLOWESS`](/doc/RLOWESS).\\n\\nThese Geo Time Series™ are the seasonal part and the trend part of the input Geo Time Series™. Their classnames are suffixed with \\\"_seasonal\\\" and \\\"_trend\\\".\\n\\nThis function can only be applied to [bucketized](/doc/BUCKETIZE) Geo Time Series™ of numeric type.\\n\\nThe **MAP** parameter must have at least the field `PERIOD`. You can provide additional optional parameters:\\n\\n## Optional parameters\\n### Global\\n- `ROBUST` if TRUE, set defaults of number of inner and outer loops to 1 and 15 instead of 2 and 0. Default is FALSE\\n- `PRECISION` number of inner loops (a LONG). Default is 2 or 1\\n- `ROBUSTNESS` number of outer loops (a LONG). Default is 0 or 15\\n\\n### Seasonal extract\\n- `BANDWIDTH_S` the bandwidth (a LONG) of the local regression. Default is 7\\n- `DEGREE_S` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_S` the number of values interpolated instead of estimated. Default is BANDWIDTH_S/10\\n\\n### Low frequency filtering\\n- `BANDWIDTH_L` the bandwidth (a LONG) of the local regression. Default is nextOdd(PERIOD)\\n- `DEGREE_L` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_L` the number of values interpolated instead of estimated. Default is BANDWIDTH_L/10\\n\\n### Trend extract\\n- `BANDWIDTH_T` the bandwidth (a LONG) of the local regression. Default is nextOdd(ceiling(1.5*PERIOD/(1-(1.5/BANDWIDTH_S))))\\n- `DEGREE_T` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_T` the number of values interpolated instead of estimated. Default is BANDWIDTH_T/10\\n\\n### Post seasonal smoothing\\n- `BANDWIDTH_P` the bandwidth (a LONG) of the local regression. Default is 0 (i.e. no post smoothing)\\n- `DEGREE_P` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_P` the number of values interpolated instead of estimated. Default is BANDWIDTH_P/10\\n\\n### Additional fields\\n- `BANDWIDT` value of all BANDWIDTH_X fields that are not set\\n- `DEGREE` value of all DEGREE_X fields that are not set\\n- `SPEED` value of all SPEED_X fields that are not set\\n\\n> ### REFERENCE\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"STL\"},{\"name\":\"STLESDTEST\",\"detail\":\"gts<GTS> p<LONG> k<LONG> alpha<DOUBLE> STLOption<MAP>  STLESDTEST  result<LIST<LONG>>\\ngts<GTS> p<LONG> k<LONG> alpha<DOUBLE>  STLESDTEST  result<LIST<LONG>>\\ngts<GTS> p<LONG> k<LONG> STLOption<MAP>  STLESDTEST  result<LIST<LONG>>\\ngts<GTS> p<LONG> k<LONG>  STLESDTEST  result<LIST<LONG>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG> alpha<DOUBLE> STLOption<MAP>  STLESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG> alpha<DOUBLE>  STLESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG> STLOption<MAP>  STLESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG>  STLESDTEST  resultList<LIST<LIST<LONG>>>\",\"documentation\":\"The 'STLESDTEST' function detects outliers in a Geo Time Series™ (or a **LIST** of Geo Time Series™) which has a seasonal part.\\n\\nThe seasonal part and the trend part of the Geo Time Series™ are extracted using [`STL`](/doc/STL) decomposition, then an [`ESDTEST`](/doc/ESDTEST) is performed on the remainder.\\n\\nThis function only applies to [bucketized](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ### References\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n> **Rosner, Bernard (May 1983)**, \\\"Percentage Points for a Generalized ESD Many-Outlier Procedure\\\",Technometrics, 25(2), pp. 165-172.\\n\\n@param `STLOption` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `resultList` A **LIST** of ticks corresponding to the outliers\\n\\n@param `result` A **LIST** of LIST of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STLESDTEST\"},{\"name\":\"STOP\",\"detail\":\"\",\"documentation\":\"The `STOP` function stops the current execution by throwing a `WarpScriptStopException`. This means that the current script execution will be aborted unless the call to `STOP` was in a macro invoked via [`TRY`](/doc/TRY).\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"STOP\"},{\"name\":\"STORE\",\"detail\":\"value<ANY> symbol<STRING>  STORE \\nvalue<ANY> register<LONG>  STORE \\nvalues<ANY*> symbols<LIST<STRING>>  STORE \",\"documentation\":\"The `STORE` function stores a value in a symbol.\\n\\nSince 2.7, when the list of symbols contains duplicates only the last occurence in the list is assigned to its corresponding value.\\n\\n@param `symbol` Name of the symbol to modify.\\n\\n@param `register` Index of the register to modify.\\n\\n@param `symbols` List of symbols or registers to modify. The last element of the list will contain the top of the stack.\\n\\n@param `value` Value to store under `symbol`.\\n\\n@param `values` Multiple values to store in `symbols`.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STORE\"},{\"name\":\"STRICTMAPPER\",\"detail\":\"mapper<AGGREGATOR> min<NUMBER> max<NUMBER>  STRICTMAPPER  wrapped<AGGREGATOR>\\nmacro<MACRO> min<NUMBER> max<NUMBER>  STRICTMAPPER  wrappedMacro<MACRO>\",\"documentation\":\"Wraps a *mapper* or a *macro* in such a way that MAP will only call it if the number of ticks in the window is in the specified range.\\n\\nSince 2.1 STRICTMAPPER can also take a timespan definition by inputing negative numbers. Number of ticks and timespan can also be mixed to specify, for instance, more than 2 points but less than 5 seconds.\\n\\nPrior to 2.8 STRICTMAPPER could only wrap a mapper, now it can also wrap a macro if this macro is expected to be used as a mapper.\\n\\n@param `max` If positive, maximum number of ticks in the window. If negative, maximum timespan of the window.\\n\\n@param `min` If positive, minimum number of ticks in the window. If negative, minimum timespan of the window.\\n\\n@param `mapper` Mapper to wrap.\\n\\n@param `wrapped` Wrapped mapper.\\n\\n@param `macro` Macro to wrap\\n\\n@param `wrappedMacro` Wrapped macro\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTMAPPER\"},{\"name\":\"STRICTPARTITION\",\"detail\":\"lgts<LIST<GTS>> labels<LIST<STRING>>  STRICTPARTITION  result<MAP>\",\"documentation\":\"The `STRICTPARTITION` splits a Geo Time Series™ list in equivalence classes based on label values just like [`PARTITION`](/doc/PARTITION) but only retains in each equivalence class key the labels on which the partitioning was done.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels`.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTPARTITION\"},{\"name\":\"STRICTREDUCER\",\"detail\":\"reducer<AGGREGATOR>  STRICTREDUCER  wrapped<AGGREGATOR>\",\"documentation\":\"Wraps a *reducer* so it is only applied if there are values for all the Geo Time Series™ being reduced.\\n\\n@param `reducer` Reducer to wrap.\\n\\n@param `wrapped` Wrapped version of the reducer.\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.6\",\"OPB64name\":\"STRICTREDUCER\"},{\"name\":\"STRINGFORMAT\",\"detail\":\"format<STRING> args<LIST>  STRINGFORMAT  formattedString<STRING>\\nformat<STRING> args<LIST> locale<STRING>  STRINGFORMAT  formattedString<STRING>\",\"documentation\":\"The STRINGFORMAT function format a String in the same ways as Java [String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.util.Locale-java.lang.String-java.lang.Object...-) does.\\n\\nThis function consumes an optional locale in [ISO 639](http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry), a list of Objects to be used in the format string and a [format string](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax).\\n\\nIf no locale is specified, it defaults to the default JVM locale.\\n\\n@param `format` A format string.\\n\\n@param `args` Arguments referenced by the format specifiers in the format string.\\n\\n@param `locale` The locale to apply during formatting.\\n\\n@param `formattedString` A formatted string.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"2.2.0\",\"OPB64name\":\"STRINGFORMAT\"},{\"name\":\"STU\",\"detail\":\" STU  numberTimeUnits<LONG>\",\"documentation\":\"The `STU` function pushes onto the stack the number of platform time units in one second. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one second.\\n\\n\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"STU\"},{\"name\":\"SUBLIST\",\"detail\":\"base<LIST<ANY>> arguments<LIST<LONG>>  SUBLIST  result<LIST<ANY>>\\nbase<LIST<ANY>> start<NUMBER>  SUBLIST  result<LIST<ANY>>\\nbase<LIST<ANY>> start<NUMBER> end<NUMBER>  SUBLIST  result<LIST<ANY>>\\nbase<LIST<ANY>> start<NUMBER> end<NUMBER> step<NUMBER>  SUBLIST  result<LIST<ANY>>\",\"documentation\":\"It creates a new list with the elements of the base list whose indices are in the argument list.\\n\\nIf the argument list contains two indices [a,b] then `SUBLIST` returns the list of elements from index a to index b (included). If the argument list contains more than two indices, the result of `SUBLIST` contains all the elements at the specified indices, with possible duplicates.\\n\\nNegative indexing is allowed, with negative index effectively referring to index + size.\\n\\nSince 2.1 a new signature allowing the step to be defined has been introduced. Instead of specifying a list has range, you can put the start, end (optional) and step (optional) as **LONG** values.\\n\\n@param `arguments` List of indices. Negative indices are considered to be calculated from the end of the list.\\n\\n@param `base` Base list\\n\\n@param `result` Filtred list\\n\\n@param `start` The first index to consider, will be included.\\n\\n@param `end` The last index to consider, will be included. If not specified, defaults to -1.\\n\\n@param `step` The delta between two consecutive indexes to consider. If end is after start in the list, step must be strictly positive. If start is after end in the list, step must be strictly negative. If not specified, defaults to 1 or -1 depending on start and end.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBLIST\"},{\"name\":\"SUBMAP\",\"detail\":\"base<MAP> arguments<LIST<STRING>>  SUBMAP  result<MAP>\",\"documentation\":\"It creates a new map with the key-value pairs from the base map whose keys are in the argument list.\\n\\n@param `arguments` List of indices.\\n\\n@param `base` Base map\\n\\n@param `result` Filtred map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBMAP\"},{\"name\":\"SUBSTRING\",\"detail\":\"str<STRING> start<LONG> len<LONG>  SUBSTRING  substr<STRING>\\nstr<STRING> start<LONG>  SUBSTRING  substr<STRING>\\narray<BYTES> start<LONG> len<LONG>  SUBSTRING  subarray<BYTES>\\narray<BYTES> start<LONG>  SUBSTRING  subarray<BYTES>\",\"documentation\":\"Extract a substring from a **STRING** input, or a subarray from a **BYTE ARRAY** input.  \\nIf the length is ommitted, it extracts until the end of the string or byte array. If length is greater than max length, extract stops at the input end.\\n\\nIf the start is greater than the input size, `SUBSTRING` raises an error.\\n\\nSince 2.1, the start index can be negative. In this case the effective index is index + size of the **STRING**.\\n\\n@param `len` Length of substring to extract.\\n\\n@param `start` First character to include in the substring (0 based).\\n\\n@param `str` String from which to extract a substring.\\n\\n@param `substr` Extracted substring.\\n\\n@param `array` Byte array from which to extract a sub array.\\n\\n@param `subarray` Extracted sub array.\\n\\n\",\"tags\":[\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBSTRING\"},{\"name\":\"SUBTRACTEXACT\",\"detail\":\"x<NUMBER> y<NUMBER>  SUBTRACTEXACT  diff<LONG>\\nlist<LIST<NUMBER>>  SUBTRACTEXACT  sdiff<LONG>\\nlx<LIST<NUMBER>> y<NUMBER>  SUBTRACTEXACT  ldiff<LIST<LONG>>\\ngts<GTS>  SUBTRACTEXACT  gdiff<LONG>\\ngtsx<GTS> y<NUMBER>  SUBTRACTEXACT  gtsdiff<LIST<LONG>>\",\"documentation\":\"The `SUBTRACTEXACT` function consumes two LONGs from the top of the stack and puts back the difference between them. If the difference overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `diff` The difference of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sdiff` The first element of the list minus all the others\\n\\n@param `gdiff` The first value of the gts minus all the others\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `ldiff` List of **LONG** where each value is the difference of y and an element in lx\\n\\n@param `gtsdiff` GTS of **LONG** values where each value is the difference of y and an element in gtsx\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SUBTRACTEXACT\"},{\"name\":\"SWAP\",\"detail\":\"level2<ANY> top<ANY>  SWAP  top<ANY> level2<ANY>\",\"documentation\":\"Exchanges the positions of the top two elements of the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWAP\"},{\"name\":\"SWITCH\",\"detail\":\"cond1<MACRO> exec1<MACRO> condn<MACRO> execn<MACRO> default<MACRO> n<LONG>  SWITCH \",\"documentation\":\"Performs a [switch statement](https://en.wikipedia.org/wiki/Switch_statement) allowing to select a macro execution based on a series of condition macros or to fallback on to the execution of a default macro.\\n\\n@param `n` Number of cases to consider. The `SWITCH` function will expect `n` pairs of condition/execution macros plus a default macro on the stack.\\n\\n@param `default` Macro which will be executed if all condition macros returned false.\\n\\n@param `cond1` First condition macro. All condition macros are expected to push a boolean on the stack.\\n\\n@param `condn` `n`th condition macro.\\n\\n@param `exec1` First execution macro, this macro will be executed if `cond1` left `true` on the stack.\\n\\n@param `execn` `n`th execution macro.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWITCH\"},{\"name\":\"SYMBOLS\",\"detail\":\" SYMBOLS  symbols<LIST>\",\"documentation\":\"The `SYMBOLS` function outputs the list of all defined symbols.\\n\\n@param `symbols` The list of the names of all defined symbols.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.2.1\",\"OPB64name\":\"SYMBOLS\"},{\"name\":\"SYNC\",\"detail\":\"macro<MACRO>  SYNC \",\"documentation\":\"Executes a macro in a synchronized way while in a parallel execution triggered by a call to [`CEVAL`](/doc/CEVAL). If `SYNC` is called outside of a parallel execution, it simply executes the macro.\\n\\nWhen called within a `CEVAL` execution, the use of `SYNC` guarantees that only one of the concurrently executing threads will execute the specified macro at any given time.\\n\\n@param `macro` Macro to execute in a synchronized way.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"SYNC\"},{\"name\":\"T\",\"detail\":\" T  b<BOOLEAN>\",\"documentation\":\"`T` stand for `true`. It is a boolean constant.\\n\\n\\n@param `b` true\\n\\n\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"T\"},{\"name\":\"TAN\",\"detail\":\"value<NUMBER>  TAN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  TAN  lresult<LIST<DOUBLE>>\\ngts<GTS>  TAN  gtsresult<GTS>\",\"documentation\":\"The `TAN` function consumes a floating point number from the top of the stack and pushes back its tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Tangent of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the tangent of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TAN\"},{\"name\":\"TANH\",\"detail\":\"value<NUMBER>  TANH  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  TANH  lresult<LIST<DOUBLE>>\\ngts<GTS>  TANH  gtsresult<GTS>\",\"documentation\":\"The `TANH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic tangent of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic tangent of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TANH\"},{\"name\":\"TDESCRIBE\",\"detail\":\"object<ANY>  TDESCRIBE  description<STRING>\",\"documentation\":\"The `TDESCRIBE` function is a recursive [`TYPEOF`](/doc/TYPEOF).\\n\\nWhen `TDESCRIBE` finds a LIST, it takes the first element of the list to look for his type. When `TDESCRIBE` finds a MAP, it takes a random key in the map to look for the type of the key and the type of the value.\\n\\n**By design, TDESCRIBE cannot describe heterogeneous lists or maps.**\\n\\nTDESCRIBE output is subject to change in the future. Do not try to parse it. This function is here to help you during Warpscript development.\\n\\n\\nThe `TDESCRIBE` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `object` Any kind of reference\\n\\n@param `description` The description of the object\\n\\n\",\"tags\":[\"extensions\",\"debug\"],\"since\":\"1.2.19\",\"OPB64name\":\"TDESCRIBE\"},{\"name\":\"TEMPLATE\",\"detail\":\"template<STRING> dictionnary<MAP>  TEMPLATE  output<STRING>\\ntemplate<STRING> listofmaps<LIST<MAP>>  TEMPLATE  output<STRING>\",\"documentation\":\"`TEMPLATE` fills a template with values contained in a map. See example for syntax help.\\n\\nThe `TEMPLATE` function expects the map of values on top of the stack and will operate on the string template below it.\\n\\nValues speficied with `{{key}}` will be html-escaped. If you do not want that behavior, use `{{{key}}}`.\\n\\n@param `dictionnary` Each key will be replaced in a {{key}} template. Value could be string long, double, boolean, or a list of maps. If Value is a list of maps, each subkey/value will be replaced in a {{#key}}{{subkey}}{{/key}} template. \\n\\n@param `listofmaps` Contains a list of subkey/value map. Will be replaced in a {{#key}}{{subkey}}{{/key}} template.\\n\\n@param `template` Input template.\\n\\n@param `output` Result of substitution.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TEMPLATE\"},{\"name\":\"THRESHOLDTEST\",\"detail\":\"gts<GTS> threshold<DOUBLE>  THRESHOLDTEST  ticks<LIST<LONG>>\\nlgts<LIST<GTS>> threshold<DOUBLE>  THRESHOLDTEST  lticks<LIST<LIST<LONG>>>\",\"documentation\":\"Analyzes Geo Time Series™, identifying ticks where values are outliers above the given threshold.\\n\\n@param `threshold` Threshold above which values are considered outliers.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `ticks` List of ticks where outliers were found.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lticks` List of lists of ticks where outliers were found.\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"THRESHOLDTEST\"},{\"name\":\"TICKINDEX\",\"detail\":\"gts<GTS>  TICKINDEX  indexed<GTS>\\nlgts<LIST<GTS>>  TICKINDEX  lindexed<LIST<GTS>>\\nencoder<GTSENCODER>  TICKINDEX  indexedenc<GTSENCODER>\\nlencoder<LIST<GTSENCODER>>  TICKINDEX  lindexedenc<LIST<GTSENCODER>>\",\"documentation\":\"Creates a clone of a Geo Time Series™, replacing each tick with the index (0 based) at which it appears at the moment of the call.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `encoder` Geo Time Series™ Encoder instance to transform.\\n\\n@param `indexed` Transformed GTS.\\n\\n@param `indexedenc` Transformed GTS Encoder.\\n\\n@param `lgts` List of Geo Time Series™ instances to transform.\\n\\n@param `lencoder` List of Geo Time Series™ Encoder instances to transform.\\n\\n@param `lindexed` List of indexed Geo Time Series™.\\n\\n@param `lindexedenc` List of indexed Geo Time Series™ Encoder.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKINDEX\"},{\"name\":\"TICKLIST\",\"detail\":\"gts<GTS>  TICKLIST  ticks<LIST<LONG>>\\nlgts<LIST<GTS>>  TICKLIST  lticks<LIST<LIST<LONG>>>\\nencoder<GTSENCODER>  TICKLIST  ticks<LIST<LONG>>\\nlencoder<LIST<GTSENCODER>>  TICKLIST  lticks<LIST<LIST<LONG>>>\",\"documentation\":\"Pushes onto the stack the list of ticks of a Geo Time Series™ or encoder. The ticks appear in the order in which they are found.\\n`TICKLIST` is consistent with [`VALUES`](/doc/VALUES).\\n\\n\\nIf a list of Geo Time Series™ is given, the result is a list of list of ticks as if the TICKLIST function was applied to each Geo Time Series™ separately.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n@param `encoder` Instance of encoder from which to extract the ticks.\\n\\n@param `lencoder` List of encoders.\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `lticks` List of lists of ticks.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKLIST\"},{\"name\":\"TICKS\",\"detail\":\"gts<GTS>  TICKS  ticks<LIST<LONG>>\\nlgts<LIST<GTS>>  TICKS  ticks<LIST<LONG>>\",\"documentation\":\"Pushes onto the stack the sorted list of **distinct** ticks of a Geo Time Series™. If a list of Geo Time Series™ is given, all the **distinct** ticks are returned in a single sorted list as if all Geo Time Series™ were merged.\\n\\nThis function is not to be confused with [`TICKLIST`](/doc/TICKLIST) as this function returns **distinct** ticks and acts as it merges Geo Time Series™.\\n\\n** Warning:** To be consistent with [`VALUES`](/doc/VALUES), use [`TICKLIST`](/doc/TICKLIST).\\n\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKS\"},{\"name\":\"TIGER\",\"detail\":\"input<BYTES>  TIGER  result<BYTES>\",\"documentation\":\"The `TIGER` function digests a byte array on the stack with the cryptographic hash function [Tiger](https://en.wikipedia.org/wiki/Tiger_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"TIGER\"},{\"name\":\"TIMEBOX\",\"detail\":\"macro<MACRO> maxtime<LONG>  TIMEBOX \",\"documentation\":\"The `TIMEBOX` executes a macro with a maximum execution time. If the maximum time is reached, an exception will be thrown which can be caught using [`TRY`](/doc/TRY).\\n\\n@param `maxtime` Maximum execution time, in platform time units.\\n\\n@param `macro` Macro to execute.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TIMEBOX\"},{\"name\":\"TIMECLIP\",\"detail\":\"gts<GTS> end<LONG> duration<LONG>  TIMECLIP  clipped<GTS>\\nlgts<LIST<GTS>> end<LONG> duration<LONG>  TIMECLIP  lclipped<LIST<GTS>>\\ngts<GTS> stop<STRING> start<STRING>  TIMECLIP  clipped<GTS>\\nlgts<LIST<GTS>> stop<STRING> start<STRING>  TIMECLIP  lclipped<LIST<GTS>>\\nencoder<GTSENCODER> end<LONG> duration<LONG>  TIMECLIP  clippedEncoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> end<LONG> duration<LONG>  TIMECLIP  lclippedEncoders<LIST<GTSENCODER>>\\nencoder<GTSENCODER> stop<STRING> start<STRING>  TIMECLIP  clippedEncoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> stop<STRING> start<STRING>  TIMECLIP  lclippedEncoders<LIST<GTSENCODER>>\",\"documentation\":\"Clips Geo Time Series™ instances by restricting their ticks to those within a time interval.      \\n\\n@param `duration` Width of the time interval to retain, in time units.\\n\\n@param `end` Most recent timestamp to retain.\\n\\n@param `start` Start timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `stop` End timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `clipped` Clipped Geo Time Series™.\\n\\n@param `lclipped` List of clipped GTS.\\n\\n@param `encoder` Single GTS Encoder instance.\\n\\n@param `lencoder` List of GTS Encoder instances.\\n\\n@param `clippedEncoder` Clipped GST encoder.\\n\\n@param `lclippedEncoders` List of clipped GTS encoders.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMECLIP\"},{\"name\":\"TIMED\",\"detail\":\"macro<MACRO> name<STRING>  TIMED  timedMacro<MACRO>\",\"documentation\":\"The `TIMED` function converts a macro to a timed macro, recording its execution time and its number of calls.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\n@param `name` A name identifying the macro.\\n\\n@param `macro` The macro you want to monitor.\\n\\n@param `timedMacro` A macro which, when called, will update the statitics associated with the given name.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"TIMED\"},{\"name\":\"TIMEMODULO\",\"detail\":\"gts<GTS> modulus<LONG> label<STRING>  TIMEMODULO  splits<LIST<GTS>>\\nlgts<LIST<GTS>> modulus<LONG> label<STRING>  TIMEMODULO  lsplits<LIST<LIST<GTS>>>\",\"documentation\":\"Splits Geo Time Series™ into sub-GTS whose timestamps are the original timestamp modulo a given modulus value. Each sub-GTS will bear a label with the quotient of the original timestamps divided by the modulus. The output list order is not guaranteed, use [`SORTBY`](/doc/SORTBY) if you want to order the output by label.\\n\\nThis function can be used to generate for example one Geo Time Series™ per day with ticks from 0 to 86400 s (excluded).\\n\\n@param `label` Name of the label which will have the quotient value.\\n\\n@param `modulus` Value by which to divide the original timestamps.\\n\\n@param `gts` Geo Time Series™ to split.\\n\\n@param `splits` Resulting splits.\\n\\n@param `lgts` List of GTS to split.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMEMODULO\"},{\"name\":\"TIMEOFF\",\"detail\":\" TIMEOFF \",\"documentation\":\"Turns off the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEOFF\"},{\"name\":\"TIMEON\",\"detail\":\" TIMEON \",\"documentation\":\"Turns on the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEON\"},{\"name\":\"TIMESCALE\",\"detail\":\"gts<GTS> scale<DOUBLE>  TIMESCALE  scaled<GTS>\\ngts<GTS> scale<LONG>  TIMESCALE  scaled<GTS>\\nlgts<LIST<GTS>> scale<DOUBLE>  TIMESCALE  lscaled<LIST<GTS>>\\nlgts<LIST<GTS>> scale<LONG>  TIMESCALE  lscaled<LIST<GTS>>\",\"documentation\":\"Modifies the ticks of Geo Time Series™ instances by multiplying each tick by a provided scale.      \\n\\nThe resulting tick will be converted to a LONG after multiplication by the scale.\\n\\nIf the Geo Time Series™ instance is bucketized, the `lastbucket` and `bucketspan` parameters will also be scaled. If the scale would incur a `bucketspan` of 0, the call will end with an error.\\n\\n@param `scale` Scale by which to multiply each tick.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `scaled` Geo Time Series™ result.\\n\\n@param `lscaled` List of Geo Time Series™ result.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESCALE\"},{\"name\":\"TIMESHIFT\",\"detail\":\"gts<GTS> offset<LONG>  TIMESHIFT  shifted<GTS>\\nlgts<LIST<GTS>> offset<LONG>  TIMESHIFT  lshifted<LIST<GTS>>\",\"documentation\":\"Shifts the ticks of Geo Time Series™ instances by a given amount.\\n\\n@param `offset` Offset to apply to the ticks, in time units.\\n\\n@param `gts` Single Geo Time Series™ instance to shift.\\n\\n@param `lgts` List of GTS to shift.\\n\\n@param `shifted` Shifted Geo Time Series™.\\n\\n@param `lshifted` List of shifted Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESHIFT\"},{\"name\":\"TIMESPLIT\",\"detail\":\"gts<GTS> quietperiod<LONG> minvalues<LONG> label<STRING>  TIMESPLIT  splits<LIST<GTS>>\\nlgts<LIST<GTS>> quietperiod<LONG> minvalues<LONG> label<STRING>  TIMESPLIT  lsplits<LIST<LIST<GTS>>>\",\"documentation\":\"The `TIMESPLIT` functions splits Geo Time Series™ instances based on *quiet periods*, *i.e.* periods during which the GTS has no values.\\n\\nWhenever a quiet period longer than a minimum duration is encountered, the Geo Time Series™ is split.\\n\\nIf input gts has no values or if 'label' is already part of the labels of 'gts', then the resulting list of GTS will only contain a clone of 'gts'. **Make sure to test your GTS split size if needed.**\\n\\n@param `label` Name of label in which to store the sequence number.\\n\\n@param `minvalues` Minimum number of values a split should contain. Splits with less than that many values will be discarded.\\n\\n@param `quietperiod` Minimum duration of the silent period (*i.e.* with no values) between splits.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESPLIT\"},{\"name\":\"TIMINGS\",\"detail\":\"\",\"documentation\":\"Turns on the collection of timing information for each line of the script. The collected timings can be put onto the stack by using [`ELAPSED`](/doc/ELAPSED).\\n\\nTo measure executions of named tasks (several lines of WarpScript, possibly nested inside macros), prefer [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND), with [`CHRONOSTATS`](/doc/CHRONOSTATS) to display results.\\n\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMINGS\"},{\"name\":\"TLTTB\",\"detail\":\"gts<GTS> samples<LONG>  TLTTB  downsampled<GTS>\\nlgts<LIST<GTS>> samples<LONG>  TLTTB  ldownsampled<LIST<GTS>>\",\"documentation\":\"The `TLTTB` function performs downsampling of Geo Time Series™ by applying the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data. It differs from the [`LTTB`](doc/LTTB) function by the fact that it considers time based buckets instead of buckets based on a number of values.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"TLTTB\"},{\"name\":\"TOBIN\",\"detail\":\"input<STRING>  TOBIN  output<STRING>\\ninput<BYTES>  TOBIN  output<STRING>\\ninput<LONG>  TOBIN  output<STRING>\\ninput<BITSET>  TOBIN  output<STRING>\",\"documentation\":\"Converts the long on top of the stack to its 64 bits binary representation.\\n\\nSince the 2.8.0 version, this function also converts the byte array or the string on top of the stack to its binary representation. Thus, this function and [\\\\->BIN](/doc/AIt1HJs) are equivalent.\\n\\n@param `input` value to convert\\n\\n@param `output` String converted binary representation of param\\n\\n\",\"tags\":[\"conversion\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBIN\"},{\"name\":\"TOBITS\",\"detail\":\"number<NUMBER>  TOBITS  bits<LONG>\\ngts<GTS>  TOBITS  longgts<GTS>\",\"documentation\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n**Deprecation notice** the `TOBITS` function will be removed, please use `->DOUBLEBITS` or `->FLOATBITS`.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBITS\"},{\"name\":\"TOBOOLEAN\",\"detail\":\"value<BOOLEAN>  TOBOOLEAN  result<BOOLEAN>\\nvalue<NUMBER>  TOBOOLEAN  result<BOOLEAN>\\nvalue<STRING>  TOBOOLEAN  result<BOOLEAN>\",\"documentation\":\"Converts a value of primitive type into a boolean value.\\n\\nThe `TOBOOLEAN` function consumes a parameter from the top of the stack and pushes back its conversion to boolean.\\nNumbers will be false if they are equal to 0 and true otherwise.\\nStrings will be false if they are equals to '' and true otherwise.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The boolean conversion of the value\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.5\",\"OPB64name\":\"TOBOOLEAN\"},{\"name\":\"TODEGREES\",\"detail\":\"angle<NUMBER>  TODEGREES  result<DOUBLE>\\nlangle<LIST<NUMBER>>  TODEGREES  lresult<LIST<DOUBLE>>\\ngts<GTS>  TODEGREES  gtsresult<GTS>\",\"documentation\":\"Converts an angle measured in radians to its equivalent in degrees.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from radians to degrees.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in radian to convert in degree\\n\\n@param `result` Result of the conversion from radians to degrees\\n\\n@param `langle` List of angles in radian to convert in degree\\n\\n@param `lresult` List of results of the conversion from radians to degrees\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from radians to degrees of the given GTS values\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODEGREES\"},{\"name\":\"TODOUBLE\",\"detail\":\"value<BOOLEAN>  TODOUBLE  result<DOUBLE>\\nvalue<NUMBER>  TODOUBLE  result<DOUBLE>\\nvalue<STRING>  TODOUBLE  result<DOUBLE>\",\"documentation\":\"Converts a value of primitive type into a double value.\\n\\nThe `TODOUBLE` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to double.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The double conversion of the value\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODOUBLE\"},{\"name\":\"TOHEX\",\"detail\":\"input<STRING>  TOHEX  output<STRING>\\ninput<BYTES>  TOHEX  output<STRING>\\ninput<LONG>  TOHEX  output<STRING>\",\"documentation\":\"Converts a long to its 64 bits hexadecimal representation.\\n\\nSince the 2.8.0 version this function also decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV). Thus, this function is equivalent to [`->HEX`](/doc/AIt7GKV).\\n\\n@param `input` Signed long integer.\\n\\n@param `output` Hexadecimal string representation of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOHEX\"},{\"name\":\"TOINTEXACT\",\"detail\":\"value<NUMBER>  TOINTEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  TOINTEXACT  lresult<LIST<LONG>>\\ngts<GTS>  TOINTEXACT  gtsresult<GTS>\",\"documentation\":\"The `TOINTEXACT` function consumes one NUMBER from the top of the stack and puts back the value. If the result overflows an INT, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be checked not to overflow an INT\\n\\n@param `result` The given value\\n\\n@param `lvalue` List of values to be checked not to overflow an INT\\n\\n@param `lresult` List of given values\\n\\n@param `gts` Numerical GTS whose values are to be checked not to overflow an INT\\n\\n@param `gtsresult` A copy of the given GTS\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"TOINTEXACT\"},{\"name\":\"TOKENDUMP\",\"detail\":\"token<STRING>  TOKENDUMP  map<MAP>\\ntoken<STRING> secret<STRING>  TOKENDUMP  map<MAP>\\ntoken<STRING> aes<BYTES> hash<BYTES>  TOKENDUMP  map<MAP>\",\"documentation\":\"Deciphers a token and outputs a map describing the various elements of the token.\\n\\nThe map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Original token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| params | MAP | Map of token parameters, can be used as input to [`TOKENGEN`](/doc/TOKENGEN) |\\n\\nThe `params` map contains the following entries for both `READ` and `WRITE` tokens:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| type  | STRING | `READ` or `WRITE` depending on the type of token |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application asociated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in ms since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in ms since the Unix Epoch |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nAdditionally, for `READ` tokens, the map contains those entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, those will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nNote that the `TOKENDUMP` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration key was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to decode the token.\\n\\n@param `token` Token to decode.\\n\\n@param `map` Map with the extracted parameters, the original token and its *ident*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENDUMP` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENDUMP\"},{\"name\":\"TOKENGEN\",\"detail\":\"params<MAP>  TOKENGEN  result<MAP>\\nparams<MAP> secret<STRING>  TOKENGEN  result<MAP>\\nparams<MAP> aes<BYTES> hash<BYTES>  TOKENGEN  result<MAP>\",\"documentation\":\"Generates a token given a map of parameters. The `TOKENGEN` function outputs a map.\\n\\nThe input parameter map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| id | STRING | Optional identifier that will be put verbatim in the result map |\\n| type  | STRING | `READ` or `WRITE` depending on the type of token to generate |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application associated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| ttl | LONG | If `expiry` is not specified, a time to live can be set with this key. The TTL is expressed in **milliseconds**, the computed expiry timestamp will be the issuance timestamp plus the ttl |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nWhen generating a `READ` token, the following parameters are needed to ensure data isolation:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, they will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nIf one of these parameter key is not set or set to an empty list, then the generated `READ` token will be granted access to all the scope associated with the parameter key. For example, if `owners` is not set, data from all owners will be accessible to this token.\\n\\nThe `TOKENGEN` function outputs a map with the following keys:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Generated token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| id | STRING | Optional identifier if the `id` key was specified in the parameter map |\\n\\nNote that the `TOKENGEN` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to create the token.\\n\\n@param `params` Map of parameters used to generate the token.\\n\\n@param `result` Map containing the token, its *ident* and an optional *id*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENGEN` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENGEN\"},{\"name\":\"TOKENINFO\",\"detail\":\"token<STRING>  TOKENINFO  infos<MAP>\",\"documentation\":\"Retrieves information from token.\\n\\nThe `TOKENINFO` function consumes a token from the top of the stack and pushes back a map containing the token information:\\n* type: type of token 'Read' or 'Write'\\n* issuance: timestamp of token creation, in **milliseconds** since the Unix Epoch \\n* expiry: timestamp of token expiration, in **milliseconds** since the Unix Epoch \\n* application: name of the application accessing the data\\n* apps: list of applications whose data can be accessed (usually limited to a single application)\\n\\n@param `token` Token to extract information\\n\\n@param `infos` Token information extract from the tokens\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOKENINFO\"},{\"name\":\"TOKENSECRET\",\"detail\":\"newsecret<STRING> secret<STRING>  TOKENSECRET \",\"documentation\":\"Modifies the secret needed for using `TOKENGEN` or `TOKENDUMP`.\\n\\nThis function is only usable if a secret was configured using `token.secret`.\\n\\n@param `secret` Current secret for token operations, initially the value configured via `token.secret`.\\n\\n@param `newsecret` New secret to set for token operations.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TOKENSECRET\"},{\"name\":\"TOLONG\",\"detail\":\"value<BOOLEAN>  TOLONG  result<LONG>\\nvalue<NUMBER>  TOLONG  result<LONG>\\nvalue<STRING>  TOLONG  result<LONG>\\narray<BYTES>  TOLONG  result<LONG>\",\"documentation\":\"Converts a value of primitive type or a **BYTE ARRAY** into a long value.\\n\\nThe `TOLONG` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to long.\\n\\nBeware of string inputs with leading zeros: it could be considered as octal. See examples below.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The long conversion of the value\\n\\n@param `array` Maximum 8 bytes to convert to a LONG. Sign is kept.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLONG\"},{\"name\":\"TOLOWER\",\"detail\":\"input<STRING>  TOLOWER  output<STRING>\",\"documentation\":\"Converts the **STRING** on top of the stack to lower case.\\n\\n@param `input` input string\\n\\n@param `output` Lower case string\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLOWER\"},{\"name\":\"TORADIANS\",\"detail\":\"angle<NUMBER>  TORADIANS  result<DOUBLE>\\nlangle<LIST<NUMBER>>  TORADIANS  lresult<LIST<DOUBLE>>\\ngts<GTS>  TORADIANS  gtsresult<GTS>\",\"documentation\":\"Converts an angle measured in degrees to its equivalent in radians.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from degrees to radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in degree to convert in radian\\n\\n@param `result` Result of the conversion from degree to radian\\n\\n@param `langle` List of angles in degree to convert in radian\\n\\n@param `lresult` List of results of the conversion from degree to radian\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from degree to radian of the given GTS values\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TORADIANS\"},{\"name\":\"TOSELECTOR\",\"detail\":\"gts<GTS>  TOSELECTOR  selector<STRING>\\ngtslist<LIST<GTS>>  TOSELECTOR  selectorlist<LIST<STRING>>\\nencoder<GTSENCODER>  TOSELECTOR  selector<STRING>\\nencoderlist<LIST<GTSENCODER>>  TOSELECTOR  selectorlist<LIST<STRING>>\",\"documentation\":\"The `TOSELECTOR` function takes a Geo Time Series™ or Geo Time Series™ LIST from the top of the stack and, for each encountered GTS, replace it with a selector which would select it.\\n\\nThis selector can be used as input of [`PARSESELECTOR`](/doc/PARSESELECTOR) for a [`FETCH`](/doc/FETCH).\\n\\n@param `gts` The input Geo Time Series™.\\n\\n@param `gtslist` The input list of Geo Time Series™.\\n\\n@param `encoder` The input encoder.\\n\\n@param `encoderlist` The input list of encoders.\\n\\n@param `selector` The selector string.\\n\\n@param `selectorlist` The list of selector strings, one per GTS in gtslist.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSELECTOR\"},{\"name\":\"TOSTRING\",\"detail\":\"value<NUMBER>  TOSTRING  result<STRING>\\nvalue<BOOLEAN>  TOSTRING  result<STRING>\\nvalue<STRING>  TOSTRING  result<STRING>\\nvalue<GTS>  TOSTRING  result<STRING>\",\"documentation\":\"Converts a value of primitive type into a string value.\\n\\nThe `TOSTRING` function consumes a parameter from the top of the stack and pushes back its conversion to string.\\n\\nNote that GTS are converted to input format and that the string ends with CRLF to follow HTTP recommendations.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The string conversion of the value\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSTRING\"},{\"name\":\"TOTIMESTAMP\",\"detail\":\"input<STRING>  TOTIMESTAMP  result<LONG>\",\"documentation\":\"Converts a date in format ISO8601 into a timestamp in the platform's time unit.\\n\\nThe `TOTIMESTAMP` function consumes a string parameter (date + time + time zone) from the top of the stack and pushes back its conversion to a number of time units since the Unix Epoch.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nThe supported format is ISO8601 and are:\\n* yyyy-mm-dddThh:mm:ss.ssssssZ\\n* yyyy-mm-dddThh:mm:ss+hh:mm\\n\\nAs the string are URL encoded, the symbol + have to be replaced by %2B, otherwise a space will replace the + in the string.\\n\\n@param `input` ISO8601 string.\\n\\n@param `result` timestamp in the platform unit.\\n\\n\",\"tags\":[\"conversion\",\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOTIMESTAMP\"},{\"name\":\"TOUPPER\",\"detail\":\"input<STRING>  TOUPPER  output<STRING>\",\"documentation\":\"Converts the **STRING** on top of the stack to upper case.\\n\\n@param `input` input string\\n\\n@param `output` Upper case string\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOUPPER\"},{\"name\":\"TR\",\"detail\":\"matrix<MATRIX>  TR  trace<DOUBLE>\",\"documentation\":\"Computes the [trace](https://en.wikipedia.org/wiki/Trace_(linear_algebra)) of a square matrix. If the input matrix is not square, an error is raised.\\n\\n@param `matrix` The square matrix for which to compute the trace.\\n\\n@param `trace` The computed trace.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TR\"},{\"name\":\"TRANSPOSE\",\"detail\":\"matrix<MATRIX>  TRANSPOSE  transpose<MATRIX>\",\"documentation\":\"Computes the [transpose](https://en.wikipedia.org/wiki/Transpose) of a matrix.\\n\\n@param `matrix` Matrix to transpose.\\n\\n@param `transpose` The transpose of the original matrix.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TRANSPOSE\"},{\"name\":\"TRIM\",\"detail\":\"str<STRING>  TRIM  trimmedstr<STRING>\",\"documentation\":\"Trims whitespaces from both ends of the string on top of the stack.\\n\\n@param `str` String to trim\\n\\n@param `trimmedstr` String trimmed\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TRIM\"},{\"name\":\"TRY\",\"detail\":\"try<MACRO> catch<MACRO> finally<MACRO>  TRY \",\"documentation\":\"The `TRY` function provides a way to execute a macro in a safety harness with [Exception handling](https://en.wikipedia.org/wiki/Exception_handling).\\n\\nIf an error is thrown, it is recorded and will be available via [`ERROR`](/doc/ERROR).\\n\\n@param `try` Macro whose execution is *attempted*.\\n\\n@param `catch` Macro which will be executed if an error is encountered while executing the `try` macro.\\n\\n@param `finally` Macro which will be executed unconditionally after either the `try` or `try`/`catch` execution.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"TRY\"},{\"name\":\"TSELEMENTS\",\"detail\":\"timestamp<LONG>  TSELEMENTS  dateAndTimeElements<LIST<LONG>>\\ntimestamp<LONG> timezone<STRING>  TSELEMENTS  dateAndTimeElements<LIST<LONG>>\",\"documentation\":\"Alias of [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nThe `TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"TSELEMENTS\"},{\"name\":\"TSELEMENTS->\",\"detail\":\"dateAndTimeElements<LIST<LONG>>  TSELEMENTS->  timestamp<LONG>\\ndateAndTimeElements<LIST<LONG>> timezone<STRING>  TSELEMENTS->  timestamp<LONG>\",\"documentation\":\"The `TSELEMENTS->` function consumes an optional **STRING** timezone and a **LIST** of **LONG** describing a time and date and pushes back the **LONG** timestamp. The **LIST** of **LONG** follows the format given by [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"K4C4I3KCGJtJJmoy\"},{\"name\":\"TYPEOF\",\"detail\":\"object<ANY>  TYPEOF  type<STRING>\",\"documentation\":\"Gets the type of an element.\\n\\nThe `TYPEOF` function consumes the top element on the stack and pushes back a string containing the type. The output could be:\\n+ AGGREGATOR\\n+ BITSET\\n+ BOOLEAN\\n+ BYTES\\n+ CONTEXT\\n+ COUNTER\\n+ DOUBLE\\n+ FILLER\\n+ FILTER\\n+ FUNCTION\\n+ GEOSHAPE\\n+ GTS\\n+ GTSENCODER\\n+ KEY\\n+ LIST\\n+ LONG\\n+ MACRO\\n+ MAP\\n+ MARK\\n+ MATCHER\\n+ MATRIX\\n+ NULL\\n+ OPERATOR\\n+ PFONT\\n+ PGRAPHICS\\n+ PIMAGE\\n+ PSHAPE\\n+ SET\\n+ STRING\\n+ VECTOR\\n+ VLIST\\n\\nFor any object introduced by a WarpScript extension whose output of TYPEOF is not in the list thereof, the output would be preceded by \\\"X-\\\".\\n\\nNote: since revision 2.5.0, the TYPEOF output of bucketizers, mappers, reducers is changed from 'MAPPER' to 'AGGREGATOR'.\\n\\n\\n@param `object` Any kind of reference\\n\\n@param `type` The type of the object\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"TYPEOF\"},{\"name\":\"UDF\",\"detail\":\"class<STRING>  UDF \",\"documentation\":\"The `UDF` function invokes a User Defined Function from a Jar. A new function instance is loaded at each invocation.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UDF\"},{\"name\":\"ULP\",\"detail\":\"value<NUMBER>  ULP  ulp<DOUBLE>\\nlvalue<LIST<NUMBER>>  ULP  lulp<LIST<DOUBLE>>\\ngts<GTS>  ULP  gtsresult<GTS>\",\"documentation\":\"Returns the size of the [ULP (Unit in the Last Place)](https://en.wikipedia.org/wiki/Unit_in_the_last_place) for the argument. The ulp for a DOUBLE is the positive distance between this floating-point value and the DOUBLE value next larger in magnitude.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `ulp` Computed ULP.\\n\\n@param `lvalue` List of numeric values.\\n\\n@param `lulp` List of computed ULPs.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the ULP of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ULP\"},{\"name\":\"UNBUCKETIZE\",\"detail\":\"gts<GTS>  UNBUCKETIZE  gts<GTS>\\nlgts<LIST<GTS>>  UNBUCKETIZE  lgts<LIST<GTS>>\",\"documentation\":\"Transforms a bucketized Geo Time Series™ into a non bucketized one. Note that this function transforms the original GTS, it does not clone it.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™ instances.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNBUCKETIZE\"},{\"name\":\"UNBUCKETIZE.CALENDAR\",\"detail\":\"gts<GTS>  UNBUCKETIZE.CALENDAR  gts<GTS>\\nlgts<LIST<GTS>>  UNBUCKETIZE.CALENDAR  lgts<LIST<GTS>>\",\"documentation\":\"On a GTS that is calendar-bucketized, this function replaces the ticks with the timestamp end boundaries of each bucket, and unbucketize it.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `lgts` One or more lists of Geo Time Series™\\n\\n\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"UNBUCKETIZE.CALENDAR\"},{\"name\":\"UNGZIP\",\"detail\":\"compressed<BYTES>  UNGZIP  uncompressed<BYTES>\",\"documentation\":\"Decompresses a byte array containing data compressed by [`GZIP`](doc/GZIP).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNGZIP\"},{\"name\":\"UNION\",\"detail\":\"setA<SET> setB<SET>  UNION  output<SET>\",\"documentation\":\"Computes the union &#x222a; of two sets.\\n\\nThe `UNION` function consumes two sets from the top of the stack and pushes back its mathematical union.\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x222a; *B*\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNION\"},{\"name\":\"UNIQUE\",\"detail\":\"input<LIST>  UNIQUE  output<LIST>\",\"documentation\":\"The `UNIQUE` function eliminates duplicate elements on the LIST on the top of the stack.\\nThe order of the resulting LIST is not the same than the original one.\\n\\nIt makes elements of a list unique by converting it to a set temporarily. See [()](/doc/91Z) for more informations.\\n\\n@param `input` The list to parse\\n\\n@param `output` The new list object, without any duplicates\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNIQUE\"},{\"name\":\"UNLIST\",\"detail\":\"list<LIST>  UNLIST  mark<MARK> elts<ANY*>\",\"documentation\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`]`](/doc/MF).\\n\\n@param `list` List to expand.\\n\\n@param `elts` Elements of `list`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNLIST\"},{\"name\":\"UNMAP\",\"detail\":\"map<MAP>  UNMAP  mark<MARK> k1<ANY> v1<ANY> kN<ANY> vN<ANY>\",\"documentation\":\"Unpacks a map, pushing its keys and values onto the stack along a mark as the deepest stack element such that one can use [`}`](/doc/UF) to rebuild the map.\\n\\n@param `k1` First map key.\\n\\n@param `v1` First map value.\\n\\n@param `kN` Nth map key.\\n\\n@param `vN` Nth map value.\\n\\n@param `map` Map to unpack.\\n\\n@param `mark` Mark indicating the deepest level to consider when building the map.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNMAP\"},{\"name\":\"UNPACK\",\"detail\":\"list<BYTES> format<STRING>  UNPACK  result<LIST<ANY>>\",\"documentation\":\"The `UNPACK` function unpacks a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n* **<**: No bigendian\\n* **>**: Bigendian\\n* **L**: Long\\n* **B**: Boolean\\n* **D**: Double length always equals 64.\\n* **<L32**: No bigendian 32 bits Long\\n\\n@param `list` Pqcked list to unpack\\n\\n@param `format` Format used to unpack\\n\\n@param `result` Unpacked list\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"UNPACK\"},{\"name\":\"UNSECURE\",\"detail\":\"secure<STRING>  UNSECURE  script<STRING>\",\"documentation\":\"The `UNSECURE` function decrypts a secure script. The correct secret MUST have been set using [`SECUREKEY`](doc/SECUREKEY) prior to calling this function.\\n\\n@param `secure` STRING with the secure script to decode.\\n\\n@param `script` Decoded scripted.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNSECURE\"},{\"name\":\"UNSET\",\"detail\":\"set<SET>  UNSET  mark<MARK> elts<ANY*>\",\"documentation\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`)`](/doc/9F).\\n\\n@param `set` Set to expand.\\n\\n@param `elts` Elements of `set`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"2.6.0\",\"OPB64name\":\"UNSET\"},{\"name\":\"UNTIL\",\"detail\":\"code<MACRO> condition<MACRO>  UNTIL \\ncode<MACRO> condition<MACRO> index<BOOLEAN>  UNTIL \",\"documentation\":\"The `UNTIL` function implements an until loop. It takes two macros as arguments from the stack: the code to execute until the condition is true and the condition to evaluate after every iteration.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force UNTIL to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `code` Macro executed on each loop\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNTIL\"},{\"name\":\"UNWRAP\",\"detail\":\"wrapped<STRING>  UNWRAP  gts<GTS>\\nwrappedbytes<BYTES>  UNWRAP  gts<GTS>\\nlwrapped<LIST<STRING>>  UNWRAP  lgts<LIST<GTS>>\\nlwrapped<LIST<BYTES>>  UNWRAP  lgts<LIST<GTS>>\",\"documentation\":\"Unwraps packed Geo Time Series™ instances.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNWRAP\"},{\"name\":\"UNWRAPEMPTY\",\"detail\":\"wrapped<STRING>  UNWRAPEMPTY  gts<GTS>\\nwrappedbytes<BYTES>  UNWRAPEMPTY  gts<GTS>\\nlwrapped<LIST<STRING>>  UNWRAPEMPTY  lgts<LIST<GTS>>\\nlwrapped<LIST<BYTES>>  UNWRAPEMPTY  lgts<LIST<GTS>>\",\"documentation\":\"Unwraps wrapped Geo Time Series™ instances without unpacking the actual datapoints. This is handy to extract the metadata (class, labels, attributes) from a set of wrapped GTS.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPEMPTY\"},{\"name\":\"UNWRAPENCODER\",\"detail\":\"wrapped<STRING>  UNWRAPENCODER  encoder<GTSENCODER>\\nwrappedbytes<BYTES>  UNWRAPENCODER  encoder<GTSENCODER>\\nlwrapped<LIST<STRING>>  UNWRAPENCODER  lencoder<LIST<GTSENCODER>>\\nlwrapped<LIST<BYTES>>  UNWRAPENCODER  lencoder<LIST<GTSENCODER>>\",\"documentation\":\"Unwraps packed Geo Time Series™ into encoders.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `encoder` Encoder with decoded Geo Time Series™ datapoints.\\n\\n@param `lencoder` List of encoders with decoded Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"UNWRAPENCODER\"},{\"name\":\"UNWRAPSIZE\",\"detail\":\"wrapped<STRING>  UNWRAPSIZE  size<LONG>\\nwrappedbytes<BYTES>  UNWRAPSIZE  size<LONG>\\nlwrapped<LIST<STRING>>  UNWRAPSIZE  lsize<LIST<LONG>>\\nlwrapped<LIST<BYTES>>  UNWRAPSIZE  lsize<LIST<LONG>>\",\"documentation\":\"Extracts the size (number of datapoints) of wrapped Geo Time Series™ instances.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `size` Decoded Geo Time Series™ size.\\n\\n@param `lsize` List of decoded Geo Time Series™ sizes.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPSIZE\"},{\"name\":\"UPDATE\",\"detail\":\"gts<GTS> token<STRING>  UPDATE \\nencoder<GTSENCODER> token<STRING>  UPDATE \\nlist<LIST<GTS>> token<STRING>  UPDATE \\nlist<LIST<GTSENCODER>> token<STRING>  UPDATE \",\"documentation\":\"Pushes Geo Time Series™ data to the Warp 10 instance.\\n\\nThe `UPDATE` function allows you to push data directly from your WarpScript code without having to retrieve the data and use the `/update` endpoint.\\n\\nThe GTS or Encoder instances to push *MUST* have a non empty name and in the case of Geo Time Series™ *MUST* have been renamed (to avoid pushing data by mistake which could override existing data you just retrieved).\\n\\n@param `token` Write token to use for pushing the data.\\n\\n@param `gts` Geo Time Series™ to push.\\n\\n@param `encoder` GTS Encoder to push.\\n\\n@param `list` List containing Geo Time Series™ and/or GTS Encoder instances to push.\\n\\n\",\"tags\":[\"gts\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"UPDATE\"},{\"name\":\"UPDATEOFF\",\"detail\":\"message<STRING> secret<STRING>  UPDATEOFF \",\"documentation\":\"Disables update operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when an update operation is attempted.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEOFF\"},{\"name\":\"UPDATEON\",\"detail\":\"secret<STRING>  UPDATEON \",\"documentation\":\"Enables update operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEON\"},{\"name\":\"URLDECODE\",\"detail\":\"encoded<STRING>  URLDECODE  decoded<STRING>\",\"documentation\":\"Decodes a [URL encoded](https://en.wikipedia.org/wiki/Percent-encoding) STRING.\\n\\n@param `encoded` Encoded STRING to decode.\\n\\n@param `decoded` Decoded STRING.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLDECODE\"},{\"name\":\"URLENCODE\",\"detail\":\"string<STRING>  URLENCODE  encoded<STRING>\",\"documentation\":\"Encodes a STRING using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and replacing occurrences of '+' with '%20'.\\n\\nThe character set used is [UTF-8](https://en.wikipedia.org/wiki/UTF-8).\\n\\n@param `string` Input STRING to encode.\\n\\n@param `encoded` Encoded version of 'string' using the UTF-8 character set.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLENCODE\"},{\"name\":\"URLFETCH\",\"detail\":\"url<STRING>  URLFETCH  result<LIST<LIST>>\\nurl<STRING> headers<MAP>  URLFETCH  result<LIST<LIST>>\\nurls<LIST<STRING>>  URLFETCH  result<LIST<LIST>>\\nurls<LIST<STRING>> headers<MAP>  URLFETCH  result<LIST<LIST>>\",\"documentation\":\"The `URLFETCH` function sends HTTP(S) GET requests, waits for the responses and puts them on the stack.\\n\\nFor security reasons, the stack must be authenticated for this function to work, see [`AUTHENTICATE`](/doc/AUTHENTICATE).\\n\\nSince 2.7.0, this function also accepts a MAP of headers.\\n\\n@param `url` The URL to send the GET request to. Must begin with `http://` or `https://`.\\n\\n@param `urls` The list of URLs to send the GET requests to. Each URL must begin with `http://` or `https://`. \\n\\n@param `result` A list containing, for each URL, a 4-element list. These 4-element lists contain, in this order, a LONG status code, a STRING status message or an empty STRING if not available, a MAP of headers and a STRING representing a bytes array encoded as base 64.\\n\\n@param `headers` \\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"1.0.2\",\"OPB64name\":\"URLFETCH\"},{\"name\":\"UUID\",\"detail\":\" UUID  uuid<STRING>\",\"documentation\":\"Pushes onto the stack a randomly generated [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).\\n\\n@param `uuid` Generated UUID string\\n\\n\",\"tags\":[\"misc\"],\"since\":\"1.0.0\",\"OPB64name\":\"UUID\"},{\"name\":\"V->\",\"detail\":\"list<VLIST>  V->  result<LIST>\",\"documentation\":\"The `V->` function converts a Vector (VLIST) on top of the stack into a list.\\n\\n@param `list` Input Vector.\\n\\n@param `result` Result list.\\n\\n\",\"tags\":[\"lists\",\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"KXoy\"},{\"name\":\"VALUEDEDUP\",\"detail\":\"gts<GTS> order<BOOLEAN>  VALUEDEDUP  dedupgts<GTS>\\nlgts<LIST<GTS>> order<BOOLEAN>  VALUEDEDUP  ldedupgts<LIST<GTS>>\",\"documentation\":\"Deletes duplicated values of the Geo Time Series™.\\n\\nThe `VALUEDEDUP` function takes as parameter a **GTS** or a **LIST** of **GTS** and it removes its duplicate values.\\n\\nExpects a boolean indicating whether we keep the oldest or most recent datapoint for a given value.\\n\\n@param `order` Boolean value, true for keeping the oldest datapoint for a given value, false otherwise.\\n\\n@param `gts` Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `lgts` List of Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `dedupgts` Geo Time Series™ with unique values.\\n\\n@param `ldedupgts` List of Geo Time Series™ with unique values.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEDEDUP\"},{\"name\":\"VALUEHISTOGRAM\",\"detail\":\"gts<GTS>  VALUEHISTOGRAM  histogram<MAP>\\nencoder<GTSENCODER>  VALUEHISTOGRAM  histogram<MAP>\\nlist<LIST<GTS>>  VALUEHISTOGRAM  lhistogram<LIST<MAP>>\",\"documentation\":\"Produces the value histogram of a Geo Time Series™ or (since 2.2.0) of a GTS Encoder.\\n\\nThe histogram is a map with an entry for each value (used as the map key), with an associated value equal to the number of occurrences of the value in the series.\\n\\nIf the input is a bucketized Geo Time Series™, the `NULL` key will have an associated value which is the number of buckets without values (assuming no datapoints were added at timestamps other than those of buckets).\\n\\nWhen the input is a GTS Encoder, keys may be BigDecimal, LONG, DOUBLE, BOOLEAN or STRING, binary values are not used as keys, their STRING representation (in ISO-8859-1) is used.\\n\\n@param `gts` Geo Time Series™ for which to compute the histogram\\n\\n@param `encoder` GTS Encoder for which to compute the histogram\\n\\n@param `histogram` The value histogram for the input Geo Time Series™ or GTS Encoder\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders\\n\\n@param `lhistogram` The list of value histogram maps\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEHISTOGRAM\"},{\"name\":\"VALUELIST\",\"detail\":\"map<MAP>  VALUELIST  values<LIST>\",\"documentation\":\"Gets values from a **MAP**.\\n\\nThe function `VALUELIST` extracts the values of a **MAP** on the top of the stack and pushes on the stack a list with those values. The **MAP** is consumed.\\n\\n\\n@param `map` Map for which to get the values.\\n\\n@param `values` List of values for the input MAP.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUELIST\"},{\"name\":\"VALUES\",\"detail\":\"gts<GTS>  VALUES  values<LIST>\\nlgts<LIST<GTS>>  VALUES  lvalues<LIST<LIST>>\\nencoder<GTSENCODER>  VALUES  values<LIST>\\nlencoder<LIST<GTSENCODER>>  VALUES  lvalues<LIST<LIST>>\",\"documentation\":\"Gets the values of Geo Time Series™ or encoders.\\n\\nThe `VALUES` function consumes a Geo Time Series™, an encoder or a list thereof from the stack, and it replaces each instance of Geo Time Series™ or encoder by a list of its values.\\n\\n\\n** Warning:** To be consistent with `VALUES`, use [`TICKLIST`](/doc/TICKLIST), not `TICKS`.\\n\\n\\n@param `gts` Geo Time Series™ for which to get the values.\\n\\n@param `lgts` List of Geo Time Series™ for which to get the values.\\n\\n@param `encoder` Encoder for which to get the values.\\n\\n@param `lencoder` List of encoders for which to get the values.\\n\\n@param `values` List of values from the input Geo Time Series™.\\n\\n@param `lvalues` List of list of values from the input Geo Time Series™ list.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUES\"},{\"name\":\"VALUESORT\",\"detail\":\"gts<GTS>  VALUESORT  sortedgts<GTS>\\nlgts<LIST<GTS>>  VALUESORT  lsortedgts<LIST<GTS>>\",\"documentation\":\"Sorts values of the Geo Time Series™ in ascending order.\\n\\nThe function `VALUESORT` takes the **GTS** on top of the stack and sort its values (and associated locations/elevations) in ascending order.\\n\\n@param `gts` Geo Time Series™ for which to sort the values.\\n\\n@param `sortedgts` Geo Time Series™ with sorted values.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lsortedgts` List of Geo Time Series™ with sorted values.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESORT\"},{\"name\":\"VALUESPLIT\",\"detail\":\"gts<GTS> label<STRING>  VALUESPLIT  splitedgts<LIST<GTS>>\\nlgts<LIST<GTS>> label<STRING>  VALUESPLIT  lsplitedgts<LIST<LIST<GTS>>>\",\"documentation\":\"Splits Geo Time Series™ by values.\\n\\nThe function `VALUESPLIT` takes one **STRING** on top of the stack plus one **GTS** or a list of **GTS**. It splits **GTS** by values and creates a **GTS** for each different value. For each new **GTS**, the label specified in parameter will be added.\\n\\nThe new **GTS** will be sorted by value with `VALUESORT`.\\n\\n@param `label` Label to add to the new Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ to split by value.\\n\\n@param `splitedgts` List of Geo Time Series™ splited by value.\\n\\n@param `lgts` List of Geo Time Series™ to split by value.\\n\\n@param `lsplitedgts` List of Geo Time Series™ splited by value.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESPLIT\"},{\"name\":\"VARINT->\",\"detail\":\"encoded<BYTES>  VARINT->  numbers<LIST<LONG>>\\nencoded<BYTES> count<LONG>  VARINT->  numbers<LIST<LONG>> processed<LONG>\",\"documentation\":\"The `VARINT` function decodes [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoded numbers.\\n\\n@param `numbers` List of decoded numbers.\\n\\n@param `encoded` Byte array containing the encoded number(s) to decode.\\n\\n@param `count` Maximum number of `LONG`s to decode.\\n\\n@param `processed` Number of bytes which were processed to decode the numbers.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"KZ4HHJtJAIs\"},{\"name\":\"VARS\",\"detail\":\"macro<MACRO>  VARS  vars<LIST<STRING>>\\nmacro<MACRO> onlyPoprAndStore<BOOLEAN>  VARS  vars<LIST<STRING>>\",\"documentation\":\"Extracts all variables used in a macro. The `VARS` function scans the macro for occurrences of `LOAD`, `STORE` or `CSTORE` functions and inspects the associated variable name. If such a name is not an explicit STRING, the call to `VARS` will fail with an error.\\n\\nThe list of symbols is sorted according to the number of occurrences encountered, decreasing.\\n\\n@param `macro` Macro to inspect.\\n\\n@param `vars` List of encountered symbols.\\n\\n@param `onlyPoprAndStore` Returns only variables used by POPR, CPOPR and STORE. Defaults to false.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"VARS\"},{\"name\":\"VEC->\",\"detail\":\"input<VECTOR>  VEC->  result<LIST>\",\"documentation\":\"The `VEC->` function converts a Vector into a list.\\n\\n\\n@param `input` Vector to convert\\n\\n@param `result` list\\n\\n\",\"tags\":[\"lists\",\"conversion\",\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"KZK2AIs\"},{\"name\":\"WEBCALL\",\"detail\":\"token<STRING> method<STRING> url<STRING> headers<MAP> body<STRING>  WEBCALL  uuid<STRING>\",\"documentation\":\"Makes an outbound HTTP call.\\n\\nNote that the hosts which may be reached via `WEBCALL` might have been restricted through the use of the `webcall.host.patterns` Warp&nbsp;10 configuration parameter.\\n\\nThe write token is here to check you have the right to send a webcall. If the write token is valid, then the request is sent. It will never be sent in the request.\\n\\nThe call to `WEBCALL` returns a UUID on the stack. The actual request is performed asynchronously, the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`.\\n\\n@param `body` body of the request.\\n\\n@param `headers` map of additionnal http headers.\\n\\n@param `url` supported schemes are http and https.\\n\\n@param `method` `GET` or `POST` string.\\n\\n@param `token` valid write token\\n\\n@param `uuid` the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`\\n\\n\",\"tags\":[\"web\"],\"since\":\"1.0.0\",\"OPB64name\":\"WEBCALL\"},{\"name\":\"WF.ADDREPO\",\"detail\":\"url<STRING>  WF.ADDREPO \",\"documentation\":\"The `WF.ADDREPO` function allows you to add a repository to the list of repositories taken into account by the WarpFleet™ macro resolver.\\n\\nIf the URL is valid (syntactically), then it will be added at the end of the current list of repositories scanned by the resolver. All repository URLs will then be validated by the `validator` macro defined in the configuration (`warpfleet.macros.validator`). Those URLs for which the `validator` macro returned true will be retained.\\n\\nNote that the repository is only added in the scope of the current stack.\\n\\n@param `url` URL to add to the list of repositories.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.ADDREPO\"},{\"name\":\"WF.GETREPOS\",\"detail\":\" WF.GETREPOS  repos<LIST<STRING>>\",\"documentation\":\"Retrieves the current list of repositories used by the WarpFleet™ resolver.\\n\\nNote that if the configuration disabled the use of this function (via `warpfleet.getrepos.disable`), the returned list will be empty even though it contains repositories.\\n\\n@param `repos` Current list of repository URLs.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.GETREPOS\"},{\"name\":\"WF.SETREPOS\",\"detail\":\"repos<LIST<STRING>>  WF.SETREPOS \",\"documentation\":\"Sets the list of repositories used by the WarpFleet™ resolver to the given value (list of valid URLs).\\n\\nEach URL is tested against WarpFleet™ validator macro to check if it is allowed. Non-valid ones are discarded.\\n\\nNote that this changes the list only for the scope of the current WarpScript execution.\\n\\n@param `repos` List of URLs to use for the WarpFleet™ resolver.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.SETREPOS\"},{\"name\":\"WFOFF\",\"detail\":\" WFOFF \",\"documentation\":\"The `WFOFF` function disables the WarpFleet™ Resolver. It can be re-enabled using `WFON`.\\n\\nThis is useful when you want to ensure that a macro call only looks it up locally.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFOFF\"},{\"name\":\"WFON\",\"detail\":\" WFON \",\"documentation\":\"The `WFON` function enables the WarpFleet™ Resolver after it has been disabled by `WFOFF`.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFON\"},{\"name\":\"WHILE\",\"detail\":\"condition<MACRO> code<MACRO>  WHILE \\ncondition<MACRO> code<MACRO> index<BOOLEAN>  WHILE \",\"documentation\":\"The `WHILE` function implements a while loop. It takes two macros as arguments from the stack: the condition macro to evaluate and the macro to execute while the condition is true.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force WHILE to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `code` Macro executed on each loop\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"WHILE\"},{\"name\":\"WHIRLPOOL\",\"detail\":\"input<BYTES>  WHIRLPOOL  result<BYTES>\",\"documentation\":\"The `WHIRLPOOL` function digests a byte array on the stack with the cryptographic hash function [Whirlpool](https://en.wikipedia.org/wiki/Whirlpool_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"WHIRLPOOL\"},{\"name\":\"WRAP\",\"detail\":\"encoder<GTSENCODER>  WRAP  wrapped<STRING>\\nlencoder<GTSENCODER>  WRAP  lwrapped<LIST<STRING>>\\ngts<GTS>  WRAP  wrapped<STRING>\\nlgts<LIST<GTS>>  WRAP  lwrapped<LIST<STRING>>\",\"documentation\":\"The `WRAP` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a STRING.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"WRAP\"},{\"name\":\"WRAPFAST\",\"detail\":\"encoder<GTSENCODER>  WRAPFAST  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPFAST  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPFAST  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPFAST  lwrapped<LIST<BYTES>>\",\"documentation\":\"The `WRAPFAST` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a byte array. For fast execution, the content of the GTS is not compressed, so the resulting byte array will be larger than that produced by `WRAPRAW`.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPFAST\"},{\"name\":\"WRAPMV\",\"detail\":\"encoder<GTSENCODER>  WRAPMV  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPMV  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPMV  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPMV  lwrapped<LIST<BYTES>>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPRAWOPT`, `WRAPMV` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPMV\"},{\"name\":\"WRAPMV!\",\"detail\":\"encoder<GTSENCODER>  WRAPMV!  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPMV!  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPMV!  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPMV!  lwrapped<LIST<BYTES>>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPMV`, `WRAPMV!` attempts to optimize the representation of DOUBLE values for Geo Time Series™ but unlike `WRAPMV`, it does not increase the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.        \\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.6.0\",\"OPB64name\":\"Kp80J3pL7F\"},{\"name\":\"WRAPOPT\",\"detail\":\"encoder<GTSENCODER>  WRAPOPT  wrapped<STRING>\\nlencoder<GTSENCODER>  WRAPOPT  lwrapped<LIST<STRING>>\\ngts<GTS>  WRAPOPT  wrapped<STRING>\\nlgts<LIST<GTS>>  WRAPOPT  lwrapped<LIST<STRING>>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a STRING. The packing performed by `WRAPOPT` differs from that of [`WRAP`](/doc/WRAP) only by the fact that `WRAPOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPOPT\"},{\"name\":\"WRAPRAW\",\"detail\":\"encoder<GTSENCODER>  WRAPRAW  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPRAW  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPRAW  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPRAW  lwrapped<LIST<BYTES>>\",\"documentation\":\"The `WRAPRAW` function packs a Geo Time Series™ into a byte array.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.7\",\"OPB64name\":\"WRAPRAW\"},{\"name\":\"WRAPRAWOPT\",\"detail\":\"encoder<GTSENCODER>  WRAPRAWOPT  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPRAWOPT  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPRAWOPT  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPRAWOPT  lwrapped<LIST<BYTES>>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES. The packing performed by `WRAPRAWOPT` differs from that of [`WRAPRAW`](/doc/WRAPRAW) only by the fact that `WRAPRAWOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPRAWOPT\"},{\"name\":\"WSINFO\",\"detail\":\"session<STRING>  WSINFO  infos<LIST<MAP>>\",\"documentation\":\"Displays information about WarpScript environments with a given session id. The information are returned as a map identical to that returned by [`WSPS`](/doc/WSPS):\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `session` Session of the environments to inspect.\\n\\n@param `infos` List of information about each WarpScript execution environment with 'session' as their session name.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSINFO\"},{\"name\":\"WSKILL\",\"detail\":\"uuid<STRING> secret<STRING>  WSKILL  status<BOOLEAN>\",\"documentation\":\"Kills the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP) and marking the environment as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to kill.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILL\"},{\"name\":\"WSKILLSESSION\",\"detail\":\"session<STRING>  WSKILLSESSION  count<LONG>\",\"documentation\":\"Kills the execution WarpScript programs by forcing a call to [`STOP`](/doc/STOP) and marking the environments as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `session` Session id of the WarpScript execution environments to kill.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILLSESSION\"},{\"name\":\"WSNAME\",\"detail\":\"name<STRING>  WSNAME  current<STRING>\",\"documentation\":\"Modifies the name associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stack.name` in the attributes map.\\n\\nName size is limited to 128 characters.\\n\\n@param `name` Name to assign to the calling execution environment, or `NULL` to simply read the current name.\\n\\n@param `current` Name assigned to the execution environment.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSNAME\"},{\"name\":\"WSPS\",\"detail\":\"secret<STRING>  WSPS  procs<LIST<MAP>>\",\"documentation\":\"Lists all the registers WarpScript execution environments. For each environment a map is returned with the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `procs` List of information about each registered WarpScript execution environment.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSPS\"},{\"name\":\"WSSESSION\",\"detail\":\"session<STRING>  WSSESSION  current<STRING>\",\"documentation\":\"Modifies the session id associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stackps.session` in the attributes map.\\n\\nSession id size is limited to 128 characters.\\n\\nSession can also be set by setting the `X-Warp10-WarpScriptSession` header.\\n\\nOnce the session has been set it cannot be modified.\\n\\n@param `session` Session id to assign to the calling execution environment, or NULL to simply read the current session id.\\n\\n@param `current` The session id assigned to the execution environment.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSESSION\"},{\"name\":\"WSSTACK\",\"detail\":\" WSSTACK \",\"documentation\":\"Select the WarpScript™ (*i.e.* SNAPSHOT) format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"WSSTACK\"},{\"name\":\"WSSTOP\",\"detail\":\"uuid<STRING> secret<STRING>  WSSTOP  status<BOOLEAN>\",\"documentation\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to stop.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOP\"},{\"name\":\"WSSTOPSESSION\",\"detail\":\"session<STRING>  WSSTOPSESSION  count<LONG>\",\"documentation\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\nThe environments to stop are identified by a session id.\\n\\n@param `session` Session of the WarpScript execution environments to stop.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOPSESSION\"},{\"name\":\"Z->\",\"detail\":\"z<BYTES> n<LONG> bitwidth<LONG>  Z->  longs<LIST<LONG>>\",\"documentation\":\"Unpacks LONG values from a [Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) stored in a byte array.\\n\\n@param `bitwidth` Size in bits of the LONG values to extract, from 1 to 63.\\n\\n@param `n` Number of LONG values to extract.\\n\\n@param `z` Byte array containing the Morton Code to unpack.\\n\\n@param `longs` List of extracted LONG values.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"LXoy\"},{\"name\":\"ZDISCORDS\",\"detail\":\"window_size<LONG> maximum<LONG> overlapping<BOOLEAN> distance<DOUBLE>  ZDISCORDS  result<GTS>\",\"documentation\":\"The `ZDISCORDS` function detects discords in a standardized ([`STANDARDIZE`](/doc/STANDARDIZE) Geo Time Series™. The discord detection\\n algorithm is based on identifying outlier patterns in the Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `ZDISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\nGiven the `ZDISCORDS` expects the Geo Time Series™ it operates on to be standardized ([`STANDARDIZE`](/doc/STANDARDIZE), the discord detection \\nalgorithm is more sensitive than that of [`DISCORDS`](/doc/DISCORDS).\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0.\\n\\n@param `overlapping` Flag indicating whether or not the `ZDISCORDS` function should report overlapping discords.\\n\\n@param `maximum` The maximum number of discords to identify.\\n\\n@param `window_size` Window size which is the width of each interval on which the pattern extraction should be performed, a pattern length which will determine how the window is segmented, and lastly a quantization scale which will determine how many different buckets will be used to ventilate the series values. (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `result` Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™.\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZDISCORDS\"},{\"name\":\"ZDTW\",\"detail\":\"gts1<GTS> gts2<GTS> threshold<DOUBLE>  ZDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> characteristic<STRING>  ZDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> distance<STRING> characteristic<STRING>  ZDTW  dtw<DOUBLE>\",\"documentation\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be Z-normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"ZDTW\"},{\"name\":\"ZIP\",\"detail\":\"input<LIST<LIST>>  ZIP  output<LIST<LIST>>\",\"documentation\":\"The function ZIP takes a list of lists as parameters. Each list which are not singletons must be of same size.\\n\\nIt returns a list of lists where the i-th list contains the i-th elements of each input list in the same order.\\n\\nAlso, it considers singletons as a list of the same size with a duplicated value.\\n\\n@param `input` List of lists\\n\\n@param `output` List of lists\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZIP\"},{\"name\":\"ZPATTERNDETECTION\",\"detail\":\"gts<GTS> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNDETECTION  result<GTS>\\nlgts<LIST<GTS>> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNDETECTION  lresult<LIST<GTS>>\",\"documentation\":\"The `ZPATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`ZPATTERNS`](/doc/ZPATTERNS) or [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe `ZPATTERNDETECTION` does not standardize the datapoints in the sliding window, assuming (wrongly) they already are.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `ZPATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform.\\n\\n@param `gts` The single GTS to transform.\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it.\\n\\n@param `lresult` The list of result GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNDETECTION\"},{\"name\":\"ZPATTERNS\",\"detail\":\"gts<GTS> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNS  result<GTS>\\nlgts<LIST<GTS>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNS  lresult<LIST<GTS>>\",\"documentation\":\"Extracts symbolic patterns from Geo Time Series™ as [`PATTERNS`](/doc/PATTERNS) does, but does not standardize each window, assuming (wrongly) the GTS windows are already standardized.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNS\"},{\"name\":\"ZSCORE\",\"detail\":\"gts<GTS> flag<BOOLEAN>  ZSCORE  result<GTS>\\ngtsList<LIST<GTS>> flag<BOOLEAN>  ZSCORE  resultList<LIST<GTS>>\",\"documentation\":\"The 'ZSCORE' function consumes a flag, then normalizes a Geo Time Series™ or a **LIST** of Geo Time Series™ that are below by replacing their values by their [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe flag indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median).\\n\\nIf the GTS isn’t of type **DOUBLE** or if the deviation equals 0, an exception is raised.\\n\\n@param `flag` Indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORE\"},{\"name\":\"ZSCORETEST\",\"detail\":\"gts<GTS> mad<BOOLEAN>  ZSCORETEST  result<LIST<LONG>>\\nlgts<LIST<GTS>> mad<BOOLEAN>  ZSCORETEST  lresult<LIST<LIST<LONG>>>\\ngts<GTS> mad<BOOLEAN> trigger<DOUBLE>  ZSCORETEST  result<LIST<LONG>>\\nlgts<LIST<GTS>> mad<BOOLEAN> trigger<DOUBLE>  ZSCORETEST  lresult<LIST<LIST<LONG>>>\",\"documentation\":\"The ZSCORETEST function detects outliers in a GTS by comparing the Z-score of its values with a given threshold.\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median). If this value is greater than the given threshold, it is flagged as an outlier.\\n\\nA LIST of ticks, corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n@param `gts` The Geo Time Series™ to test\\n\\n@param `result` List of the detected outliers timestamps\\n\\n@param `lgts` The list of Geo Time Series™ to test\\n\\n@param `lresult` List of list of the detected outliers timestamps\\n\\n@param `mad` False: use the mean/sigma, true: use the median/mad to calculate the Z-score\\n\\n@param `trigger` Optional threshold. Default value is 3.5\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORETEST\"},{\"name\":\"[\",\"detail\":\" [  mark<MARK>\",\"documentation\":\"Starts a list creation.\\n\\nThe `[` function creates a list by pushing a mark onto the stack. This is a syntactic help to better present list constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"tags\":[\"lists\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lk\"},{\"name\":\"[[\",\"detail\":\" [[  mark<MARK>\",\"documentation\":\"Pushes a MARK on the stack. This is a syntactic help to better present Vector (VLIST) constructions.\\n \\n\\n@param `mark` A MARK instance.\\n\\n\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"Lpg\"},{\"name\":\"[[]]\",\"detail\":\" [[]]  vector<VLIST>\",\"documentation\":\"Pushes an empty Vector onto the stack.\\n\\n@param `vector` Empty Vector.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.2.13\",\"OPB64name\":\"LphSMF\"},{\"name\":\"[]\",\"detail\":\"content<ANY>  []  newlist<LIST>\",\"documentation\":\"The [] function creates an empty LIST on the top of the stack.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newlist` list instance, initialized with content.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lpo\"},{\"name\":\"]\",\"detail\":\"mark<MARK> v1<ANY> vN<ANY>  ]  list<LIST>\",\"documentation\":\"Closes a currently open list and pushes it onto the stack.\\n\\n  The `]` function pops from the stack the elements of the list up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"MF\"},{\"name\":\"]]\",\"detail\":\"mark<MARK> v1<ANY> vN<ANY>  ]]  list<VLIST>\",\"documentation\":\"Closes a currently open Vector (VLIST) and pushes it onto the stack. The elements on the stack are those up to the first mark encountered. The mark is discarded.\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"MKo\"},{\"name\":\"^\",\"detail\":\"p1<LONG> p2<LONG>  ^  result<LONG>\\ninputgts<GTS> mask<LONG>  ^  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  ^  outputgts<GTS>\",\"documentation\":\"Performs a bitwise **XOR** operation.\\n\\nThe `^` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **XOR**.\\n\\nSince Warp 10™ 2.1, `^` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be XOR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with XOR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts XOR with mask\\n\\n\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"MV\"},{\"name\":\"babbage\",\"detail\":\" babbage  value<LONG>\",\"documentation\":\"The `babbage` function returns 1000.\\n\\nThe unit is named after [Charles Babbage](https://en.wikipedia.org/wiki/Charles_Babbage).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"babbage\"},{\"name\":\"bucketizer.and\",\"detail\":\" bucketizer.and  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.and` function applies the logical operator **AND** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.and\"},{\"name\":\"bucketizer.count\",\"detail\":\" bucketizer.count  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.count` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count\"},{\"name\":\"bucketizer.count.exclude-nulls\",\"detail\":\" bucketizer.count.exclude-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.count.exclude-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.exclude-nulls` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.exclude-nulls\"},{\"name\":\"bucketizer.count.include-nulls\",\"detail\":\" bucketizer.count.include-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.count.include-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.include-nulls function computes the number of values, including null values, found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.include-nulls\"},{\"name\":\"bucketizer.count.nonnull\",\"detail\":\" bucketizer.count.nonnull  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.count.nonnull` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.nonnull\"},{\"name\":\"bucketizer.first\",\"detail\":\" bucketizer.first  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.first` function returns the first value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.first` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.first\"},{\"name\":\"bucketizer.join\",\"detail\":\"separator<STRING>  bucketizer.join  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.join` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join\"},{\"name\":\"bucketizer.join.forbid-nulls\",\"detail\":\"separator<STRING>  bucketizer.join.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.join.forbid-nulls` has the same behavior as `bucketizer.join`, use `bucketizer.join` instead.\\n\\nThe `bucketizer.join.forbid-nulls` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join.forbid-nulls\"},{\"name\":\"bucketizer.last\",\"detail\":\" bucketizer.last  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.last` function returns the last value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.last` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.last\"},{\"name\":\"bucketizer.mad\",\"detail\":\" bucketizer.mad  bucketizer<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) of each bucket.\\n\\nThe returned location is the median of all the locations in the bucket, and the returned elevation is the median of all the elevations in the bucket.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.0\",\"OPB64name\":\"bucketizer.mad\"},{\"name\":\"bucketizer.max\",\"detail\":\" bucketizer.max  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.max` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max\"},{\"name\":\"bucketizer.max.forbid-nulls\",\"detail\":\" bucketizer.max.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.max.forbid-nulls` has the same behavior as `bucketizer.max`, use `bucketizer.max` instead.\\n\\nThe `bucketizer.max.forbid-nulls` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\nThe `bucketizer.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max.forbid-nulls\"},{\"name\":\"bucketizer.mean\",\"detail\":\" bucketizer.mean  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.mean` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean\"},{\"name\":\"bucketizer.mean.circular\",\"detail\":\"modulo<NUMBER>  bucketizer.mean.circular  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.mean.circular` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`bucketizer.mean.circular.exclude-nulls`](/doc/bucketizer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `bucketizer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular\"},{\"name\":\"bucketizer.mean.circular.exclude-nulls\",\"detail\":\"modulo<NUMBER>  bucketizer.mean.circular.exclude-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.mean.circular.exclude-nulls` has the same behavior as `bucketizer.mean.circular`, use `bucketizer.mean.circular` instead.\\n        \\nThe `bucketizer.mean.circular.exclude-nulls` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular.exclude-nulls\"},{\"name\":\"bucketizer.mean.exclude-nulls\",\"detail\":\" bucketizer.mean.exclude-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.mean.exclude-nulls` has the same behavior as `bucketizer.mean`, use `bucketizer.mean` instead.\\n \\nThe `bucketizer.mean.exclude-nulls` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.exclude-nulls\"},{\"name\":\"bucketizer.median\",\"detail\":\" bucketizer.median  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.median` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.median\"},{\"name\":\"bucketizer.median.forbid-nulls\",\"detail\":\" bucketizer.median.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.median.forbid-nulls` has the same behavior as `bucketizer.median`, use `bucketizer.median` instead.\\n\\nThe `bucketizer.median.forbid-nulls` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.4.0\",\"OPB64name\":\"bucketizer.median.forbid-nulls\"},{\"name\":\"bucketizer.min\",\"detail\":\" bucketizer.min  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.min` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min\"},{\"name\":\"bucketizer.min.forbid-nulls\",\"detail\":\" bucketizer.min.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.min.forbid-nulls` has the same behavior as `bucketizer.min`, use `bucketizer.min` instead.\\n\\nThe `bucketizer.min.forbid-nulls` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min.forbid-nulls\"},{\"name\":\"bucketizer.or\",\"detail\":\" bucketizer.or  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.or` function applies the logical operator **OR** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.or\"},{\"name\":\"bucketizer.percentile\",\"detail\":\"percentile<NUMBER>  bucketizer.percentile  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  bucketizer.percentile  bucketizer<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile\"},{\"name\":\"bucketizer.percentile.forbid-nulls\",\"detail\":\"percentile<NUMBER>  bucketizer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  bucketizer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.percentile.forbid-nulls` has the same behavior as `bucketizer.percentile`, use `bucketizer.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile.forbid-nulls\"},{\"name\":\"bucketizer.rms\",\"detail\":\" bucketizer.rms  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.rms` function returns the root mean square of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are the last one encountered for each bucket.\\n\\nThe `bucketizer.rms` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.18\",\"OPB64name\":\"bucketizer.rms\"},{\"name\":\"bucketizer.sd\",\"detail\":\"bessel<BOOLEAN>  bucketizer.sd  result<AGGREGATOR>\",\"documentation\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd\"},{\"name\":\"bucketizer.sd.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  bucketizer.sd.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.sd.forbid-nulls` has the same behavior as `bucketizer.sd`, use `bucketizer.sd` instead.\\n\\nThis bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd.forbid-nulls\"},{\"name\":\"bucketizer.sd.welford\",\"detail\":\"bessel<BOOLEAN>  bucketizer.sd.welford  result<AGGREGATOR>\",\"documentation\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.sd`](/doc/bucketizer.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.sd.welford\"},{\"name\":\"bucketizer.sum\",\"detail\":\" bucketizer.sum  bucketizer<AGGREGATOR>\",\"documentation\":\"The `bucketizer.sum` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum\"},{\"name\":\"bucketizer.sum.forbid-nulls\",\"detail\":\" bucketizer.sum.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `bucketizer.sum.forbid-nulls` has the same behavior as `bucketizer.sum`, use `bucketizer.sum` instead.\\n\\nThe `bucketizer.sum.forbid-nulls` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum.forbid-nulls\"},{\"name\":\"bucketizer.var\",\"detail\":\"bessel<BOOLEAN>  bucketizer.var  result<AGGREGATOR>\",\"documentation\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe `bucketizer.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var\"},{\"name\":\"bucketizer.var.welford\",\"detail\":\"bessel<BOOLEAN>  bucketizer.var.welford  result<AGGREGATOR>\",\"documentation\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.var`](/doc/bucketizer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe `bucketizer.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var.welford\"},{\"name\":\"buterin\",\"detail\":\" buterin  value<LONG>\",\"documentation\":\"The `buterin` function returns 1,000,000,000,000,000,000.\\n\\nThe unit is named after [Vitalik Buterin](https://en.wikipedia.org/wiki/Vitalik_Buterin).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"buterin\"},{\"name\":\"d\",\"detail\":\"input<NUMBER>  d  output<LONG>\",\"documentation\":\"Converts a number of days (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of days from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of days to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of days\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"d\"},{\"name\":\"e\",\"detail\":\" e  eValue<DOUBLE>\",\"documentation\":\"Alias of [E](/doc/GF).\\n\\nThe `e` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"OF\"},{\"name\":\"eth\",\"detail\":\" eth  value<LONG>\",\"documentation\":\"The `eth` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"eth\"},{\"name\":\"ether\",\"detail\":\" ether  value<LONG>\",\"documentation\":\"The `ether` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ether\"},{\"name\":\"filler.interpolate\",\"detail\":\" filler.interpolate  filler<FILLER>\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with a linear interpolation of enclosing values in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading or trailing ticks as there is no possible interpolation.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.interpolate\"},{\"name\":\"filler.next\",\"detail\":\" filler.next  filler<FILLER>\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with the next value in a Geo Time Series™.\\n\\nNote that this function will not fill missing trailing ticks as there is no next value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.next\"},{\"name\":\"filler.previous\",\"detail\":\" filler.previous  filler<FILLER>\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with the previous value in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading ticks as there is no previous value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.previous\"},{\"name\":\"filler.trend\",\"detail\":\" filler.trend  filler<FILLER>\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with the centroid of the points computed by projecting trends from both sides of the missing point.\\n\\nNote that this function will fill all missing points.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.trend\"},{\"name\":\"filter.all.eq\",\"detail\":\"filter-value<LONG>  filter.all.eq  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.eq  result<FILTER>\\nfilter-value<BOOLEAN>  filter.all.eq  result<FILTER>\\nfilter-value<STRING>  filter.all.eq  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.eq\"},{\"name\":\"filter.all.ge\",\"detail\":\"filter-value<LONG>  filter.all.ge  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.ge  result<FILTER>\\nfilter-value<STRING>  filter.all.ge  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ge\"},{\"name\":\"filter.all.gt\",\"detail\":\"filter-value<LONG>  filter.all.gt  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.gt  result<FILTER>\\nfilter-value<STRING>  filter.all.gt  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.gt\"},{\"name\":\"filter.all.le\",\"detail\":\"filter-value<LONG>  filter.all.le  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.le  result<FILTER>\\nfilter-value<STRING>  filter.all.le  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.le\"},{\"name\":\"filter.all.lt\",\"detail\":\"filter-value<LONG>  filter.all.lt  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.lt  result<FILTER>\\nfilter-value<STRING>  filter.all.lt  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.lt\"},{\"name\":\"filter.all.ne\",\"detail\":\"filter-value<LONG>  filter.all.ne  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.ne  result<FILTER>\\nfilter-value<BOOLEAN>  filter.all.ne  result<FILTER>\\nfilter-value<STRING>  filter.all.ne  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value does not equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ne\"},{\"name\":\"filter.any.eq\",\"detail\":\"filter-value<LONG>  filter.any.eq  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.eq  result<FILTER>\\nfilter-value<BOOLEAN>  filter.any.eq  result<FILTER>\\nfilter-value<STRING>  filter.any.eq  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.eq\"},{\"name\":\"filter.any.ge\",\"detail\":\"filter-value<LONG>  filter.any.ge  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.ge  result<FILTER>\\nfilter-value<STRING>  filter.any.ge  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ge\"},{\"name\":\"filter.any.gt\",\"detail\":\"filter-value<LONG>  filter.any.gt  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.gt  result<FILTER>\\nfilter-value<STRING>  filter.any.gt  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.gt\"},{\"name\":\"filter.any.le\",\"detail\":\"filter-value<LONG>  filter.any.le  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.le  result<FILTER>\\nfilter-value<STRING>  filter.any.le  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.le\"},{\"name\":\"filter.any.lt\",\"detail\":\"filter-value<LONG>  filter.any.lt  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.lt  result<FILTER>\\nfilter-value<STRING>  filter.any.lt  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.lt\"},{\"name\":\"filter.any.ne\",\"detail\":\"filter-value<LONG>  filter.any.ne  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.ne  result<FILTER>\\nfilter-value<BOOLEAN>  filter.any.ne  result<FILTER>\\nfilter-value<STRING>  filter.any.ne  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ne\"},{\"name\":\"filter.byattr\",\"detail\":\"filter<MAP>  filter.byattr  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose attributes match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.byattr\"},{\"name\":\"filter.byclass\",\"detail\":\"filter<STRING>  filter.byclass  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose class name matches the filter parameter.\\n\\n@param `filter` The filter parameter is a **STRING**, if it starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.byclass\"},{\"name\":\"filter.bylabels\",\"detail\":\"filter<MAP>  filter.bylabels  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bylabels\"},{\"name\":\"filter.bylabelsattr\",\"detail\":\"filter<MAP>  filter.bylabelsattr  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose attributes or labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes or labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.bylabelsattr\"},{\"name\":\"filter.bymetadata\",\"detail\":\"lgts<LIST<GTS>>  filter.bymetadata  filter<FILTER>\",\"documentation\":\"Filter GTSs by retaining those whose metadata **exactly** match at least one metadata from the given GTS list. \\n\\nThe metadata consists of the classname and labels.\\n\\n@param `lgts` List of GTSs to extract the metadata from.\\n\\n@param `filter` Filter to apply which will keep only GTSs with exact metadata matching.\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bymetadata\"},{\"name\":\"filter.byselector\",\"detail\":\"selector<STRING>  filter.byselector  result<FILTER>\",\"documentation\":\"This filter allow to select GTS with a standard or an extended selector.\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.byselector\"},{\"name\":\"filter.bysize\",\"detail\":\"min<LONG> max<LONG>  filter.bysize  result<FILTER>\",\"documentation\":\"Filter GTSs by retaining those whose size is contained between specified bounds (inclusive).\\n\\n@param `min` The minimum size\\n\\n@param `max` The maximum size\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.bysize\"},{\"name\":\"filter.last.eq\",\"detail\":\"filter-value<LONG>  filter.last.eq  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.eq  result<FILTER>\\nfilter-value<BOOLEAN>  filter.last.eq  result<FILTER>\\nfilter-value<STRING>  filter.last.eq  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.eq\"},{\"name\":\"filter.last.ge\",\"detail\":\"filter-value<LONG>  filter.last.ge  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.ge  result<FILTER>\\nfilter-value<STRING>  filter.last.ge  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ge\"},{\"name\":\"filter.last.gt\",\"detail\":\"filter-value<LONG>  filter.last.gt  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.gt  result<FILTER>\\nfilter-value<STRING>  filter.last.gt  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.gt\"},{\"name\":\"filter.last.le\",\"detail\":\"filter-value<LONG>  filter.last.le  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.le  result<FILTER>\\nfilter-value<STRING>  filter.last.le  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is less or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.le\"},{\"name\":\"filter.last.lt\",\"detail\":\"filter-value<LONG>  filter.last.lt  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.lt  result<FILTER>\\nfilter-value<STRING>  filter.last.lt  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is less than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.lt\"},{\"name\":\"filter.last.ne\",\"detail\":\"filter-value<LONG>  filter.last.ne  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.ne  result<FILTER>\\nfilter-value<BOOLEAN>  filter.last.ne  result<FILTER>\\nfilter-value<STRING>  filter.last.ne  result<FILTER>\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ne\"},{\"name\":\"filter.latencies\",\"detail\":\"minLatency<LONG> maxLatency<LONG> options<LIST<STRING>>  filter.latencies  filter<FILTER>\",\"documentation\":\"Pushes onto the stack a *pseudo* FILTER which computes latencies in a network. It uses the [`FILTER`](/doc/FILTER) framework for conveniency but really returns new GTS.\\n\\nThe input Geo Time Series™ are assumed to have values which are fingerprints of packet payloads. The first GTS is assumed to be the *uplink* and all the other GTS the *downlinks*.\\n\\nThe ticks are the time at which a packet with the given fingerprint was observed.\\n\\nThe generated Geo Time Series™ will have the same ticks as the uplink one, except the values will be latencies instead of packet fingerprints.\\n\\nThe `filter.latencies` function accepts a number of options:\\n\\n| Option | Description |\\n|--------|-------------|\\n| uplink.latency.min | Compute minimum latency on the uplink. |\\n| uplink.latency.max | Compute maximum latency on the uplink. |\\n| downlink.latency.min | Compute minimum latency on each downlink. |\\n| downlink.latency.max | Compute maximum latency on each downlink. |\\n| downlink.matches | Compute the number of matches for each downlink. |\\n| downlinks.totalmatches | Computes the total number of matches across downlinks. |\\n| downlinks.bitsets | Computes a bitset of downlinks which saw the packet (limited to 64 downlinks). |\\n| downlinks.withmatches | Computes the number of downlinks with matches for the given packet. |\\n\\nThis pseudo FILTER is very specific to a networking use case, but it is a good demonstration of the power of WarpScript and its frameworks.\\n\\n@param `options` List of options, see above for their description.\\n\\n@param `maxLatency` Maximum allowable latency, packets with latency above this threshold are ignored.\\n\\n@param `minLatency` Minimum latency, packets with a latency below this threshold are ignored.\\n\\n@param `filter` Instance of `filter.latencies`.\\n\\n\",\"tags\":[\"filter\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.latencies\"},{\"name\":\"finney\",\"detail\":\" finney  value<LONG>\",\"documentation\":\"The `finney` function returns 1,000,000,000,000,000.\\n\\nThe unit is named after [Hal Finney](https://en.wikipedia.org/wiki/Hal_Finney_(computer_scientist)).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"finney\"},{\"name\":\"gwei\",\"detail\":\" gwei  value<LONG>\",\"documentation\":\"The `gwei` function returns 1,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"gwei\"},{\"name\":\"h\",\"detail\":\"input<NUMBER>  h  output<LONG>\",\"documentation\":\"Converts a number of hours (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of hours from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of hours to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of hours\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"h\"},{\"name\":\"kwei\",\"detail\":\" kwei  value<LONG>\",\"documentation\":\"The `kwei` function returns 1000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"kwei\"},{\"name\":\"lovelace\",\"detail\":\" lovelace  value<LONG>\",\"documentation\":\"The `lovelace` function returns 1,000,000.\\n\\nThe unit is named after [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"lovelace\"},{\"name\":\"m\",\"detail\":\"input<NUMBER>  m  output<LONG>\",\"documentation\":\"Converts a number of minutes (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of minutes from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of minutes to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of minutes\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"m\"},{\"name\":\"mapper.abs\",\"detail\":\" mapper.abs  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the absolute value of single value in a sliding window.\\n\\nThe `mapper.abs` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.abs\"},{\"name\":\"mapper.add\",\"detail\":\"constant<DOUBLE>  mapper.add  result<AGGREGATOR>\\nconstant<LONG>  mapper.add  result<AGGREGATOR>\",\"documentation\":\"This mapper function adds a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.add` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.add` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Value to add\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.add\"},{\"name\":\"mapper.and\",\"detail\":\" mapper.and  result<AGGREGATOR>\",\"documentation\":\"This mapper function applies the logical operator **AND** on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.and\"},{\"name\":\"mapper.ceil\",\"detail\":\" mapper.ceil  result<AGGREGATOR>\",\"documentation\":\"This mapper function rounds the single value in a sliding window to the closests greater **LONG**.\\n\\nThe `mapper.ceil` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.ceil\"},{\"name\":\"mapper.count\",\"detail\":\" mapper.count  result<AGGREGATOR>\",\"documentation\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count\"},{\"name\":\"mapper.count.exclude-nulls\",\"detail\":\" mapper.count.exclude-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.count.exclude-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.exclude-nulls\"},{\"name\":\"mapper.count.include-nulls\",\"detail\":\" mapper.count.include-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.count.include-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.include-nulls\"},{\"name\":\"mapper.count.nonnull\",\"detail\":\" mapper.count.nonnull  result<AGGREGATOR>\",\"documentation\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.nonnull\"},{\"name\":\"mapper.day\",\"detail\":\"timezone<STRING>  mapper.day  result<AGGREGATOR>\\noffset<NUMBER>  mapper.day  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the day of the tick for which it is computed.\\n\\nThe `mapper.day` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n@param `timezone` Timezone to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.day\"},{\"name\":\"mapper.delta\",\"detail\":\" mapper.delta  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the delta between the last and first values (delta = last - first) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.delta` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does \\nnot return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.delta\"},{\"name\":\"mapper.dotproduct\",\"detail\":\"vector<LIST>  mapper.dotproduct  result<AGGREGATOR>\",\"documentation\":\"The `mapper.dotproduct` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct\"},{\"name\":\"mapper.dotproduct.positive\",\"detail\":\"vector<LIST>  mapper.dotproduct.positive  result<AGGREGATOR>\",\"documentation\":\"The `mapper.dotproduct.positive` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it sets all negative results to 0.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.positive\"},{\"name\":\"mapper.dotproduct.sigmoid\",\"detail\":\"vector<LIST>  mapper.dotproduct.sigmoid  result<AGGREGATOR>\",\"documentation\":\"The `mapper.dotproduct.sigmoid` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the sigmoid of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.sigmoid\"},{\"name\":\"mapper.dotproduct.tanh\",\"detail\":\"vector<LIST>  mapper.dotproduct.tanh  result<AGGREGATOR>\",\"documentation\":\"The `mapper.dotproduct.tanh` function consumes a vector as parameter (a **LIST* of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the \\n[hyperbolic tangent](https://en.wikipedia.org/wiki/Hyperbolic_function) of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.tanh\"},{\"name\":\"mapper.eq\",\"detail\":\"parameter<LONG>  mapper.eq  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.eq  result<AGGREGATOR>\\nparameter<BOOLEAN>  mapper.eq  result<AGGREGATOR>\\nparameter<STRING>  mapper.eq  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value in a sliding window which is equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.eq` function can be applied to data of any type.\\n\\nThe `mapper.eq` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.eq\"},{\"name\":\"mapper.eq.elev\",\"detail\":\"parameter<LONG>  mapper.eq.elev  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is equal to a given value.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.eq.elev` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.elev\"},{\"name\":\"mapper.eq.hhcode\",\"detail\":\"parameter<LONG>  mapper.eq.hhcode  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is equal to a given value.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.eq.hhcode` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.hhcode\"},{\"name\":\"mapper.eq.lat\",\"detail\":\"parameter<LONG>  mapper.eq.lat  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.eq.lat  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is equal to a given value.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.eq.lat` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lat\"},{\"name\":\"mapper.eq.lon\",\"detail\":\"parameter<LONG>  mapper.eq.lon  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.eq.lon  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is equal to a given value.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.eq.lon` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lon\"},{\"name\":\"mapper.eq.tick\",\"detail\":\"parameter<LONG>  mapper.eq.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is equal to a given value.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.eq.tick` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.tick\"},{\"name\":\"mapper.exp\",\"detail\":\"constant<LONG>  mapper.exp  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.exp  result<AGGREGATOR>\",\"documentation\":\"This mapper function raises a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.exp` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.exp` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\n> ## Note\\n> The `mapper.exp` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n>\\n> So you are looking for a way to apply the exponential function, ex, to a series of Geo Time Series™. It’s very easy to do it using `mapper.exp` and the\\n> [`e`](/doc/OF) constant.\\n\\n@param `result` Mapper to apply\\n\\n@param `constant` Constant to use\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.exp\"},{\"name\":\"mapper.finite\",\"detail\":\" mapper.finite  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns its input value only if it is finite (*i.e.* a non DOUBLE or a DOUBLE which is neither NaN nor Infinity).\\n\\n@param `result` Instance of mapper.finite.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.finite\"},{\"name\":\"mapper.first\",\"detail\":\" mapper.first  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.first` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.first\"},{\"name\":\"mapper.floor\",\"detail\":\" mapper.floor  result<AGGREGATOR>\",\"documentation\":\"This mapper function rounds the *single value* in a sliding window to the closests lower **LONG**.\\n\\nThe `mapper.floor` function can be applied to data of type **LONG** or **DOUBLE**.      \\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.floor\"},{\"name\":\"mapper.ge\",\"detail\":\"threshold<LONG>  mapper.ge  result<AGGREGATOR>\\nthreshold<STRING>  mapper.ge  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ge  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ge` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.ge` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ge\"},{\"name\":\"mapper.ge.elev\",\"detail\":\"threshold<LONG>  mapper.ge.elev  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ge.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.elev\"},{\"name\":\"mapper.ge.hhcode\",\"detail\":\"threshold<LONG>  mapper.ge.hhcode  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ge.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.hhcode\"},{\"name\":\"mapper.ge.lat\",\"detail\":\"threshold<LONG>  mapper.ge.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ge.lat  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ge.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lat\"},{\"name\":\"mapper.ge.lon\",\"detail\":\"threshold<LONG>  mapper.ge.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ge.lon  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ge.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lon\"},{\"name\":\"mapper.ge.tick\",\"detail\":\"threshold<LONG>  mapper.ge.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ge.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.tick\"},{\"name\":\"mapper.geo.approximate\",\"detail\":\"resolution<LONG>  mapper.geo.approximate  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack a mapper instance which will transform the input Geo Time Series™ by approximating the location to the given resolution.\\n\\nApproximation is done by clearing lower bits of the location [HHCode](https://en.wikipedia.org/wiki/HHCode). At resolution `R`, the lower `64 - 2R` bits are cleared.\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\n\\n\\n@param `resolution` HHCode resolution at which to approximate the locations. Resoluion is an even number between 2 (coarsest) and 32 (finest).\\n\\n@param `result` Instance of mapper.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.approximate\"},{\"name\":\"mapper.geo.clear\",\"detail\":\" mapper.geo.clear  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack a mapper which will discard location and elevation information when applied to a Geo Time Series™.\\n\\nThis mapper can only be applied to single values\\n\\n@param `result` Instance of the `mapper.geo.clear` mapper.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.geo.clear\"},{\"name\":\"mapper.geo.fence\",\"detail\":\"zone<GEOSHAPE>  mapper.geo.fence  result<AGGREGATOR>\",\"documentation\":\"This function produces a `mapper` which outputs a `BOOLEAN` for each point with an associated location. The value of the output is `true` if the location is inside the provided `GEOSHAPE` and `false` otherwise.\\nThe geo zone can be defined in [WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using [`GEO.WKT`](/doc/GEO.WKT) or in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) using [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `zone` Geographical zone.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"2.7.1\",\"OPB64name\":\"mapper.geo.fence\"},{\"name\":\"mapper.geo.outside\",\"detail\":\"geoZone<GEOSHAPE>  mapper.geo.outside  result<AGGREGATOR>\",\"documentation\":\"This mapper filters the Geo Time Series™, keeping only the points outside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.outside\"},{\"name\":\"mapper.geo.within\",\"detail\":\"geoZone<GEOSHAPE>  mapper.geo.within  result<AGGREGATOR>\",\"documentation\":\"This mapper filters the Geo Time Series™, keeping only the points inside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.within\"},{\"name\":\"mapper.gt\",\"detail\":\"threshold<LONG>  mapper.gt  result<AGGREGATOR>\\nthreshold<STRING>  mapper.gt  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.gt  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value in a sliding window which is greater than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.gt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.gt` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.gt\"},{\"name\":\"mapper.gt.elev\",\"detail\":\"threshold<LONG>  mapper.gt.elev  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is greater than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.gt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.elev\"},{\"name\":\"mapper.gt.hhcode\",\"detail\":\"threshold<LONG>  mapper.gt.hhcode  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.gt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.hhcode\"},{\"name\":\"mapper.gt.lat\",\"detail\":\"threshold<LONG>  mapper.gt.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.gt.lat  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is greater than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.gt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lat\"},{\"name\":\"mapper.gt.lon\",\"detail\":\"threshold<LONG>  mapper.gt.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.gt.lon  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is greater than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.gt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lon\"},{\"name\":\"mapper.gt.tick\",\"detail\":\"threshold<LONG>  mapper.gt.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is greater than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.gt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.tick\"},{\"name\":\"mapper.hdist\",\"detail\":\" mapper.hdist  hdistMapper<AGGREGATOR>\",\"documentation\":\"The `mapper.hdist` function computes the total distance traveled while going through the points in the sliding window in chronological order. This distance is in meters.\\n\\nThe distance used is the loxodromic distance aka rhumb line. As a consequence, elevation is not taken into account in the distance.\\n\\nIf a point has no position in the sliding window, it is ignored.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe `mapper.hdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `hdistMapper` A function which can be used in a mapper.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hdist\"},{\"name\":\"mapper.highest\",\"detail\":\" mapper.highest  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the value associated with the highest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the most recent is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.highest\"},{\"name\":\"mapper.hour\",\"detail\":\"timezone<STRING>  mapper.hour  result<AGGREGATOR>\\noffset<NUMBER>  mapper.hour  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the hour of the tick for which it is computed.\\n\\nThe `mapper.hour` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.hour\"},{\"name\":\"mapper.hspeed\",\"detail\":\" mapper.hspeed  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the horizontal speed along the path traveled in the sliding window.\\n\\nThe distance is computed by summing the distances along the rhumb line between two consecutive locations.\\n\\nIf there is only one tick in the sliding window, the speed is 0.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.hspeed` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hspeed\"},{\"name\":\"mapper.join\",\"detail\":\"separator<STRING>  mapper.join  result<AGGREGATOR>\",\"documentation\":\"This mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join\"},{\"name\":\"mapper.join.forbid-nulls\",\"detail\":\"separator<STRING>  mapper.join.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.join.forbid-nulls` has the same behavior as `mapper.join`, use `mapper.join` instead.\\n\\nThis mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join.forbid-nulls\"},{\"name\":\"mapper.kernel.cosine\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.cosine  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [cosine kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics.\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.cosine\"},{\"name\":\"mapper.kernel.epanechnikov\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.epanechnikov  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using an [epanechnikov kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.epanechnikov\"},{\"name\":\"mapper.kernel.gaussian\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.gaussian  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [gaussian kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.gaussian\"},{\"name\":\"mapper.kernel.logistic\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.logistic  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [logistic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.logistic\"},{\"name\":\"mapper.kernel.quartic\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.quartic  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [quartic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.quartic\"},{\"name\":\"mapper.kernel.silverman\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.silverman  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [silverman kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.silverman\"},{\"name\":\"mapper.kernel.triangular\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.triangular  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triangular kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triangular\"},{\"name\":\"mapper.kernel.tricube\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.tricube  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [tricube kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.tricube\"},{\"name\":\"mapper.kernel.triweight\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.triweight  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triweight kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triweight\"},{\"name\":\"mapper.kernel.uniform\",\"detail\":\"bandwidth<LONG> step<LONG>  mapper.kernel.uniform  result<AGGREGATOR>\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [uniform kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.uniform\"},{\"name\":\"mapper.last\",\"detail\":\" mapper.last  result<AGGREGATOR>\",\"documentation\":\"This [`mapper`](/doc/MAP) function returns the last value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.last` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.last\"},{\"name\":\"mapper.le\",\"detail\":\"threshold<DOUBLE>  mapper.le  result<AGGREGATOR>\\nthreshold<LONG>  mapper.le  result<AGGREGATOR>\\nthreshold<STRING>  mapper.le  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.le` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.le` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.le\"},{\"name\":\"mapper.le.elev\",\"detail\":\"threshold<LONG>  mapper.le.elev  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.le.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.elev\"},{\"name\":\"mapper.le.hhcode\",\"detail\":\"threshold<LONG>  mapper.le.hhcode  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.le.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.hhcode\"},{\"name\":\"mapper.le.lat\",\"detail\":\"threshold<LONG>  mapper.le.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.le.lat  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.le.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lat\"},{\"name\":\"mapper.le.lon\",\"detail\":\"threshold<LONG>  mapper.le.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.le.lon  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.le.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lon\"},{\"name\":\"mapper.le.tick\",\"detail\":\"threshold<LONG>  mapper.le.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.le.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.tick\"},{\"name\":\"mapper.log\",\"detail\":\"constant<DOUBLE>  mapper.log  result<AGGREGATOR>\\nconstant<LONG>  mapper.log  result<AGGREGATOR>\",\"documentation\":\"This mapper function takes the log of the **single value** in a sliding window in the base used as parameter to `mapper.log`.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.log` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.log` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\nThe `mapper.log` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n\\n@param `constant` Constant parameter\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.log\"},{\"name\":\"mapper.lowest\",\"detail\":\" mapper.lowest  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the value associated with the lowest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the one appearing first chronologically is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.lowest\"},{\"name\":\"mapper.lt\",\"detail\":\"threshold<DOUBLE>  mapper.lt  result<AGGREGATOR>\\nthreshold<LONG>  mapper.lt  result<AGGREGATOR>\\nthreshold<STRING>  mapper.lt  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value in a sliding window which is less than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.lt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.lt` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.lt\"},{\"name\":\"mapper.lt.elev\",\"detail\":\"threshold<LONG>  mapper.lt.elev  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is less than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.lt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.elev\"},{\"name\":\"mapper.lt.hhcode\",\"detail\":\"threshold<LONG>  mapper.lt.hhcode  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.lt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.hhcode\"},{\"name\":\"mapper.lt.lat\",\"detail\":\"threshold<LONG>  mapper.lt.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.lt.lat  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is less than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.lt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lat\"},{\"name\":\"mapper.lt.lon\",\"detail\":\"threshold<LONG>  mapper.lt.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.lt.lon  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is less than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.lt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lon\"},{\"name\":\"mapper.lt.tick\",\"detail\":\"threshold<LONG>  mapper.lt.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is less than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.lt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.tick\"},{\"name\":\"mapper.mad\",\"detail\":\" mapper.mad  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) over each sliding window.\\n\\nThe returned location is the median of all the locations in the sliding window, and the returned elevation is the median of all the elevations in the window.\\n\\n@param `result` Instance of `mapper.mad`.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.0\",\"OPB64name\":\"mapper.mad\"},{\"name\":\"mapper.max\",\"detail\":\" mapper.max  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max\"},{\"name\":\"mapper.max.forbid-nulls\",\"detail\":\" mapper.max.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.max.forbid-nulls` has the same behavior as `mapper.max`, use `mapper.max` instead.\\n\\nThis mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max.forbid-nulls\"},{\"name\":\"mapper.max.x\",\"detail\":\"constant<DOUBLE>  mapper.max.x  result<AGGREGATOR>\\nconstant<LONG>  mapper.max.x  result<AGGREGATOR>\\nconstant<STRING>  mapper.max.x  result<AGGREGATOR>\\nconstant<BOOLEAN>  mapper.max.x  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the max between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.max.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.max.x\"},{\"name\":\"mapper.mean\",\"detail\":\" mapper.mean  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean\"},{\"name\":\"mapper.mean.circular\",\"detail\":\"modulo<NUMBER>  mapper.mean.circular  result<AGGREGATOR>\",\"documentation\":\"This function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`mapper.mean.circular.exclude-nulls`](/doc/mapper.mean.circular.exclude-nulls) if your sliding windows may contain nulls.\\n\\nThe `mapper.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular\"},{\"name\":\"mapper.mean.circular.exclude-nulls\",\"detail\":\"modulo<NUMBER>  mapper.mean.circular.exclude-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.mean.circular.exclude-nulls` has the same behavior as `mapper.mean.circular`, use `mapper.mean.circular` instead.\\n\\nThis function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular.exclude-nulls` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `mapper.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular.exclude-nulls\"},{\"name\":\"mapper.mean.exclude-nulls\",\"detail\":\" mapper.mean.exclude-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.mean.exclude-nulls` has the same behavior as `mapper.mean`, use `mapper.mean` instead.\\n        \\nThis mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.exclude-nulls\"},{\"name\":\"mapper.median\",\"detail\":\" mapper.median  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median`.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.median\"},{\"name\":\"mapper.median.forbid-nulls\",\"detail\":\" mapper.median.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.median.forbid-nulls` has the same behavior as `mapper.median`, use `mapper.median` instead.\\n\\nPushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median.forbid-nulls`.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"2.4.0\",\"OPB64name\":\"mapper.median.forbid-nulls\"},{\"name\":\"mapper.min\",\"detail\":\" mapper.min  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min\"},{\"name\":\"mapper.min.forbid-nulls\",\"detail\":\" mapper.min.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.min.forbid-nulls` has the same behavior as `mapper.min`, use `mapper.min` instead.\\n\\nThis mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min.forbid-nulls\"},{\"name\":\"mapper.min.x\",\"detail\":\"constant<DOUBLE>  mapper.min.x  result<AGGREGATOR>\\nconstant<LONG>  mapper.min.x  result<AGGREGATOR>\\nconstant<STRING>  mapper.min.x  result<AGGREGATOR>\\nconstant<BOOLEAN>  mapper.min.x  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the min between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.min.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.min.x\"},{\"name\":\"mapper.minute\",\"detail\":\"timezone<STRING>  mapper.minute  result<AGGREGATOR>\\noffset<NUMBER>  mapper.minute  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the minute of the tick for which it is computed.\\n\\nThe `mapper.minute` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.minute\"},{\"name\":\"mapper.mod\",\"detail\":\"modulus<NUMBER>  mapper.mod  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the remainder of a value given a modulus.\\n\\nThis MAPPER can only be applied to a single value.\\n\\n@param `modulus` Modulus to consider when computing the remainder.\\n\\n@param `result` Instance of `mapper.mod`.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"mapper.mod\"},{\"name\":\"mapper.month\",\"detail\":\"timezone<STRING>  mapper.month  result<AGGREGATOR>\\noffset<NUMBER>  mapper.month  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the month of the tick for which it is computed.\\n\\nThe `mapper.month` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.month\"},{\"name\":\"mapper.mul\",\"detail\":\"constant<LONG>  mapper.mul  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.mul  result<AGGREGATOR>\",\"documentation\":\"This mapper function multiplies by a constant the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.mul` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.mul` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.mul\"},{\"name\":\"mapper.ne\",\"detail\":\"parameter<LONG>  mapper.ne  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.ne  result<AGGREGATOR>\\nparameter<BOOLEAN>  mapper.ne  result<AGGREGATOR>\\nparameter<STRING>  mapper.ne  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first value in a sliding window which is not equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ne` function can be applied to data of any type.\\n\\nThe `mapper.ne` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ne\"},{\"name\":\"mapper.ne.elev\",\"detail\":\"threshold<LONG>  mapper.ne.elev  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is not equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ne.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.elev\"},{\"name\":\"mapper.ne.hhcode\",\"detail\":\"threshold<LONG>  mapper.ne.hhcode  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is not equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ne.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.hhcode\"},{\"name\":\"mapper.ne.lat\",\"detail\":\"threshold<LONG>  mapper.ne.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ne.lat  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ne.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lat\"},{\"name\":\"mapper.ne.lon\",\"detail\":\"threshold<LONG>  mapper.ne.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ne.lon  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ne.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lon\"},{\"name\":\"mapper.ne.tick\",\"detail\":\"threshold<LONG>  mapper.ne.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is not equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ne.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.tick\"},{\"name\":\"mapper.npdf\",\"detail\":\"mu<DOUBLE> sigma<DOUBLE>  mapper.npdf  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the probability of a value given a normal distribution.\\n\\n@param `mu` Mean of the normal (Gaussian) distribution to consider.\\n\\n@param `sigma` Standard deviation of the normal (Gaussian) distribution to consider.\\n\\n@param `result` Instance of `mapper.npdf`.\\n\\n\",\"tags\":[\"gts\",\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.npdf\"},{\"name\":\"mapper.or\",\"detail\":\" mapper.or  result<AGGREGATOR>\",\"documentation\":\"This mapper function applies the logical operator OR on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.or\"},{\"name\":\"mapper.parsedouble\",\"detail\":\"tag<STRING>  mapper.parsedouble  result<AGGREGATOR>\",\"documentation\":\"This mapper function converts a **STRING** single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.parsedouble` function can be applied to data of type **STRING**.\\n\\nThis function expects a [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) \\nparameter in top of the mapper. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `tag` [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) parameter. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.5\",\"OPB64name\":\"mapper.parsedouble\"},{\"name\":\"mapper.percentile\",\"detail\":\"percentile<NUMBER>  mapper.percentile  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  mapper.percentile  bucketizer<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile\"},{\"name\":\"mapper.percentile.forbid-nulls\",\"detail\":\"percentile<NUMBER>  mapper.percentile.forbid-nulls  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  mapper.percentile.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.percentile.forbid-nulls` has the same behavior as `mapper.percentile`, use `mapper.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile.forbid-nulls\"},{\"name\":\"mapper.pow\",\"detail\":\"constant<LONG>  mapper.pow  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.pow  result<AGGREGATOR>\",\"documentation\":\"This mapper function raises the single value in a sliding window to a constant power.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.pow` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.pow` function must be parameterized with the constant.\\n\\nThe result is always of type DOUBLE.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.pow\"},{\"name\":\"mapper.product\",\"detail\":\" mapper.product  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the product of all the values found in the sliding window.\\n\\nThe `mapper.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\nOn [bucketized](/doc/BUCKETIZE) Geo Time Series™, it is necessary to fill gaps with [`FILLVALUE`](/doc/FILLVALUE)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.product\"},{\"name\":\"mapper.rate\",\"detail\":\" mapper.rate  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the rate of change between the first and last values (rate = (last - first) / (lastick - firsttick)) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.rate` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value. If the\\nsliding window contains less than 2 values, the rate of change will be 0.0.\\n\\nThe rate of change is expressed in units per second.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.rate\"},{\"name\":\"mapper.replace\",\"detail\":\"constant<LONG>  mapper.replace  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.replace  result<AGGREGATOR>\\nconstant<STRING>  mapper.replace  result<AGGREGATOR>\\nconstant<BOOLEAN>  mapper.replace  result<AGGREGATOR>\",\"documentation\":\"This mapper function replaces windows with at least one value with a constant. The location and elevation returned are those associated with the most \\nrecent value in the sliding window.\\n\\n@param `constant` constant used for replacement\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.replace\"},{\"name\":\"mapper.rms\",\"detail\":\" mapper.rms  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the root mean square of all the values found in each sliding window. The associated location is the last one of the window.\\n\\nThe `mapper.rms` function can only be applied to values of type **LONG** or **DOUBLE**.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.18\",\"OPB64name\":\"mapper.rms\"},{\"name\":\"mapper.round\",\"detail\":\" mapper.round  result<AGGREGATOR>\",\"documentation\":\"This mapper function rounds the *single value* in a sliding window to the closests **LONG**.\\n\\nThe `mapper.round` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.round\"},{\"name\":\"mapper.sd\",\"detail\":\"bessel<BOOLEAN>  mapper.sd  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd\"},{\"name\":\"mapper.sd.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  mapper.sd.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.sd.forbid-nulls` has the same behavior as `mapper.sd`, use `mapper.sd` instead.\\n\\nThis mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd.forbid-nulls\"},{\"name\":\"mapper.sd.welford\",\"detail\":\"bessel<BOOLEAN>  mapper.sd.welford  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.sd.welford\"},{\"name\":\"mapper.second\",\"detail\":\"timezone<STRING>  mapper.second  result<AGGREGATOR>\\noffset<NUMBER>  mapper.second  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the second of the tick for which it is computed.\\n\\nThe `mapper.second` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.second\"},{\"name\":\"mapper.sigmoid\",\"detail\":\" mapper.sigmoid  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the sigmoid of *single value* in a sliding window.\\n\\nThe `mapper.sigmoid` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sigmoid\"},{\"name\":\"mapper.sqrt\",\"detail\":\" mapper.sqrt  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the square root of the single value in a sliding window.\\n\\nFor negative numerics, this mapper returns **NaN**. For string values, this mapper returns 0.\\n\\nThe associated location and elevation are those of the single value.\\n\\n> ### Note\\n> The `mapper.sqrt` mapper needs a single value sliding window, i.e. pre-window and post-window to 0\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.11\",\"OPB64name\":\"mapper.sqrt\"},{\"name\":\"mapper.sum\",\"detail\":\" mapper.sum  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum\"},{\"name\":\"mapper.sum.forbid-nulls\",\"detail\":\" mapper.sum.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.sum.forbid-nulls` has the same behavior as `mapper.sum`, use `mapper.sum` instead.\\n\\nThis mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum.forbid-nulls\"},{\"name\":\"mapper.tanh\",\"detail\":\" mapper.tanh  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the hyperbolic tangent of *single value* in a sliding window.\\n\\nThe `mapper.tanh` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tanh\"},{\"name\":\"mapper.tick\",\"detail\":\" mapper.tick  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the tick for which it is computed. The associated location and elevation are those of the selected value.\\n\\nThe `mapper.tick` function can be applied to values of any type.        \\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.tick\"},{\"name\":\"mapper.toboolean\",\"detail\":\" mapper.toboolean  result<AGGREGATOR>\",\"documentation\":\"This mapper function converts the single value in a sliding window to **BOOLEAN**.\\n\\nThe `mapper.toboolean` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.toboolean\"},{\"name\":\"mapper.todouble\",\"detail\":\" mapper.todouble  result<AGGREGATOR>\",\"documentation\":\"This mapper function converts the single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.todouble` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.todouble\"},{\"name\":\"mapper.tolong\",\"detail\":\" mapper.tolong  result<AGGREGATOR>\",\"documentation\":\"This mapper function converts the single value in a sliding window to **LONG**.\\n\\nThe `mapper.tolong` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tolong\"},{\"name\":\"mapper.tostring\",\"detail\":\" mapper.tostring  result<AGGREGATOR>\",\"documentation\":\"This mapper function converts the single value in a sliding window to **STRING**.\\n\\nThe `mapper.tostring` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tostring\"},{\"name\":\"mapper.truecourse\",\"detail\":\" mapper.truecourse  result<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack a mapper which will compute the initial [true course]http://www.edwilliams.org/avform.htm#Crs) on a great circle from the first to the last datapoint in the sliding window.\\n\\nThe location and elevation of the result is that of the tick being considered.\\n\\n@param `result` Instance of mapper.truecourse.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.truecourse\"},{\"name\":\"mapper.var\",\"detail\":\"bessel<BOOLEAN>  mapper.var  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var\"},{\"name\":\"mapper.var.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  mapper.var.forbid-nulls  result<AGGREGATOR>\",\"documentation\":\"**Deprecated**: `mapper.var.forbid-nulls` has the same behavior as `mapper.var`, use `mapper.var` instead.\\n\\nThis mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var.forbid-nulls\"},{\"name\":\"mapper.var.welford\",\"detail\":\"bessel<BOOLEAN>  mapper.var.welford  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.var`](/doc/mapper.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.var.welford\"},{\"name\":\"mapper.vdist\",\"detail\":\" mapper.vdist  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the total distance traveled in the vertical plane in the sliding window.\\n\\nThe distance is computed by summing the distances between consecutive elevations (this differs from the computation done in [`mapper.vspeed`](/doc/mapper.vspeed))\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed distance is expressed in meters.\\n\\nThe `mapper.vdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vdist\"},{\"name\":\"mapper.vspeed\",\"detail\":\" mapper.vspeed  result<AGGREGATOR>\",\"documentation\":\"This mapper function computes the vertical speed between the first and last readings of the sliding window. It does not compute the speed based on the total\\nvertical distance traveled in the sliding window, it only considers its extrema (it differs significantly of what is done for horizontal speed in\\n[`mapper.hspeed`](/doc/mapper.hspeed)), thus the result can be positive or negative.\\n\\nIf one of the extrema of the sliding window has no elevation, no value is returned.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.vspeed` function can be applied to data of any type since it only considers elevations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vspeed\"},{\"name\":\"mapper.weekday\",\"detail\":\"timezone<STRING>  mapper.weekday  result<AGGREGATOR>\\noffset<NUMBER>  mapper.weekday  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the day of the week of the tick for which it is computed.\\n\\nThe `mapper.weekday` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.weekday\"},{\"name\":\"mapper.year\",\"detail\":\"timezone<STRING>  mapper.year  result<AGGREGATOR>\\noffset<NUMBER>  mapper.year  result<AGGREGATOR>\",\"documentation\":\"This mapper function returns the year of the tick for which it is computed.\\n\\nThe `mapper.year` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.year\"},{\"name\":\"max.tick.sliding.window\",\"detail\":\" max.tick.sliding.window  max<LONG>\",\"documentation\":\"Pushes onto the stack [`MAXLONG`](/doc/MAXLONG) divided by 2, to serve as the maximum number of ticks left or right of the current tick in a [`MAP`](/doc/MAP) sliding window.\\n\\nGiven that a Geo Time Series™ can have no more than 2**32 datapoints, this value is sufficient to cover the whole GTS left or right of the current tick.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.tick.sliding.window\"},{\"name\":\"max.time.sliding.window\",\"detail\":\" max.time.sliding.window  max<LONG>\",\"documentation\":\"Pushes onto the stack half of the minimum LONG value, to serve as a *pre* or *post* extension of a [`MAP`](/doc/MAP) sliding window in time units.\\n\\nThis value spans a lot of time but may not be enough to cover the entirety of a GTS.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.time.sliding.window\"},{\"name\":\"ms\",\"detail\":\"input<NUMBER>  ms  output<LONG>\",\"documentation\":\"Converts a number of milliseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of milliseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of milliseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of milliseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ms\"},{\"name\":\"mwei\",\"detail\":\" mwei  value<LONG>\",\"documentation\":\"The `mwei` function returns 1,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"mwei\"},{\"name\":\"ns\",\"detail\":\"input<NUMBER>  ns  output<LONG>\",\"documentation\":\"Converts a number of nanoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of nanoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of nanoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of nanoseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ns\"},{\"name\":\"op.add\",\"detail\":\" op.add  op<OPERATOR>\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter Geo Time Series™.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator forbids null values, *i.e.* if a `null` is encountered, then there will be no result for the given tick.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.add\"},{\"name\":\"op.add.ignore-nulls\",\"detail\":\" op.add.ignore-nulls  op<OPERATOR>\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter GTS.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.add.ignore-nulls\"},{\"name\":\"op.and\",\"detail\":\" op.and  op<OPERATOR>\",\"documentation\":\"To apply an `op.and` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and\"},{\"name\":\"op.and.ignore-nulls\",\"detail\":\" op.and.ignore-nulls  op<OPERATOR>\",\"documentation\":\"To apply an `op.and.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and.ignore-nulls` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and.ignore-nulls\"},{\"name\":\"op.div\",\"detail\":\" op.div  op<OPERATOR>\",\"documentation\":\"To apply an `op.div` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.div is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.div` operation can only operate on equivalence classes which have two GTS (if the equivalence class has more than two GTS, there is no result guaranted). It will divide at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.div\"},{\"name\":\"op.eq\",\"detail\":\" op.eq  op<OPERATOR>\",\"documentation\":\"To apply an `op.eq` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.eq is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.eq` operation will check for equality at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.eq\"},{\"name\":\"op.ge\",\"detail\":\" op.ge  op<OPERATOR>\",\"documentation\":\"To apply an `op.ge` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ge` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ge` operation will check at each tick if the value of the current GTS is greater or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ge\"},{\"name\":\"op.gt\",\"detail\":\" op.gt  op<OPERATOR>\",\"documentation\":\"To apply an `op.gt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.gt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.gt` operation will check at each tick if the value of the current GTS is greater than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.gt\"},{\"name\":\"op.le\",\"detail\":\" op.le  op<OPERATOR>\",\"documentation\":\"To apply an `op.le` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.le` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.le` operation will check at each tick if the value of the current GTS is lesser or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.le\"},{\"name\":\"op.lt\",\"detail\":\" op.lt  op<OPERATOR>\",\"documentation\":\"To apply an `op.lt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.lt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.lt` operation will check at each tick if the value of the current GTS is lesser than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.lt\"},{\"name\":\"op.mask\",\"detail\":\" op.mask  op<OPERATOR>\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), retains datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mask\"},{\"name\":\"op.mul\",\"detail\":\" op.mul  op<OPERATOR>\",\"documentation\":\"To apply an `op.mul` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mul\"},{\"name\":\"op.mul.ignore-nulls\",\"detail\":\" op.mul.ignore-nulls  op<OPERATOR>\",\"documentation\":\"To apply an `op.mul.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul.ignore-nulls` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.mul.ignore-nulls\"},{\"name\":\"op.ne\",\"detail\":\" op.ne  op<OPERATOR>\",\"documentation\":\"To apply an `op.ne` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ne` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ne` operation will check for inequality at each tick all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ne\"},{\"name\":\"op.negmask\",\"detail\":\" op.negmask  op<OPERATOR>\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), removes datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The operator instance.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.negmask\"},{\"name\":\"op.or\",\"detail\":\" op.or  op<OPERATOR>\",\"documentation\":\"To apply an `op.or` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or\"},{\"name\":\"op.or.ignore-nulls\",\"detail\":\" op.or.ignore-nulls  op<OPERATOR>\",\"documentation\":\"To apply an `op.or.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or.ignore-nulls` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or.ignore-nulls\"},{\"name\":\"op.sub\",\"detail\":\" op.sub  op<OPERATOR>\",\"documentation\":\"To apply an `op.sub` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.sub` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe sub operator can only operate on equivalence classes which have **exactly two GTS**. It will substract at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.sub\"},{\"name\":\"pi\",\"detail\":\" pi  pi<DOUBLE>\",\"documentation\":\"Alias of [PI](/doc/J3Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"R5Z\"},{\"name\":\"ps\",\"detail\":\"input<NUMBER>  ps  output<LONG>\",\"documentation\":\"Converts a number of picoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of picoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of picoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of picoseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ps\"},{\"name\":\"pwei\",\"detail\":\" pwei  value<LONG>\",\"documentation\":\"The `pwei` function returns 1,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"pwei\"},{\"name\":\"reducer.and\",\"detail\":\" reducer.and  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.and` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and\"},{\"name\":\"reducer.and.exclude-nulls\",\"detail\":\" reducer.and.exclude-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.and.exclude-nulls` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ \\nwhich are in the same equivalence class, excluding nulls from the computation.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, \\nthe current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and.exclude-nulls\"},{\"name\":\"reducer.argmax\",\"detail\":\"label<STRING> maximum<LONG>  reducer.argmax  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.argmax` function outputs for each tick, the tick and the concatenation separated by ‘,’ of the values of the labels for which the\\nvalue is the maximum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the maximum to report (use 0 to report all), and a **STRING**\\nparameter to choose on which label it operates.\\n\\n@param `maximum` Maximum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmax\"},{\"name\":\"reducer.argmin\",\"detail\":\"label<STRING> minimum<LONG>  reducer.argmin  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.argmin` function outputs for each tick, the tick and the concatenation separated by ‘,’ \\nwith the values of the labels for which the value is the minimum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the minimum to report (use 0 to report all), and a **STRING** \\nparameter to choose on which label it operates.\\n\\n@param `minimum` Minimum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmin\"},{\"name\":\"reducer.count\",\"detail\":\" reducer.count  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.count` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe include null version, [`reducer.count.include-nulls`](/doc/reducer.count.include-nulls), will include null values when computing the count. The exclude null version, \\n[`reducer.count.exclude-nulls`](/doc/reducer.count.exclude-nulls), will exclude null values when computing the count.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count\"},{\"name\":\"reducer.count.exclude-nulls\",\"detail\":\" reducer.count.exclude-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.count.exclude-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.exclude-nulls\"},{\"name\":\"reducer.count.include-nulls\",\"detail\":\" reducer.count.include-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.count.include-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are included.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.include-nulls\"},{\"name\":\"reducer.count.nonnull\",\"detail\":\" reducer.count.nonnull  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.count.nonnull` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.nonnull\"},{\"name\":\"reducer.join\",\"detail\":\"separator<STRING>  reducer.join  reducer<AGGREGATOR>\",\"documentation\":\"The 'reducer.join' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will exclude all null values when computing the join.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join\"},{\"name\":\"reducer.join.forbid-nulls\",\"detail\":\"separator<STRING>  reducer.join.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.join.nonnull`](/doc/reducer.join.nonnull).\\n\\nThe 'reducer.join.forbid-nulls' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.forbid-nulls\"},{\"name\":\"reducer.join.nonnull\",\"detail\":\"separator<STRING>  reducer.join.nonnull  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.join.forbid-nulls`](/doc/reducer.join.forbid-nulls).\\n\\nThe 'reducer.join.nonnull' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.nonnull\"},{\"name\":\"reducer.join.urlencoded\",\"detail\":\"separator<STRING>  reducer.join.urlencoded  reducer<AGGREGATOR>\",\"documentation\":\"The 'reducer.join.urlencoded' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) charset.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.urlencoded\"},{\"name\":\"reducer.mad\",\"detail\":\" reducer.mad  reducer<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) for each ticks. Null values are removed before computing the MAD for each ticks.\\n\\nThe returned location is the median of all the locations and the returned elevation is the median of all the elevations.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.2.0\",\"OPB64name\":\"reducer.mad\"},{\"name\":\"reducer.max\",\"detail\":\" reducer.max  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.max` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will exclude all null values when computing the maximum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max\"},{\"name\":\"reducer.max.forbid-nulls\",\"detail\":\" reducer.max.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.max.nonnull`](/doc/reducer.max.nonnull).\\n\\nThe `reducer.max.forbid-nulls` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.forbid-nulls\"},{\"name\":\"reducer.max.nonnull\",\"detail\":\" reducer.max.nonnull  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.max.forbid-nulls`](/doc/reducer.max.forbid-nulls).\\n\\nThe `reducer.max.nonnull` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.nonnull\"},{\"name\":\"reducer.mean\",\"detail\":\" reducer.mean  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.mean` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean\"},{\"name\":\"reducer.mean.circular\",\"detail\":\"modulo<NUMBER>  reducer.mean.circular  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.mean.circular` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`reducer.mean.circular.exclude-nulls`](/doc/reducer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `reducer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular\"},{\"name\":\"reducer.mean.circular.exclude-nulls\",\"detail\":\"modulo<NUMBER>  reducer.mean.circular.exclude-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.mean.circular.exclude-nulls` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `reducer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular.exclude-nulls\"},{\"name\":\"reducer.mean.exclude-nulls\",\"detail\":\" reducer.mean.exclude-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.mean.exclude-nulls` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will exclude all null values when computing the mean.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.exclude-nulls\"},{\"name\":\"reducer.median\",\"detail\":\" reducer.median  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.median` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.median\"},{\"name\":\"reducer.median.forbid-nulls\",\"detail\":\" reducer.median.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.median.forbid-nulls` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series™ in the same equivalence class, it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.4.0\",\"OPB64name\":\"reducer.median.forbid-nulls\"},{\"name\":\"reducer.min\",\"detail\":\" reducer.min  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.min` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will exclude all null values when computing the minimum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min\"},{\"name\":\"reducer.min.forbid-nulls\",\"detail\":\" reducer.min.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.min.nonnull`](/doc/reducer.min.nonnull).\\n\\nThe `reducer.min.forbid-nulls` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.forbid-nulls\"},{\"name\":\"reducer.min.nonnull\",\"detail\":\" reducer.min.nonnull  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.min.forbid-nulls`](/doc/reducer.min.forbid-nulls).\\n\\nThe `reducer.min.nonnull` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.nonnull\"},{\"name\":\"reducer.or\",\"detail\":\" reducer.or  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.or` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or\"},{\"name\":\"reducer.or.exclude-nulls\",\"detail\":\" reducer.or.exclude-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.or.exclude-nulls` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or.exclude-nulls\"},{\"name\":\"reducer.percentile\",\"detail\":\"percentile<NUMBER>  reducer.percentile  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  reducer.percentile  bucketizer<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile\"},{\"name\":\"reducer.percentile.forbid-nulls\",\"detail\":\"percentile<NUMBER>  reducer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  reducer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nFor this reducer, GTS must be aligned and must have a value for each tick of each GTS. If this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series in the same equivalence class, it throws an error.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile.forbid-nulls\"},{\"name\":\"reducer.product\",\"detail\":\" reducer.product  reducer<AGGREGATOR>\",\"documentation\":\"This reducer function computes the product of all the values for each tick.\\n\\nThe `reducer.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.product\"},{\"name\":\"reducer.rms\",\"detail\":\" reducer.rms  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIf one value is null, there won't be any result for the concerned tick.\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms\"},{\"name\":\"reducer.rms.exclude-nulls\",\"detail\":\" reducer.rms.exclude-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms. Even if input GTS are misaligned, there will be one result per tick.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms.exclude-nulls\"},{\"name\":\"reducer.sd\",\"detail\":\"bessel<BOOLEAN>  reducer.sd  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.sd` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd\"},{\"name\":\"reducer.sd.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  reducer.sd.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.sd.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd.forbid-nulls\"},{\"name\":\"reducer.sd.welford\",\"detail\":\"bessel<BOOLEAN>  reducer.sd.welford  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.sd.welford` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford\"},{\"name\":\"reducer.sd.welford.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  reducer.sd.welford.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.sd.welford.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`reducer.sd.forbid-nulls`](/doc/reducer.sd.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford.forbid-nulls\"},{\"name\":\"reducer.shannonentropy.0\",\"detail\":\" reducer.shannonentropy.0  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.shannonentropy.0` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 0 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.0\"},{\"name\":\"reducer.shannonentropy.1\",\"detail\":\" reducer.shannonentropy.1  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.shannonentropy.1` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 1 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.1\"},{\"name\":\"reducer.sum\",\"detail\":\" reducer.sum  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.sum` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum\"},{\"name\":\"reducer.sum.forbid-nulls\",\"detail\":\" reducer.sum.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.sum.nonnull`](/doc/reducer.sum.nonnull).\\n\\nThe `reducer.sum.forbid-nulls` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.forbid-nulls\"},{\"name\":\"reducer.sum.nonnull\",\"detail\":\" reducer.sum.nonnull  reducer<AGGREGATOR>\",\"documentation\":\"Alias of [`reducer.sum.forbid-nulls`](/doc/reducer.sum.forbid-nulls).\\n\\nThe `reducer.sum.nonnull` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.nonnull\"},{\"name\":\"reducer.var\",\"detail\":\"bessel<BOOLEAN>  reducer.var  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.var` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var\"},{\"name\":\"reducer.var.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  reducer.var.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.var.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var.forbid-nulls\"},{\"name\":\"reducer.var.welford\",\"detail\":\"bessel<BOOLEAN>  reducer.var.welford  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.var.welford` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var`](/doc/reducer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford\"},{\"name\":\"reducer.var.welford.forbid-nulls\",\"detail\":\"bessel<BOOLEAN>  reducer.var.welford.forbid-nulls  reducer<AGGREGATOR>\",\"documentation\":\"The `reducer.var.welford.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var.forbid-nulls`](/doc/reducer.var.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford.forbid-nulls\"},{\"name\":\"s\",\"detail\":\"input<NUMBER>  s  output<LONG>\",\"documentation\":\"Converts a number of seconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of seconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of seconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of seconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"s\"},{\"name\":\"shannon\",\"detail\":\" shannon  value<LONG>\",\"documentation\":\"The `shannon` function returns 1,000,000,000.\\n\\nThe unit is named after [Claude Shannon](https://en.wikipedia.org/wiki/Claude_Shannon).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"shannon\"},{\"name\":\"szabo\",\"detail\":\" szabo  value<LONG>\",\"documentation\":\"The `szabo` function returns 1,000,000,000,000.\\n\\nThe unit is named after [Nick Szabo](https://en.wikipedia.org/wiki/Nick_Szabo).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"szabo\"},{\"name\":\"twei\",\"detail\":\" twei  value<LONG>\",\"documentation\":\"The `twei` function returns 1,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"twei\"},{\"name\":\"us\",\"detail\":\"input<NUMBER>  us  output<LONG>\",\"documentation\":\"Converts a number of microseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of microseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of microseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of microseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"us\"},{\"name\":\"w\",\"detail\":\"input<NUMBER>  w  output<LONG>\",\"documentation\":\"Converts a number of weeks (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of weeks from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of weeks to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of weeks\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"w\"},{\"name\":\"wei\",\"detail\":\" wei  value<LONG>\",\"documentation\":\"The `wei` function returns 1 as the base unit of currency.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"wei\"},{\"name\":\"{\",\"detail\":\" {  mark<MARK>\",\"documentation\":\"Starts a map creation.\\n\\nThe `{` function creates a map by pushing a mark onto the stack. This is a syntactic help to better present map constructions. This function behaves like [`MARK`].\\n\\n@param `mark` A MARK object.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tk\"},{\"name\":\"{}\",\"detail\":\" {}  newmap<MAP>\",\"documentation\":\"The {} function creates an empty MAP on the top of the stack.\\n\\n\\n@param `newmap` Empty map instance.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tro\"},{\"name\":\"|\",\"detail\":\"p1<LONG> p2<LONG>  |  result<LONG>\\ninputgts<GTS> mask<LONG>  |  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  |  outputgts<GTS>\",\"documentation\":\"Performs a bitwise **OR** operation.\\n\\nThe `|` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **OR**.\\n \\nSince Warp 10™ 2.1, `|` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be OR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with OR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts OR with mask\\n\\n\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"U.\"},{\"name\":\"||\",\"detail\":\"p1<BOOLEAN> p2<BOOLEAN>  ||  result<BOOLEAN>\\nl<LIST>  ||  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  ||  gtsresult<GTS>\",\"documentation\":\"The `||` operator is a synonymous for [`OR`](/doc/OR).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `||` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"U6k\"},{\"name\":\"}\",\"detail\":\"mark<MARK> k1<ANY> v1<ANY> kN<ANY> vN<ANY>  }  map<MAP>\",\"documentation\":\"Closes a currently open map and pushes it onto the stack.\\n\\nThe `}` function pops from the stack the elements (key/value pairs) of the map up to the first mark. The marks are consumed.\\n\\n@param `k1` The first key\\n\\n@param `v1` The first value\\n\\n@param `kN` The Nth key\\n\\n@param `vN` The Nth value\\n\\n@param `map` The built map\\n\\n@param `mark` The mark indicating the deepest level to consider when building the map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"UF\"},{\"name\":\"~\",\"detail\":\"param<LONG>  ~  result<LONG>\",\"documentation\":\"Computes the unary bitwise complement of the long value on top of the stack.\\n\\n@param `param` Value to compute\\n\\n@param `result` Bitwise result\\n\\n\",\"tags\":[\"operators\",\"binary\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"UV\"},{\"name\":\"~=\",\"detail\":\"p2<NUMBER> p1<NUMBER> lambda<NUMBER>  ~=  result<BOOLEAN>\",\"documentation\":\"The `~=` operator consumes three parameters from the top of the stack, two operands p1 and p2 and a tolerance factor lambda, \\nand pushes onto the stack true if *|p1-p2| < lambda*, i.e. the difference between the two operands is lesser than lambda.\\n\\nAll parameters must be of numeric types.\\n\\nThe operator `~=` is useful when making comparaisons between doubles, where floating point operations generate rounding errors.\\n\\n@param `p1` First number\\n\\n@param `p2` Second number\\n\\n@param `lambda` Tolerance factor lambda\\n\\n@param `result` \\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"UYo\"}];\n}\n      ","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CancellationToken, editor, languages, Position, Thenable} from 'monaco-editor';\nimport CompletionList = languages.CompletionList;\nimport CompletionItemKind = languages.CompletionItemKind;\nimport CompletionItemProvider = languages.CompletionItemProvider;\nimport IReadOnlyModel = editor.IReadOnlyModel;\nimport CompletionContext = languages.CompletionContext;\nimport CompletionItem = languages.CompletionItem;\nimport {Config} from '../../../model/config';\n\nexport abstract class W10CompletionItemProvider implements CompletionItemProvider {\n  languageId: string;\n  config: Config ;\n\n  protected constructor(languageId: string, config: Config) {\n    this.languageId = languageId;\n    this.config = config;\n  }\n\n  abstract provideCompletionItems(model: IReadOnlyModel, position: Position, _context: CompletionContext, token: CancellationToken): Thenable<CompletionList>;\n\n  abstract transformKeyWord(keyword: string): string;\n\n  protected _provideCompletionItems(model: editor.IReadOnlyModel, position: Position, _context: languages.CompletionContext, token: CancellationToken, source: any, snippets: any): Thenable<languages.CompletionList> {\n    const defs: CompletionList = {\n      suggestions: [],\n    };\n    source.forEach(f => {\n      const item: CompletionItem = {\n        label: this.transformKeyWord(f.name),\n        insertText: this.transformKeyWord(f.name),\n        range: undefined,\n        kind: W10CompletionItemProvider.getType(f.tags, f.name)\n      };\n      defs.suggestions.push(item);\n    });\n    Object.keys(snippets).forEach(s => {\n      const snippet = snippets[s];\n      defs.suggestions.push({\n        label: snippet.prefix,\n        kind: languages.CompletionItemKind.Snippet,\n        insertTextRules: languages.CompletionItemInsertTextRule.InsertAsSnippet,\n        documentation: snippet.prefix,\n        insertText: snippet.body.join('\\n')\n      } as CompletionItem);\n    });\n\n    return Promise.resolve(defs);\n  }\n\n  private static getType(tags: string[], name: string): CompletionItemKind {\n    const t = tags.join(' ');\n    if (t.indexOf('constant') > -1) {\n      return CompletionItemKind.Enum;\n    } else if (t.indexOf('reducer') > -1 && name !== 'REDUCE') {\n      return CompletionItemKind.Interface;\n    } else if (t.indexOf('mapper') > -1 && name !== 'MAP') {\n      return CompletionItemKind.Interface;\n    } else if (t.indexOf('bucketize') > -1 && name !== 'BUCKETIZE') {\n      return CompletionItemKind.Interface;\n    } else if (t.indexOf('filter') > -1 && name !== 'FILTER') {\n      return CompletionItemKind.Interface;\n    } else if (t.indexOf('control') > -1) {\n      return CompletionItemKind.Keyword;\n    } else if (t.indexOf('operators') > -1) {\n      return CompletionItemKind.Method;\n    } else if (t.indexOf('stack') > -1) {\n      return CompletionItemKind.Module;\n    } else {\n      return CompletionItemKind.Function;\n    }\n  }\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nexport class EditorUtils {\n  static WARPSCRIPT_LANGUAGE = 'warpscript';\n  static FLOWS_LANGUAGE = 'flows';\n\n  static formatElapsedTime(elapsed: number) {\n    if (elapsed < 1000) {\n      return elapsed.toFixed(3) + ' ns';\n    }\n    if (elapsed < 1000000) {\n      return (elapsed / 1000).toFixed(3) + ' μs';\n    }\n    if (elapsed < 1000000000) {\n      return (elapsed / 1000000).toFixed(3) + ' ms';\n    }\n    if (elapsed < 1000000000000) {\n      return (elapsed / 1000000000).toFixed(3) + ' s ';\n    }\n    // Max exec time for nice output: 999.999 minutes (should be OK, timeout should happen before that).\n    return (elapsed / 60000000000).toFixed(3) + ' m ';\n  }\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CancellationToken, editor, languages, Position, Thenable} from 'monaco-editor';\nimport {WarpScript} from '../../../model/ref';\nimport {W10CompletionItemProvider} from './W10CompletionItemProvider';\nimport {EditorUtils} from './editorUtils';\nimport snippets from '../../../model/snippets/snippets.json';\nimport {Config} from '../../../model/config';\nimport CompletionList = languages.CompletionList;\nimport IReadOnlyModel = editor.IReadOnlyModel;\nimport CompletionContext = languages.CompletionContext;\n\nexport class WSCompletionItemProvider extends W10CompletionItemProvider {\n\n  constructor(config: Config) {\n    super(EditorUtils.WARPSCRIPT_LANGUAGE, config);\n  }\n\n  transformKeyWord(keyword: string): string {\n    return keyword;\n  }\n\n  // noinspection JSUnusedLocalSymbols\n  provideCompletionItems(model: IReadOnlyModel, position: Position, _context: CompletionContext, token: CancellationToken): Thenable<CompletionList> {\n    return super._provideCompletionItems(model, position, _context, token, WarpScript.reference, {...snippets, ...(this.config.snippets || {})});\n  }\n}\n","export class Monarch {\n        public static rules:any =  {\n    \"keywords\": [\n        \"!\",\n        \"!=\",\n        \"%\",\n        \"&\",\n        \"&&\",\n        \"(\",\n        \"()\",\n        \")\",\n        \"*\",\n        \"**\",\n        \"+\",\n        \"+!\",\n        \"-\",\n        \"->B58\",\n        \"->B58C\",\n        \"->B64\",\n        \"->B64URL\",\n        \"->BIN\",\n        \"->BYTES\",\n        \"->DOUBLEBITS\",\n        \"->ENCODER\",\n        \"->ENCODERS\",\n        \"->FLOATBITS\",\n        \"->GEOCELL\",\n        \"->GEOHASH\",\n        \"->GEOJSON\",\n        \"->GEOSHAPE\",\n        \"->GML\",\n        \"->GTS\",\n        \"->GTSHHCODE\",\n        \"->GTSHHCODELONG\",\n        \"->HEX\",\n        \"->HHCODE\",\n        \"->HHCODELONG\",\n        \"->JSON\",\n        \"->KML\",\n        \"->LIST\",\n        \"->LONGBYTES\",\n        \"->MACRO\",\n        \"->MAP\",\n        \"->MAT\",\n        \"->MVSTRING\",\n        \"->OPB64\",\n        \"->PICKLE\",\n        \"->Q\",\n        \"->RLP\",\n        \"->SET\",\n        \"->SSSS\",\n        \"->TSELEMENTS\",\n        \"->V\",\n        \"->VARINT\",\n        \"->VEC\",\n        \"->WKB\",\n        \"->WKT\",\n        \"->Z\",\n        \"/\",\n        \"<\",\n        \"<<\",\n        \"<=\",\n        \"==\",\n        \">\",\n        \">=\",\n        \">>\",\n        \">>>\",\n        \"ABI->\",\n        \"ABI.SIG\",\n        \"ABS\",\n        \"ACCEL.CACHE\",\n        \"ACCEL.NOCACHE\",\n        \"ACCEL.NOPERSIST\",\n        \"ACCEL.PERSIST\",\n        \"ACCEL.REPORT\",\n        \"ACOS\",\n        \"ADDDAYS\",\n        \"ADDDURATION\",\n        \"ADDEXACT\",\n        \"ADDMONTHS\",\n        \"ADDVALUE\",\n        \"ADDYEARS\",\n        \"AESUNWRAP\",\n        \"AESWRAP\",\n        \"AGO\",\n        \"AND\",\n        \"APPEND\",\n        \"APPLY\",\n        \"ASENCODERS\",\n        \"ASIN\",\n        \"ASREGS\",\n        \"ASSERT\",\n        \"ASSERTMSG\",\n        \"ATAN\",\n        \"ATAN2\",\n        \"ATBUCKET\",\n        \"ATINDEX\",\n        \"ATTICK\",\n        \"ATTRIBUTES\",\n        \"AUTHENTICATE\",\n        \"B58->\",\n        \"B58C->\",\n        \"B64->\",\n        \"B64TOHEX\",\n        \"B64URL->\",\n        \"BBOX\",\n        \"BIN->\",\n        \"BINTOHEX\",\n        \"BITCOUNT\",\n        \"BITGET\",\n        \"BITSTOBYTES\",\n        \"BOOTSTRAP\",\n        \"BREAK\",\n        \"BUCKETCOUNT\",\n        \"BUCKETIZE\",\n        \"BUCKETIZE.CALENDAR\",\n        \"BUCKETSPAN\",\n        \"BYTES->\",\n        \"BYTESTOBITS\",\n        \"CALL\",\n        \"CAPADD\",\n        \"CAPCHECK\",\n        \"CAPDEL\",\n        \"CAPGET\",\n        \"CBRT\",\n        \"CEIL\",\n        \"CELL->\",\n        \"CELLCF\",\n        \"CELLCQ\",\n        \"CELLROW\",\n        \"CELLTAGS\",\n        \"CELLTS\",\n        \"CELLVALUE\",\n        \"CEVAL\",\n        \"CHECKMACRO\",\n        \"CHECKSHAPE\",\n        \"CHRONOEND\",\n        \"CHRONOSTART\",\n        \"CHRONOSTATS\",\n        \"CHUNK\",\n        \"CHUNKENCODER\",\n        \"CLEAR\",\n        \"CLEARDEFS\",\n        \"CLEARREGS\",\n        \"CLEARSYMBOLS\",\n        \"CLEARTOMARK\",\n        \"CLIP\",\n        \"CLONE\",\n        \"CLONEEMPTY\",\n        \"CLONEREVERSE\",\n        \"COMMONTICKS\",\n        \"COMPACT\",\n        \"CONTAINS\",\n        \"CONTAINSKEY\",\n        \"CONTAINSVALUE\",\n        \"CONTINUE\",\n        \"COPYGEO\",\n        \"COPYSIGN\",\n        \"CORRELATE\",\n        \"COS\",\n        \"COSH\",\n        \"COUNTER\",\n        \"COUNTERDELTA\",\n        \"COUNTERSET\",\n        \"COUNTERVALUE\",\n        \"COUNTTOMARK\",\n        \"CPOPR\",\n        \"CPROB\",\n        \"CROP\",\n        \"CSTORE\",\n        \"DEBUGOFF\",\n        \"DEBUGON\",\n        \"DECREMENTEXACT\",\n        \"DEDUP\",\n        \"DEF\",\n        \"DEFINED\",\n        \"DEFINEDMACRO\",\n        \"DEFLATE\",\n        \"DELETE\",\n        \"DELETEOFF\",\n        \"DELETEON\",\n        \"DEPTH\",\n        \"DEREF\",\n        \"DET\",\n        \"DIFFERENCE\",\n        \"DISCORDS\",\n        \"DOC\",\n        \"DOCMODE\",\n        \"DOUBLEBITS->\",\n        \"DOUBLEEXPONENTIALSMOOTHING\",\n        \"DROP\",\n        \"DROPN\",\n        \"DTW\",\n        \"DUP\",\n        \"DUPN\",\n        \"DURATION\",\n        \"DWTSPLIT\",\n        \"E\",\n        \"ECDH\",\n        \"ECGEN\",\n        \"ECHOOFF\",\n        \"ECHOON\",\n        \"ECPRIVATE\",\n        \"ECPUBLIC\",\n        \"ECRECOVER\",\n        \"ECSIGN\",\n        \"ECVERIFY\",\n        \"EIP712.HASH\",\n        \"ELAPSED\",\n        \"ELEVATIONS\",\n        \"EMPTY\",\n        \"ENCODER->\",\n        \"ERROR\",\n        \"ESDTEST\",\n        \"ETH.BIP32\",\n        \"ETH.BIP39\",\n        \"ETH.CALL\",\n        \"ETH.KEY\",\n        \"ETH.LOG\",\n        \"ETH.NONCE\",\n        \"ETH.RECEIPT\",\n        \"ETH.RETURN\",\n        \"ETH.TXN\",\n        \"ETH.VERIFY\",\n        \"EVALSECURE\",\n        \"EVERY\",\n        \"EXP\",\n        \"EXPM1\",\n        \"EXPORT\",\n        \"EXTLOADED\",\n        \"F\",\n        \"FDWT\",\n        \"FETCH\",\n        \"FETCHBOOLEAN\",\n        \"FETCHDOUBLE\",\n        \"FETCHLONG\",\n        \"FETCHSTRING\",\n        \"FFT\",\n        \"FFTAP\",\n        \"FFTWINDOW\",\n        \"FILL\",\n        \"FILLNEXT\",\n        \"FILLPREVIOUS\",\n        \"FILLTICKS\",\n        \"FILLVALUE\",\n        \"FILTER\",\n        \"FILTERBY\",\n        \"FIND\",\n        \"FINDSETS\",\n        \"FINDSTATS\",\n        \"FIRSTTICK\",\n        \"FLATTEN\",\n        \"FLOAD\",\n        \"FLOATBITS->\",\n        \"FLOOR\",\n        \"FLOORDIV\",\n        \"FLOORMOD\",\n        \"FORGET\",\n        \"FREAD\",\n        \"FROMBIN\",\n        \"FROMBITS\",\n        \"FROMHEX\",\n        \"FSTORE\",\n        \"FUNCREF\",\n        \"FUNCTIONS\",\n        \"FUSE\",\n        \"GEO.BUFFER\",\n        \"GEO.COVER\",\n        \"GEO.COVER.RL\",\n        \"GEO.DIFFERENCE\",\n        \"GEO.GML\",\n        \"GEO.GML.UNIFORM\",\n        \"GEO.INTERSECTION\",\n        \"GEO.INTERSECTS\",\n        \"GEO.JSON\",\n        \"GEO.JSON.UNIFORM\",\n        \"GEO.KML\",\n        \"GEO.KML.UNIFORM\",\n        \"GEO.NORMALIZE\",\n        \"GEO.OPTIMIZE\",\n        \"GEO.REGEXP\",\n        \"GEO.UNION\",\n        \"GEO.WITHIN\",\n        \"GEO.WKB\",\n        \"GEO.WKB.UNIFORM\",\n        \"GEO.WKT\",\n        \"GEO.WKT.UNIFORM\",\n        \"GEOCELL->\",\n        \"GEOHASH->\",\n        \"GEOPACK\",\n        \"GEOSHAPE->\",\n        \"GEOSHIFT\",\n        \"GEOSPLIT\",\n        \"GEOUNPACK\",\n        \"GET\",\n        \"GETEXPONENT\",\n        \"GETHOOK\",\n        \"GETSECTION\",\n        \"GITFIND\",\n        \"GITLOAD\",\n        \"GITLOG\",\n        \"GITRM\",\n        \"GITSTORE\",\n        \"GITTAG\",\n        \"GOLDWRAP\",\n        \"GOST\",\n        \"GROUPBY\",\n        \"GRUBBSTEST\",\n        \"GTSHHCODE->\",\n        \"GUARD\",\n        \"GZIP\",\n        \"HASH\",\n        \"HAVERSINE\",\n        \"HEADER\",\n        \"HEX->\",\n        \"HEXTOB64\",\n        \"HEXTOBIN\",\n        \"HFCAT\",\n        \"HFCLOSE\",\n        \"HFDUMP\",\n        \"HFFETCH\",\n        \"HFID\",\n        \"HFINDEX\",\n        \"HFINFO\",\n        \"HFKEYS\",\n        \"HFOPEN\",\n        \"HFRESCAN\",\n        \"HFTOKEN\",\n        \"HHCODE->\",\n        \"HHCODE.BBOX\",\n        \"HHCODE.CENTER\",\n        \"HHCODE.EAST\",\n        \"HHCODE.NORTH\",\n        \"HHCODE.NORTH.EAST\",\n        \"HHCODE.NORTH.WEST\",\n        \"HHCODE.SOUTH\",\n        \"HHCODE.SOUTH.EAST\",\n        \"HHCODE.SOUTH.WEST\",\n        \"HHCODE.WEST\",\n        \"HIDE\",\n        \"HLOCATE\",\n        \"HTTP\",\n        \"HULLSHAPE\",\n        \"HUMANDURATION\",\n        \"HYBRIDTEST\",\n        \"HYBRIDTEST2\",\n        \"HYPOT\",\n        \"IDENT\",\n        \"IDWT\",\n        \"IEEEREMAINDER\",\n        \"IFFT\",\n        \"IMMUTABLE\",\n        \"IMPORT\",\n        \"INCREMENTEXACT\",\n        \"INDEXOF\",\n        \"INFLATE\",\n        \"INFO\",\n        \"INFOMODE\",\n        \"INTEGRATE\",\n        \"INTERPOLATE\",\n        \"INTERSECTION\",\n        \"INV\",\n        \"ISAUTHENTICATED\",\n        \"ISNULL\",\n        \"ISNaN\",\n        \"ISO8601\",\n        \"ISODURATION\",\n        \"ISONORMALIZE\",\n        \"JOIN\",\n        \"JSON->\",\n        \"JSONCOMPACT\",\n        \"JSONLOOSE\",\n        \"JSONPRETTY\",\n        \"JSONSTACK\",\n        \"JSONSTRICT\",\n        \"KECCAK.128\",\n        \"KECCAK.224\",\n        \"KECCAK.256\",\n        \"KECCAK.288\",\n        \"KECCAK.384\",\n        \"KECCAK.512\",\n        \"KEYLIST\",\n        \"KURTOSIS\",\n        \"LABELS\",\n        \"LASTACTIVITY\",\n        \"LASTBUCKET\",\n        \"LASTSORT\",\n        \"LASTTICK\",\n        \"LBOUNDS\",\n        \"LEVELDBCLOSE\",\n        \"LEVELDBOPEN\",\n        \"LEVELDBSECRET\",\n        \"LEVELDBSNAPSHOT\",\n        \"LEVELDBSNAPSHOTINC\",\n        \"LFILTER\",\n        \"LFLATMAP\",\n        \"LIMIT\",\n        \"LINEOFF\",\n        \"LINEON\",\n        \"LIST->\",\n        \"LMAP\",\n        \"LOAD\",\n        \"LOCATIONOFFSET\",\n        \"LOCATIONS\",\n        \"LOCSTRINGS\",\n        \"LOG\",\n        \"LOG10\",\n        \"LOG1P\",\n        \"LOGEVENT->\",\n        \"LOGMSG\",\n        \"LOWESS\",\n        \"LR\",\n        \"LSORT\",\n        \"LTTB\",\n        \"MACRO->\",\n        \"MACROBUCKETIZER\",\n        \"MACROCONFIG\",\n        \"MACROCONFIGDEFAULT\",\n        \"MACROCONFIGSECRET\",\n        \"MACROFILLER\",\n        \"MACROTTL\",\n        \"MAKEGTS\",\n        \"MAN\",\n        \"MAP\",\n        \"MAP->\",\n        \"MAPID\",\n        \"MARK\",\n        \"MAT->\",\n        \"MATCH\",\n        \"MATCHER\",\n        \"MAX\",\n        \"MAXBUCKETS\",\n        \"MAXDEPTH\",\n        \"MAXGEOCELLS\",\n        \"MAXGTS\",\n        \"MAXJSON\",\n        \"MAXLONG\",\n        \"MAXLOOP\",\n        \"MAXOPS\",\n        \"MAXPIXELS\",\n        \"MAXRECURSION\",\n        \"MAXSYMBOLS\",\n        \"MAXURLFETCHCOUNT\",\n        \"MAXURLFETCHSIZE\",\n        \"MCHECKSIG\",\n        \"MD2\",\n        \"MD4\",\n        \"MD5\",\n        \"MDETACH\",\n        \"MERGE\",\n        \"META\",\n        \"METADIFF\",\n        \"METAOFF\",\n        \"METAON\",\n        \"METASET\",\n        \"METASORT\",\n        \"MFILTER\",\n        \"MIN\",\n        \"MINLONG\",\n        \"MINREV\",\n        \"MMAP\",\n        \"MODE\",\n        \"MONOTONIC\",\n        \"MOTIONSPLIT\",\n        \"MRSEC\",\n        \"MSEC\",\n        \"MSIG\",\n        \"MSIGCOUNT\",\n        \"MSIGINFO\",\n        \"MSIGN\",\n        \"MSORT\",\n        \"MSTU\",\n        \"MULTIPLYEXACT\",\n        \"MUSIGMA\",\n        \"MUTEX\",\n        \"MVELEVATIONS\",\n        \"MVERIFY\",\n        \"MVHHCODES\",\n        \"MVINDEXSPLIT\",\n        \"MVLOCATIONS\",\n        \"MVTICKS\",\n        \"MVTICKSPLIT\",\n        \"MVVALUES\",\n        \"NAME\",\n        \"NBOUNDS\",\n        \"NDEBUGON\",\n        \"NEGATEEXACT\",\n        \"NEWENCODER\",\n        \"NEWGTS\",\n        \"NEXTAFTER\",\n        \"NEXTDOWN\",\n        \"NEXTUP\",\n        \"NOLOG\",\n        \"NONEMPTY\",\n        \"NONNULL\",\n        \"NOOP\",\n        \"NORMALIZE\",\n        \"NOT\",\n        \"NOTAFTER\",\n        \"NOTBEFORE\",\n        \"NOTIMINGS\",\n        \"NOW\",\n        \"NPDF\",\n        \"NPEEK\",\n        \"NSUMSUMSQ\",\n        \"ONLYBUCKETS\",\n        \"OPB64->\",\n        \"OPB64TOHEX\",\n        \"OPS\",\n        \"OPTDTW\",\n        \"OPTIMIZE\",\n        \"OR\",\n        \"PACK\",\n        \"PAPPLY\",\n        \"PARSE\",\n        \"PARSESELECTOR\",\n        \"PARSEVALUE\",\n        \"PARTITION\",\n        \"PATTERNDETECTION\",\n        \"PATTERNS\",\n        \"PEEK\",\n        \"PEEKN\",\n        \"PERMUTE\",\n        \"PFILTER\",\n        \"PGPDECRYPT\",\n        \"PGPENCRYPT\",\n        \"PGPINFO\",\n        \"PGPPRIVATE\",\n        \"PGPPUBLIC\",\n        \"PGPRING\",\n        \"PGPSIGN\",\n        \"PGPVERIFY\",\n        \"PGraphics\",\n        \"PI\",\n        \"PICK\",\n        \"PICKLE->\",\n        \"PIGSCHEMA\",\n        \"PIVOT\",\n        \"PIVOTSTRICT\",\n        \"POLYFIT\",\n        \"POLYFUNC\",\n        \"POPR\",\n        \"PREDUCE\",\n        \"PRNG\",\n        \"PROB\",\n        \"PROBABILITY\",\n        \"PSTACK\",\n        \"PUSHR\",\n        \"PUT\",\n        \"Palpha\",\n        \"Parc\",\n        \"Pbackground\",\n        \"PbeginContour\",\n        \"PbeginShape\",\n        \"Pbezier\",\n        \"PbezierDetail\",\n        \"PbezierPoint\",\n        \"PbezierTangent\",\n        \"PbezierVertex\",\n        \"Pblend\",\n        \"PblendMode\",\n        \"Pblue\",\n        \"Pbox\",\n        \"Pbrightness\",\n        \"Pclear\",\n        \"Pclip\",\n        \"Pcolor\",\n        \"PcolorMode\",\n        \"Pconstrain\",\n        \"Pcopy\",\n        \"PcreateFont\",\n        \"Pcurve\",\n        \"PcurveDetail\",\n        \"PcurvePoint\",\n        \"PcurveTangent\",\n        \"PcurveTightness\",\n        \"PcurveVertex\",\n        \"Pdecode\",\n        \"Pdist\",\n        \"Pellipse\",\n        \"PellipseMode\",\n        \"Pencode\",\n        \"PendContour\",\n        \"PendShape\",\n        \"Pfill\",\n        \"Pfilter\",\n        \"Pget\",\n        \"Pgreen\",\n        \"Phue\",\n        \"Pimage\",\n        \"PimageMode\",\n        \"Plerp\",\n        \"PlerpColor\",\n        \"Pline\",\n        \"PloadShape\",\n        \"Pmag\",\n        \"Pmap\",\n        \"Pmask\",\n        \"PnoClip\",\n        \"PnoFill\",\n        \"PnoStroke\",\n        \"PnoTint\",\n        \"Pnorm\",\n        \"Ppixels\",\n        \"Ppoint\",\n        \"PpopMatrix\",\n        \"PpopStyle\",\n        \"PpushMatrix\",\n        \"PpushStyle\",\n        \"Pquad\",\n        \"PquadraticVertex\",\n        \"Prect\",\n        \"PrectMode\",\n        \"Pred\",\n        \"PresetMatrix\",\n        \"Presize\",\n        \"Protate\",\n        \"Psaturation\",\n        \"Pscale\",\n        \"Pset\",\n        \"Pshape\",\n        \"PshapeMode\",\n        \"PshearX\",\n        \"PshearY\",\n        \"Psize\",\n        \"Psphere\",\n        \"PsphereDetail\",\n        \"Pstroke\",\n        \"PstrokeCap\",\n        \"PstrokeJoin\",\n        \"PstrokeWeight\",\n        \"Ptext\",\n        \"PtextAlign\",\n        \"PtextAscent\",\n        \"PtextDescent\",\n        \"PtextFont\",\n        \"PtextLeading\",\n        \"PtextMode\",\n        \"PtextSize\",\n        \"PtextWidth\",\n        \"Ptint\",\n        \"PtoImage\",\n        \"Ptranslate\",\n        \"Ptriangle\",\n        \"PupdatePixels\",\n        \"Pvertex\",\n        \"Q->\",\n        \"QCONJUGATE\",\n        \"QDIVIDE\",\n        \"QMULTIPLY\",\n        \"QROTATE\",\n        \"QROTATION\",\n        \"QUANTIZE\",\n        \"RAND\",\n        \"RANDOM\",\n        \"RANDPDF\",\n        \"RANGE\",\n        \"RANGECOMPACT\",\n        \"RAWDTW\",\n        \"REDEFS\",\n        \"REDUCE\",\n        \"RELABEL\",\n        \"REMOVE\",\n        \"REMOVETICK\",\n        \"RENAME\",\n        \"REOPTALT\",\n        \"REPLACE\",\n        \"REPLACEALL\",\n        \"REPORT\",\n        \"RESET\",\n        \"RESETS\",\n        \"RESHAPE\",\n        \"RESTORE\",\n        \"REV\",\n        \"REVBITS\",\n        \"REVERSE\",\n        \"REXEC\",\n        \"REXECZ\",\n        \"RINT\",\n        \"RIPEMD128\",\n        \"RIPEMD160\",\n        \"RIPEMD256\",\n        \"RIPEMD320\",\n        \"RLOWESS\",\n        \"RLP->\",\n        \"ROLL\",\n        \"ROLLD\",\n        \"ROT\",\n        \"ROTATIONQ\",\n        \"ROUND\",\n        \"RSADECRYPT\",\n        \"RSAENCRYPT\",\n        \"RSAGEN\",\n        \"RSAPRIVATE\",\n        \"RSAPUBLIC\",\n        \"RSASIGN\",\n        \"RSAVERIFY\",\n        \"RSORT\",\n        \"RTFM\",\n        \"RUN\",\n        \"RUNNERAT\",\n        \"RUNNERIN\",\n        \"RUNNERNONCE\",\n        \"RUNR\",\n        \"RVALUESORT\",\n        \"SAVE\",\n        \"SCALB\",\n        \"SECTION\",\n        \"SECURE\",\n        \"SECUREKEY\",\n        \"SENSISION.DUMP\",\n        \"SENSISION.DUMPEVENTS\",\n        \"SENSISION.EVENT\",\n        \"SENSISION.GET\",\n        \"SENSISION.SET\",\n        \"SENSISION.UPDATE\",\n        \"SET\",\n        \"SET->\",\n        \"SETATTRIBUTES\",\n        \"SETMACROCONFIG\",\n        \"SETVALUE\",\n        \"SHA1\",\n        \"SHA1HMAC\",\n        \"SHA224\",\n        \"SHA256\",\n        \"SHA256HMAC\",\n        \"SHA3.224\",\n        \"SHA3.256\",\n        \"SHA3.384\",\n        \"SHA3.512\",\n        \"SHA384\",\n        \"SHA512\",\n        \"SHAPE\",\n        \"SHMDEFINED\",\n        \"SHMLOAD\",\n        \"SHMSTORE\",\n        \"SHOW\",\n        \"SHRINK\",\n        \"SHUFFLE\",\n        \"SIGNUM\",\n        \"SIN\",\n        \"SINGLEEXPONENTIALSMOOTHING\",\n        \"SINH\",\n        \"SIZE\",\n        \"SKEWNESS\",\n        \"SMARTPARSE\",\n        \"SNAPSHOT\",\n        \"SNAPSHOTALL\",\n        \"SNAPSHOTALLTOMARK\",\n        \"SNAPSHOTCOPY\",\n        \"SNAPSHOTCOPYALL\",\n        \"SNAPSHOTCOPYALLTOMARK\",\n        \"SNAPSHOTCOPYN\",\n        \"SNAPSHOTCOPYTOMARK\",\n        \"SNAPSHOTN\",\n        \"SNAPSHOTREADABLE\",\n        \"SNAPSHOTTOMARK\",\n        \"SORT\",\n        \"SORTBY\",\n        \"SORTWITH\",\n        \"SPLIT\",\n        \"SQRT\",\n        \"SRAND\",\n        \"SRANDPDF\",\n        \"SSSS->\",\n        \"SSTFIND\",\n        \"SSTINFO\",\n        \"SSTPURGE\",\n        \"SSTREPORT\",\n        \"SSTTIMESTAMP\",\n        \"STACKATTRIBUTE\",\n        \"STACKPSSECRET\",\n        \"STACKTOLIST\",\n        \"STANDARDIZE\",\n        \"STDERR\",\n        \"STDIN\",\n        \"STDOUT\",\n        \"STL\",\n        \"STLESDTEST\",\n        \"STOP\",\n        \"STORE\",\n        \"STRICTPARTITION\",\n        \"STRINGFORMAT\",\n        \"STU\",\n        \"SUBLIST\",\n        \"SUBMAP\",\n        \"SUBSTRING\",\n        \"SUBTRACTEXACT\",\n        \"SWAP\",\n        \"SYMBOLS\",\n        \"SYNC\",\n        \"T\",\n        \"TAN\",\n        \"TANH\",\n        \"TDESCRIBE\",\n        \"TEMPLATE\",\n        \"THRESHOLDTEST\",\n        \"TICKINDEX\",\n        \"TICKLIST\",\n        \"TICKS\",\n        \"TIGER\",\n        \"TIMEBOX\",\n        \"TIMECLIP\",\n        \"TIMED\",\n        \"TIMEMODULO\",\n        \"TIMEOFF\",\n        \"TIMEON\",\n        \"TIMESCALE\",\n        \"TIMESHIFT\",\n        \"TIMESPLIT\",\n        \"TIMINGS\",\n        \"TLTTB\",\n        \"TOBIN\",\n        \"TOBITS\",\n        \"TOBOOLEAN\",\n        \"TODEGREES\",\n        \"TODOUBLE\",\n        \"TOHEX\",\n        \"TOINTEXACT\",\n        \"TOKENDUMP\",\n        \"TOKENGEN\",\n        \"TOKENINFO\",\n        \"TOKENSECRET\",\n        \"TOLONG\",\n        \"TOLOWER\",\n        \"TORADIANS\",\n        \"TOSELECTOR\",\n        \"TOSTRING\",\n        \"TOTIMESTAMP\",\n        \"TOUPPER\",\n        \"TR\",\n        \"TRANSPOSE\",\n        \"TRIM\",\n        \"TSELEMENTS\",\n        \"TSELEMENTS->\",\n        \"TYPEOF\",\n        \"ULP\",\n        \"UNBUCKETIZE\",\n        \"UNBUCKETIZE.CALENDAR\",\n        \"UNGZIP\",\n        \"UNION\",\n        \"UNIQUE\",\n        \"UNLIST\",\n        \"UNMAP\",\n        \"UNPACK\",\n        \"UNSECURE\",\n        \"UNSET\",\n        \"UNWRAP\",\n        \"UNWRAPEMPTY\",\n        \"UNWRAPENCODER\",\n        \"UNWRAPSIZE\",\n        \"UPDATE\",\n        \"UPDATEOFF\",\n        \"UPDATEON\",\n        \"URLDECODE\",\n        \"URLENCODE\",\n        \"URLFETCH\",\n        \"UUID\",\n        \"V->\",\n        \"VALUEDEDUP\",\n        \"VALUEHISTOGRAM\",\n        \"VALUELIST\",\n        \"VALUES\",\n        \"VALUESORT\",\n        \"VALUESPLIT\",\n        \"VARINT->\",\n        \"VARS\",\n        \"VEC->\",\n        \"WEBCALL\",\n        \"WF.ADDREPO\",\n        \"WF.GETREPOS\",\n        \"WF.SETREPOS\",\n        \"WFOFF\",\n        \"WFON\",\n        \"WHIRLPOOL\",\n        \"WRAP\",\n        \"WRAPFAST\",\n        \"WRAPMV\",\n        \"WRAPMV!\",\n        \"WRAPOPT\",\n        \"WRAPRAW\",\n        \"WRAPRAWOPT\",\n        \"WSINFO\",\n        \"WSKILL\",\n        \"WSKILLSESSION\",\n        \"WSNAME\",\n        \"WSPS\",\n        \"WSSESSION\",\n        \"WSSTACK\",\n        \"WSSTOP\",\n        \"WSSTOPSESSION\",\n        \"Z->\",\n        \"ZDISCORDS\",\n        \"ZDTW\",\n        \"ZIP\",\n        \"ZPATTERNDETECTION\",\n        \"ZPATTERNS\",\n        \"ZSCORE\",\n        \"ZSCORETEST\",\n        \"[\",\n        \"[[\",\n        \"[[]]\",\n        \"[]\",\n        \"]\",\n        \"]]\",\n        \"^\",\n        \"babbage\",\n        \"bucketizer.and\",\n        \"bucketizer.or\",\n        \"buterin\",\n        \"d\",\n        \"e\",\n        \"eth\",\n        \"ether\",\n        \"filler.interpolate\",\n        \"filler.next\",\n        \"filler.previous\",\n        \"filler.trend\",\n        \"filter.latencies\",\n        \"finney\",\n        \"gwei\",\n        \"h\",\n        \"kwei\",\n        \"lovelace\",\n        \"m\",\n        \"mapper.and\",\n        \"mapper.finite\",\n        \"mapper.geo.approximate\",\n        \"mapper.geo.clear\",\n        \"mapper.geo.fence\",\n        \"mapper.geo.outside\",\n        \"mapper.geo.within\",\n        \"mapper.hdist\",\n        \"mapper.median\",\n        \"mapper.median.forbid-nulls\",\n        \"mapper.mod\",\n        \"mapper.npdf\",\n        \"mapper.or\",\n        \"mapper.percentile\",\n        \"mapper.percentile.forbid-nulls\",\n        \"mapper.truecourse\",\n        \"max.tick.sliding.window\",\n        \"max.time.sliding.window\",\n        \"ms\",\n        \"mwei\",\n        \"ns\",\n        \"op.add\",\n        \"op.add.ignore-nulls\",\n        \"op.and\",\n        \"op.and.ignore-nulls\",\n        \"op.div\",\n        \"op.eq\",\n        \"op.ge\",\n        \"op.gt\",\n        \"op.le\",\n        \"op.lt\",\n        \"op.mask\",\n        \"op.mul\",\n        \"op.mul.ignore-nulls\",\n        \"op.ne\",\n        \"op.negmask\",\n        \"op.or\",\n        \"op.or.ignore-nulls\",\n        \"op.sub\",\n        \"pi\",\n        \"ps\",\n        \"pwei\",\n        \"reducer.and\",\n        \"reducer.and.exclude-nulls\",\n        \"s\",\n        \"shannon\",\n        \"szabo\",\n        \"twei\",\n        \"us\",\n        \"w\",\n        \"wei\",\n        \"{\",\n        \"{}\",\n        \"|\",\n        \"||\",\n        \"}\",\n        \"~\",\n        \"~=\"\n    ],\n    \"constants\": [\n        \"E\",\n        \"F\",\n        \"MAXLONG\",\n        \"MINLONG\",\n        \"NULL\",\n        \"NaN\",\n        \"PI\",\n        \"T\",\n        \"e\",\n        \"pi\"\n    ],\n    \"functions\": [\n        \"BUCKETIZE\",\n        \"BUCKETIZE.CALENDAR\",\n        \"FILTER\",\n        \"MACROBUCKETIZER\",\n        \"MACROFILTER\",\n        \"MACROMAPPER\",\n        \"MACROREDUCER\",\n        \"MAP\",\n        \"METAMATCH\",\n        \"PFILTER\",\n        \"PREDUCE\",\n        \"REDUCE\",\n        \"STRICTMAPPER\",\n        \"STRICTREDUCER\",\n        \"UNBUCKETIZE.CALENDAR\",\n        \"bucketizer.and\",\n        \"bucketizer.count\",\n        \"bucketizer.count.exclude-nulls\",\n        \"bucketizer.count.include-nulls\",\n        \"bucketizer.count.nonnull\",\n        \"bucketizer.first\",\n        \"bucketizer.join\",\n        \"bucketizer.join.forbid-nulls\",\n        \"bucketizer.last\",\n        \"bucketizer.mad\",\n        \"bucketizer.max\",\n        \"bucketizer.max.forbid-nulls\",\n        \"bucketizer.mean\",\n        \"bucketizer.mean.circular\",\n        \"bucketizer.mean.circular.exclude-nulls\",\n        \"bucketizer.mean.exclude-nulls\",\n        \"bucketizer.median\",\n        \"bucketizer.median.forbid-nulls\",\n        \"bucketizer.min\",\n        \"bucketizer.min.forbid-nulls\",\n        \"bucketizer.or\",\n        \"bucketizer.percentile\",\n        \"bucketizer.percentile.forbid-nulls\",\n        \"bucketizer.rms\",\n        \"bucketizer.sd\",\n        \"bucketizer.sd.forbid-nulls\",\n        \"bucketizer.sd.welford\",\n        \"bucketizer.sum\",\n        \"bucketizer.sum.forbid-nulls\",\n        \"bucketizer.var\",\n        \"bucketizer.var.welford\",\n        \"filter.all.eq\",\n        \"filter.all.ge\",\n        \"filter.all.gt\",\n        \"filter.all.le\",\n        \"filter.all.lt\",\n        \"filter.all.ne\",\n        \"filter.any.eq\",\n        \"filter.any.ge\",\n        \"filter.any.gt\",\n        \"filter.any.le\",\n        \"filter.any.lt\",\n        \"filter.any.ne\",\n        \"filter.byattr\",\n        \"filter.byclass\",\n        \"filter.bylabels\",\n        \"filter.bylabelsattr\",\n        \"filter.bymetadata\",\n        \"filter.byselector\",\n        \"filter.bysize\",\n        \"filter.last.eq\",\n        \"filter.last.ge\",\n        \"filter.last.gt\",\n        \"filter.last.le\",\n        \"filter.last.lt\",\n        \"filter.last.ne\",\n        \"filter.latencies\",\n        \"mapper.abs\",\n        \"mapper.add\",\n        \"mapper.and\",\n        \"mapper.ceil\",\n        \"mapper.count\",\n        \"mapper.count.exclude-nulls\",\n        \"mapper.count.include-nulls\",\n        \"mapper.count.nonnull\",\n        \"mapper.day\",\n        \"mapper.delta\",\n        \"mapper.dotproduct\",\n        \"mapper.dotproduct.positive\",\n        \"mapper.dotproduct.sigmoid\",\n        \"mapper.dotproduct.tanh\",\n        \"mapper.eq\",\n        \"mapper.eq.elev\",\n        \"mapper.eq.hhcode\",\n        \"mapper.eq.lat\",\n        \"mapper.eq.lon\",\n        \"mapper.eq.tick\",\n        \"mapper.exp\",\n        \"mapper.finite\",\n        \"mapper.first\",\n        \"mapper.floor\",\n        \"mapper.ge\",\n        \"mapper.ge.elev\",\n        \"mapper.ge.hhcode\",\n        \"mapper.ge.lat\",\n        \"mapper.ge.lon\",\n        \"mapper.ge.tick\",\n        \"mapper.geo.approximate\",\n        \"mapper.geo.clear\",\n        \"mapper.geo.fence\",\n        \"mapper.geo.outside\",\n        \"mapper.geo.within\",\n        \"mapper.gt\",\n        \"mapper.gt.elev\",\n        \"mapper.gt.hhcode\",\n        \"mapper.gt.lat\",\n        \"mapper.gt.lon\",\n        \"mapper.gt.tick\",\n        \"mapper.hdist\",\n        \"mapper.highest\",\n        \"mapper.hour\",\n        \"mapper.hspeed\",\n        \"mapper.join\",\n        \"mapper.join.forbid-nulls\",\n        \"mapper.kernel.cosine\",\n        \"mapper.kernel.epanechnikov\",\n        \"mapper.kernel.gaussian\",\n        \"mapper.kernel.logistic\",\n        \"mapper.kernel.quartic\",\n        \"mapper.kernel.silverman\",\n        \"mapper.kernel.triangular\",\n        \"mapper.kernel.tricube\",\n        \"mapper.kernel.triweight\",\n        \"mapper.kernel.uniform\",\n        \"mapper.last\",\n        \"mapper.le\",\n        \"mapper.le.elev\",\n        \"mapper.le.hhcode\",\n        \"mapper.le.lat\",\n        \"mapper.le.lon\",\n        \"mapper.le.tick\",\n        \"mapper.log\",\n        \"mapper.lowest\",\n        \"mapper.lt\",\n        \"mapper.lt.elev\",\n        \"mapper.lt.hhcode\",\n        \"mapper.lt.lat\",\n        \"mapper.lt.lon\",\n        \"mapper.lt.tick\",\n        \"mapper.mad\",\n        \"mapper.max\",\n        \"mapper.max.forbid-nulls\",\n        \"mapper.max.x\",\n        \"mapper.mean\",\n        \"mapper.mean.circular\",\n        \"mapper.mean.circular.exclude-nulls\",\n        \"mapper.mean.exclude-nulls\",\n        \"mapper.median\",\n        \"mapper.median.forbid-nulls\",\n        \"mapper.min\",\n        \"mapper.min.forbid-nulls\",\n        \"mapper.min.x\",\n        \"mapper.minute\",\n        \"mapper.mod\",\n        \"mapper.month\",\n        \"mapper.mul\",\n        \"mapper.ne\",\n        \"mapper.ne.elev\",\n        \"mapper.ne.hhcode\",\n        \"mapper.ne.lat\",\n        \"mapper.ne.lon\",\n        \"mapper.ne.tick\",\n        \"mapper.npdf\",\n        \"mapper.or\",\n        \"mapper.parsedouble\",\n        \"mapper.percentile\",\n        \"mapper.percentile.forbid-nulls\",\n        \"mapper.pow\",\n        \"mapper.product\",\n        \"mapper.rate\",\n        \"mapper.replace\",\n        \"mapper.rms\",\n        \"mapper.round\",\n        \"mapper.sd\",\n        \"mapper.sd.forbid-nulls\",\n        \"mapper.sd.welford\",\n        \"mapper.second\",\n        \"mapper.sigmoid\",\n        \"mapper.sqrt\",\n        \"mapper.sum\",\n        \"mapper.sum.forbid-nulls\",\n        \"mapper.tanh\",\n        \"mapper.tick\",\n        \"mapper.toboolean\",\n        \"mapper.todouble\",\n        \"mapper.tolong\",\n        \"mapper.tostring\",\n        \"mapper.truecourse\",\n        \"mapper.var\",\n        \"mapper.var.forbid-nulls\",\n        \"mapper.var.welford\",\n        \"mapper.vdist\",\n        \"mapper.vspeed\",\n        \"mapper.weekday\",\n        \"mapper.year\",\n        \"max.tick.sliding.window\",\n        \"max.time.sliding.window\",\n        \"reducer.and\",\n        \"reducer.and.exclude-nulls\",\n        \"reducer.argmax\",\n        \"reducer.argmin\",\n        \"reducer.count\",\n        \"reducer.count.exclude-nulls\",\n        \"reducer.count.include-nulls\",\n        \"reducer.count.nonnull\",\n        \"reducer.join\",\n        \"reducer.join.forbid-nulls\",\n        \"reducer.join.nonnull\",\n        \"reducer.join.urlencoded\",\n        \"reducer.mad\",\n        \"reducer.max\",\n        \"reducer.max.forbid-nulls\",\n        \"reducer.max.nonnull\",\n        \"reducer.mean\",\n        \"reducer.mean.circular\",\n        \"reducer.mean.circular.exclude-nulls\",\n        \"reducer.mean.exclude-nulls\",\n        \"reducer.median\",\n        \"reducer.median.forbid-nulls\",\n        \"reducer.min\",\n        \"reducer.min.forbid-nulls\",\n        \"reducer.min.nonnull\",\n        \"reducer.or\",\n        \"reducer.or.exclude-nulls\",\n        \"reducer.percentile\",\n        \"reducer.percentile.forbid-nulls\",\n        \"reducer.product\",\n        \"reducer.rms\",\n        \"reducer.rms.exclude-nulls\",\n        \"reducer.sd\",\n        \"reducer.sd.forbid-nulls\",\n        \"reducer.sd.welford\",\n        \"reducer.sd.welford.forbid-nulls\",\n        \"reducer.shannonentropy.0\",\n        \"reducer.shannonentropy.1\",\n        \"reducer.sum\",\n        \"reducer.sum.forbid-nulls\",\n        \"reducer.sum.nonnull\",\n        \"reducer.var\",\n        \"reducer.var.forbid-nulls\",\n        \"reducer.var.welford\",\n        \"reducer.var.welford.forbid-nulls\"\n    ],\n    \"control\": [\n        \"BREAK\",\n        \"CHECKMACRO\",\n        \"CONTINUE\",\n        \"CUDF\",\n        \"DEFINED\",\n        \"DEFINEDMACRO\",\n        \"EVAL\",\n        \"FAIL\",\n        \"FOR\",\n        \"FOREACH\",\n        \"FORSTEP\",\n        \"IFT\",\n        \"IFTE\",\n        \"MSGFAIL\",\n        \"NRETURN\",\n        \"RETHROW\",\n        \"RETURN\",\n        \"SWITCH\",\n        \"TRY\",\n        \"UDF\",\n        \"UNTIL\",\n        \"WHILE\"\n    ],\n    \"operators\": [\n        \"!\",\n        \"!=\",\n        \"%\",\n        \"&\",\n        \"&&\",\n        \"*\",\n        \"**\",\n        \"+\",\n        \"+!\",\n        \"-\",\n        \"/\",\n        \"<\",\n        \"<<\",\n        \"<=\",\n        \"==\",\n        \">\",\n        \">=\",\n        \">>\",\n        \">>>\",\n        \"AND\",\n        \"NOT\",\n        \"OR\",\n        \"^\",\n        \"|\",\n        \"||\",\n        \"~\",\n        \"~=\"\n    ],\n    \"escapes\": \"\\\\\\\\(?:[abfnrtv\\\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\n    \"tokenizer\": {\n        \"root\": [\n            [\n                \"\\\\@[A-Za-z0-9._\\\\/]+\",\n                \"variable\"\n            ],\n            [\n                \"\\\\$[A-Za-z0-9._\\\\/]+\",\n                \"variable\"\n            ],\n            [\n                \"true|false\",\n                \"number\"\n            ],\n            [\n                \"[A-Za-z_][.\\\\w$]*\",\n                {\n                    \"cases\": {\n                        \"@constants\": \"regexp\",\n                        \"@keywords\": \"keyword\",\n                        \"@functions\": \"type\",\n                        \"@control\": \"metatag\",\n                        \"@default\": \"identifier\"\n                    }\n                }\n            ],\n            [\n                \"[{}()[\\\\]]\",\n                \"@brackets\"\n            ],\n            [\n                \"\\\\d*\\\\.\\\\d+([eE][-+]?\\\\d+)?[fFdD]?\",\n                \"number.float\"\n            ],\n            [\n                \"0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?\",\n                \"number.hex\"\n            ],\n            [\n                \"0[0-7_]*[0-7][Ll]?\",\n                \"number.octal\"\n            ],\n            [\n                \"0[bB][0-1_]*[0-1][Ll]?\",\n                \"number.binary\"\n            ],\n            [\n                \"\\\\d+[lL]?\",\n                \"number\"\n            ],\n            {\n                \"include\": \"@whitespace\"\n            },\n            [\n                \"\\\"([^\\\"\\\\\\\\]|\\\\\\\\.)*$\",\n                \"string.invalid\"\n            ],\n            [\n                \"\\\"\",\n                \"string\",\n                \"@string\"\n            ],\n            [\n                \"'([^'\\\\\\\\]|\\\\\\\\.)*$\",\n                \"string.invalid\"\n            ],\n            [\n                \"'\",\n                \"string\",\n                \"@string2\"\n            ],\n            [\n                \"<'\",\n                \"string\",\n                \"@string3\"\n            ]\n        ],\n        \"whitespace\": [\n            [\n                \"[ \\\\t\\\\r\\\\n]+\",\n                \"white\"\n            ],\n            [\n                \"\\\\/\\\\*\",\n                \"comment\",\n                \"@comment\"\n            ],\n            [\n                \"\\\\/\\\\/.*$\",\n                \"comment\"\n            ]\n        ],\n        \"comment\": [\n            [\n                \"[^\\\\/*]+\",\n                \"comment\"\n            ],\n            [\n                \"\\\\/\\\\*\",\n                \"comment.invalid\"\n            ],\n            [\n                \"\\\\*/\",\n                \"comment\",\n                \"@pop\"\n            ],\n            [\n                \"[\\\\/*]\",\n                \"comment\"\n            ]\n        ],\n        \"string\": [\n            [\n                \"[^\\\\\\\"]+\",\n                \"string\"\n            ],\n            [\n                \"@escapes\",\n                \"string.escape\"\n            ],\n            [\n                \"\\\\.\",\n                \"string.escape.invalid\"\n            ],\n            [\n                \"\\\"\",\n                \"string\",\n                \"@pop\"\n            ]\n        ],\n        \"string2\": [\n            [\n                \"[^\\\\']+\",\n                \"string\"\n            ],\n            [\n                \"@escapes\",\n                \"string.escape\"\n            ],\n            [\n                \"\\\\.\",\n                \"string.escape.invalid\"\n            ],\n            [\n                \"'\",\n                \"string\",\n                \"@pop\"\n            ]\n        ],\n        \"string3\": [\n            [\n                \"[^\\\\(<')]+\",\n                \"string\"\n            ],\n            [\n                \"'>\",\n                \"string\",\n                \"@pop\"\n            ]\n        ]\n    }\n};\n      }","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n\nimport {languages} from 'monaco-editor';\nimport IndentAction = languages.IndentAction;\n\nexport class WSLanguageConfiguration {\n  getConfiguration(): languages.LanguageConfiguration {\n    return {\n      wordPattern: /[^\\s\\t]+/,\n      comments: {\n        lineComment: '//',\n        blockComment: ['/**', '*/'],\n      },\n      brackets: [\n        ['{', '}'],\n        ['[', ']'],\n        ['(', ')'],\n        ['<%', '%>'],\n        ['<\\'', '\\'>'],\n        ['[[', ']]'],\n      ],\n      autoClosingPairs: [\n        {open: '{', close: '}'},\n        {open: '[', close: ']'},\n        {open: '(', close: ')'},\n        {open: '<%', close: '%>'},\n        {open: '[[', close: ']]'},\n        {open: ' \\'', close: '\\'', notIn: ['string', 'comment']},\n        {open: '<\\'', close: '\\'>'},\n        {open: '\"', close: '\"', notIn: ['string']},\n        {open: '`', close: '`', notIn: ['string', 'comment']},\n        {open: '/**', close: ' */', notIn: ['string']},\n      ],\n      surroundingPairs: [\n        {open: '{', close: '}'},\n        {open: '[', close: ']'},\n        {open: '(', close: ')'},\n        {open: '[[', close: ']]'},\n        {open: '<%', close: '%>'},\n        {open: '<\\'', close: '\\'>'},\n        {open: '\\'', close: '\\''},\n        {open: '\"', close: '\"'},\n        {open: '`', close: '`'},\n      ],\n      onEnterRules: [\n        {\n          // e.g. /** | */\n          beforeText: /^\\s*\\/\\*\\*(?!\\/)([^*]|\\*(?!\\/))*$/,\n          afterText: /^\\s*\\*\\/$/,\n          action: {indentAction: IndentAction.IndentOutdent, appendText: ' * '},\n        },\n        {\n          // e.g. /** ...|\n          beforeText: /^\\s*\\/\\*\\*(?!\\/)([^*]|\\*(?!\\/))*$/,\n          action: {indentAction: IndentAction.None, appendText: ' * '},\n        },\n        {\n          // e.g.  * ...|\n          beforeText: /^(\\t|( {2}))* \\*( ([^*]|\\*(?!\\/))*)?$/,\n          action: {indentAction: IndentAction.None, appendText: '* '},\n        },\n        {\n          // e.g.  */|\n          beforeText: /^(\\t|( {2}))* \\*\\/\\s*$/,\n          action: {indentAction: IndentAction.None, removeText: 1},\n        },\n      ],\n    };\n  }\n}\n","export interface IEntry { description?: string; signature?: string; tags?: string[], since?: string, OPB64name: string}\nexport interface IEntries { [name: string]: IEntry; }\nexport var globalfunctions: IEntries = {\"!\":{\"description\":\"Negates a boolean.\\n\\nThe `!` function is synonymous for [`NOT`](/doc/NOT). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nSince Warp 10™ 2.1, `!` can be applied on a boolean GTS to flip all values.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gtsinput` Since 2.1, a GTS with boolean value.\\n\\n@param `gtsresult` Since 2.1, a GTS with negated boolean value. GTS is not sorted by the operation. Metadata are kept.\\n\\n\",\"signature\":\"input<BOOLEAN>  !  result<BOOLEAN>\\ngtsinput<GTS>  !  gtsresult<GTS>\",\"tags\":[\"logic\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7F\"},\"!=\":{\"description\":\"Tests if both parameters are different.\\n\\nThe `!=` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are different, false otherwise.\\n\\nThe two parameters must be homogeneous of numeric, boolean or string types.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `!=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 !=` is strictly equivalent of a `42 mapper.ne` MAP operation, with a simplified syntax.\\n\\n@param `p1` First parameter to compare, anything except a GTS.\\n\\n@param `p2` Second parameter to compare, anything except a GTS.\\n\\n@param `result` True if p1 and p2 are different, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values different from constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is different from gts2 value.\\n\\n\",\"signature\":\"p1<ANY> p2<ANY>  !=  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  !=  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  !=  outgts<GTS>\\ngts1<GTS> gts2<GTS>  !=  outputgts<GTS>\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7Io\"},\"%\":{\"description\":\"The `%` operator consumes two parameters from the top of the stack and pushes back the remainder of the Euclidean division of the first one by the second one.\\n\\nThe two parameters must be of numeric types.\\n\\n@param `dividend` Number divided by divisor\\n\\n@param `divisor` Number used to divide dividend\\n\\n@param `modulo` Modulo of the two given parameters\\n\\n\",\"signature\":\"divisor<LONG> dividend<LONG>  %  modulo<LONG>\\ndivisor<DOUBLE> dividend<LONG>  %  modulo<DOUBLE>\\ndivisor<LONG> dividend<DOUBLE>  %  modulo<DOUBLE>\\ndivisor<DOUBLE> dividend<DOUBLE>  %  modulo<DOUBLE>\\ndivisor<COUNTER> dividend<COUNTER>  %  modulo<LONG>\\ndivisor<DOUBLE> dividend<COUNTER>  %  modulo<DOUBLE>\\ndivisor<COUNTER> dividend<DOUBLE>  %  modulo<DOUBLE>\\ndivisor<LONG> dividend<COUNTER>  %  modulo<LONG>\\ndivisor<COUNTER> dividend<LONG>  %  modulo<LONG>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"8F\"},\"&\":{\"description\":\"Performs a bitwise **AND** operation.\\n\\nThe `&` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **AND**.\\n\\nSince Warp 10™ 2.1, `&` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be AND to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with AND between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts AND with mask\\n\\n\",\"signature\":\"p1<LONG> p2<LONG>  &  result<LONG>\\ninputgts<GTS> mask<LONG>  &  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  &  outputgts<GTS>\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"8V\"},\"&&\":{\"description\":\"The `&&` operator is a synonymous for [`AND`](/doc/AND).\\n\\nIt performs a logical **&&** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `&&` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical && applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with && between each common tick input values.\\n\\n\",\"signature\":\"p1<BOOLEAN> p2<BOOLEAN>  &&  result<BOOLEAN>\\nl<LIST>  &&  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  &&  gtsresult<GTS>\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"8XN\"},\"(\":{\"description\":\"Starts a set creation.\\n\\nThe `(` function creates a set by pushing a mark onto the stack. This is a syntactic help to better present set constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"signature\":\" (  mark<MARK>\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9.\"},\"()\":{\"description\":\"The `()` function creates an empty SET on the top of the stack.\\nA Set is a collection that cannot contain duplicate elements.\\n\\nThis is an implementation of java [HashSet](https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html). NULL object is permitted. It makes no guarantees as to the iteration order of the set.\\n\\nThe SET object could not be represented on the stack.\\nIt has to be converted in a list to be displayed.\\n\\nStoring GTS into sets do not guarantee uniqueness. each GTS has a hidden id. see example.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newset` set instance, initialized with content.\\n\\n\",\"signature\":\"content<ANY>  ()  newset<SET>\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"91Z\"},\")\":{\"description\":\"Closes a currently open set and pushes it onto the stack.\\n\\nThe `)` function pops from the stack the elements of the set up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `set` The built set\\n\\n@param `mark` The mark indicating the deepest level to consider when building the set\\n\\n\",\"signature\":\"mark<MARK> v1<ANY> vN<ANY>  )  set<SET>\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9F\"},\"*\":{\"description\":\"The `*` operator consumes two parameters from the top of the stack and pushes back the result of multiplying both of them.\\n\\nIf you want to multiply two matrices together, they have to be of the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Multiplication result\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  *  result<NUMBER>\\np1<VECTOR> p2<NUMBER>  *  result<VECTOR>\\np1<NUMBER> p2<VECTOR>  *  result<VECTOR>\\np1<MATRIX> p2<NUMBER>  *  result<MATRIX>\\np1<NUMBER> p2<MATRIX>  *  result<MATRIX>\\np1<MATRIX> p2<VECTOR>  *  result<VECTOR>\\np1<VECTOR> p2<MATRIX>  *  result<VECTOR>\\np1<MATRIX> p2<MATRIX>  *  result<VECTOR>\\np2<GTS> p1<GTS>  *  result<GTS>\\np2<GTS> p1<NUMBER>  *  result<GTS>\\np2<NUMBER> p1<GTS>  *  result<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"9V\"},\"**\":{\"description\":\"Returns the value of the first argument raised to the power of the second argument.\\n\\nThe `**` operator consumes two parameters from the top of the stack (a base **b** and an exponent **n**) and pushes back the result raising b to the power of n,\\ni.e. b<sup>n</sup>. For special cases see [pow()](https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#pow-double-double- \\\"javadoc\\\").\\n\\nSince 2.7.1, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nAlso since 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `b` First parameter, the base\\n\\n@param `n` Second parameter, the exponent\\n\\n@param `blist` List of bases\\n\\n@param `nlist` List of exponents\\n\\n@param `bgts` Numerical GTS of bases\\n\\n@param `ngts` Numerical GTS of exponents\\n\\n@param `result` The result of b<sup>n</sup>\\n\\n@param `outlist` List of b<sup>n</sup>\\n\\n@param `outgts` GTS of b<sup>n</sup>\\n\\n\",\"signature\":\"b<LONG> n<LONG>  **  result<LONG>\\nb<DOUBLE> n<LONG>  **  result<DOUBLE>\\nb<LONG> n<DOUBLE>  **  result<DOUBLE>\\nb<DOUBLE> n<DOUBLE>  **  result<DOUBLE>\\nb<COUNTER> n<COUNTER>  **  result<LONG>\\nb<DOUBLE> n<COUNTER>  **  result<DOUBLE>\\nb<COUNTER> n<DOUBLE>  **  result<DOUBLE>\\nb<COUNTER> n<LONG>  **  result<LONG>\\nb<LONG> n<COUNTER>  **  result<LONG>\\nbgts<GTS> n<NUMBER>  **  outgts<GTS>\\nb<NUMBER> ngts<GTS>  **  outgts<GTS>\\nbgts<GTS> ngts<GTS>  **  outgts<GTS>\\nblist<LIST> n<NUMBER>  **  outlist<LIST>\\nb<NUMBER> nlist<LIST>  **  outlist<LIST>\\nbgts<GTS> n<NUMBER>  **  outgts<GTS>\\nb<NUMBER> ngts<GTS>  **  outgts<GTS>\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9Xc\"},\"+\":{\"description\":\"The `+` operator consumes two parameters from the top of the stack and pushes back the result of adding them.\\n\\nThe meaning of adding depends on the type of parameter:\\n\\n- If both parameters are numbers, the result is the sum of both numbers.\\n\\n- If both parameters are strings, the result is the concatenation of both strings.\\n- If both parameters are byte arrays, the result is the concatenation of both byte arrays (version 2.1+).\\n\\n- If the first parameter is a list, the + operator clones the list and appends the second parameter to the cloned list.\\n\\n- If the first parameter is a set, the + operator clones the set and appends the second parameter to the cloned set.\\n\\n- If both parameters are macros, the result is a macro concatenating the two others in any other case + with throw an exception.\\n\\n- If the first parameter is a vector, the + operator adds the second numeric parameter to each element of the vector.\\n- If the second parameter is a vector, the + operator adds the first numeric parameter to each element of the vector.\\n- If both parameters are vectors, the + operator adds each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If the first parameter is a matrix, the + operator adds the second numeric parameter to each element of the matrix.\\n- If the second parameter is a matrix, the + operator adds the first numeric parameter to each element of the matrix.\\n- If both parameters are matrices, the + operator adds each element of matrices which are on the same index. Matrices must be the same size.\\n- If one of the parameters is a Geo Time Series™, the result will be a Geo Time Series™ of type DOUBLE.\\n\\n@param `param1` First parameter\\n\\n@param `param2` Second parameter\\n\\n@param `result` Result of the addition\\n\\n\",\"signature\":\"param1<STRING> param2<STRING>  +  result<STRING>\\nparam1<LONG> param2<LONG>  +  result<LONG>\\nparam1<DOUBLE> param2<LONG>  +  result<DOUBLE>\\nparam1<COUNTER> param2<LONG>  +  result<LONG>\\nparam1<LONG> param2<DOUBLE>  +  result<DOUBLE>\\nparam1<DOUBLE> param2<DOUBLE>  +  result<DOUBLE>\\nparam1<COUNTER> param2<DOUBLE>  +  result<DOUBLE>\\nparam1<COUNTER> param2<COUNTER>  +  result<LONG>\\nparam1<DOUBLE> param2<COUNTER>  +  result<DOUBLE>\\nparam1<LONG> param2<COUNTER>  +  result<LONG>\\nparam1<LIST> param2<ANY>  +  result<LIST>\\nparam1<SET> param2<ANY>  +  result<SET>\\nparam1<VECTOR> param2<NUMBER>  +  result<VECTOR>\\nparam1<NUMBER> param2<VECTOR>  +  result<VECTOR>\\nparam1<VECTOR> param2<VECTOR>  +  result<VECTOR>\\nparam1<MACRO> param2<MACRO>  +  result<MACRO>\\nparam1<MATRIX> param2<NUMBER>  +  result<MATRIX>\\nparam1<NUMBER> param2<MATRIX>  +  result<MATRIX>\\nparam1<MATRIX> param2<MATRIX>  +  result<MATRIX>\\nparam2<GTS> param1<GTS>  +  result<GTS>\\nparam2<GTS> param1<DOUBLE>  +  result<GTS>\\nparam2<GTS> param1<LONG>  +  result<GTS>\\nparam2<GTS> param1<STRING>  +  result<GTS>\\nparam2<DOUBLE> param1<GTS>  +  result<GTS>\\nparam2<LONG> param1<GTS>  +  result<GTS>\\nparam2<STRING> param1<GTS>  +  result<GTS>\\nparam1<BYTES> param2<BYTES>  +  result<BYTES>\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9k\"},\"+!\":{\"description\":\"The +! operator adds the element on top of the stack to the set or list below it. \\nThe element is added to the existing collection. \\n\\n\\n@param `input` reference to the list or set to be modified\\n\\n@param `output` copy of input list or set reference.\\n\\n@param `item` the item to append to inputlist. Depending on list content, could be any type.\\n\\n\",\"signature\":\"input<LIST> item<ANY>  +!  output<LIST>\\ninput<SET> item<ANY>  +!  output<SET>\",\"tags\":[\"lists\",\"operators\"],\"since\":\"1.2.0\",\"OPB64name\":\"9m3\"},\"-\":{\"description\":\"Subtracts two parameters.\\n\\nThe `-` operator consumes two parameters from the top of the stack and pushes back the result of subtracting the second one from the first one.\\n\\n- If both parameters are numbers, the result is the subtraction of both numbers.\\n\\n- If both parameters are vectors, the - operator subtracts each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If both parameters are matrices, the - operator subtracts each element of matrices which are on the same index. Matrices must be the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Subtraction result\\n\\n\",\"signature\":\"p1<LONG> p2<LONG>  -  result<LONG>\\np1<LONG> p2<DOUBLE>  -  result<DOUBLE>\\np1<DOUBLE> p2<LONG>  -  result<DOUBLE>\\np1<DOUBLE> p2<DOUBLE>  -  result<DOUBLE>\\np1<COUNTER> p2<COUNTER>  -  result<LONG>\\np1<COUNTER> p2<DOUBLE>  -  result<DOUBLE>\\np1<DOUBLE> p2<COUNTER>  -  result<DOUBLE>\\np1<LONG> p2<COUNTER>  -  result<LONG>\\np1<COUNTER> p2<LONG>  -  result<LONG>\\np1<MATRIX> p2<MATRIX>  -  result<MATRIX>\\np1<VECTOR> p2<VECTOR>  -  result<VECTOR>\\np2<GTS> p1<GTS>  -  result<GTS>\\np2<GTS> p1<NUMBER>  -  result<GTS>\\np2<NUMBER> p1<GTS>  -  result<GTS>\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"AF\"},\"->B58\":{\"description\":\"Encodes the string on top of the stack in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58 encoded string\\n\\n\",\"signature\":\"input<STRING>  ->B58  result<STRING>\\ninput<BYTES>  ->B58  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIV\"},\"->B58C\":{\"description\":\"Encodes the string on top of the stack in [Base58Check](https://en.bitcoin.it/wiki/Base58Check_encoding).\\n\\n@param `prefix` Prefix to use for Base58Check encoding\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58Check encoded string\\n\\n\",\"signature\":\"input<STRING> prefix<BYTES>  ->B58C  result<STRING>\\ninput<BYTES> prefix<BYTES>  ->B58C  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIW2\"},\"->B64\":{\"description\":\"Encodes the string on top of the stack in [base64](https://en.wikipedia.org/wiki/Base64).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base64 encoded string\\n\\n\",\"signature\":\"input<STRING>  ->B64  result<STRING>\\ninput<BYTES>  ->B64  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYF\"},\"->B64URL\":{\"description\":\"Encodes the string on top of the stack in [base64url](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).\\n\\n@param `input` String to encode\\n\\n@param `bytes` Byte array to encode\\n\\n@param `result` Base64url encoded string\\n\\n\",\"signature\":\"input<STRING>  ->B64URL  result<STRING>\\nbytes<BYTES>  ->B64URL  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYGKJZk\"},\"->BIN\":{\"description\":\"The ->BIN function converts the byte array or the string on top of the stack \\nto its binary representation.\\n\\nSince the 2.8.0 version, it also converts a **LONG** to its 64 bits binary representation. Thus, this function and [TOBIN](/doc/TOBIN) are equivalent.\\n\\nApplied on a string, `->BIN` replaces ` 'utf-8' ->BYTES ->BIN `\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that. \\n\\n@param `input` Any string or byte array.\\n\\n@param `output` Binary representation of the input.\\n\\n\",\"signature\":\"input<STRING>  ->BIN  output<STRING>\\ninput<BYTES>  ->BIN  output<STRING>\\ninput<LONG>  ->BIN  output<STRING>\\ninput<BITSET>  ->BIN  output<STRING>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1HJs\"},\"->BYTES\":{\"description\":\"->BYTES function converts a string into a bytes array given a charset\\nand put the result on top of the stack.\\n\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\nBytes array cannot be represented on the stack.\\n\\n\\n@param `input` String input.\\n\\n@param `charset` Charset to use.\\n\\n@param `output` Byte array representation of input.\\n\\n\",\"signature\":\"input<STRING> charset<STRING>  ->BYTES  output<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1LKG4Jk\"},\"->DOUBLEBITS\":{\"description\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"signature\":\"number<NUMBER>  ->DOUBLEBITS  bits<LONG>\\ngts<GTS>  ->DOUBLEBITS  longgts<GTS>\",\"tags\":[\"math\",\"gts\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt3IpK1I3K1HKGI\"},\"->ENCODER\":{\"description\":\"The `->ENCODER` function takes a list of points and encode them in a single encoder. Each point is a list of ( timestamp, latitude, longitude, elevation, value ). Since 2.1.1, a point can also be a Geo Time Series™ or a wrapped one. In that case all the points of the Geo Time Series™ are added to the encoder.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `elements` List of list of ( timestamp, latitude, longitude, elevation, value ). See example to see which element(s) can be omitted.\\n\\n@param `lgts` A list of Geo Time Series™ instances.\\n\\n@param `lwrappedgts` A list of wrapped Geo Time Series™ instances, such as produced by [`WRAP`](/doc/WRAP).\\n\\n@param `lrawwrappedgts` A list of raw wrapped Geo Time Series™ instances, such as produced by [`WRAPRAW`](/doc/WRAPRAW).\\n\\n@param `output` Encoder\\n\\n\",\"signature\":\"elements<LIST>  ->ENCODER  output<GTSENCODER>\\nlgts<LIST<GTS>>  ->ENCODER  output<GTSENCODER>\\nlwrappedgts<LIST<STRING>>  ->ENCODER  output<GTSENCODER>\\nlrawwrappedgts<LIST<BYTES>>  ->ENCODER  output<GTSENCODER>\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt4IZCEG3KH\"},\"->ENCODERS\":{\"description\":\"The `->ENCODERS` function converts an encoder into one encoder per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content, when a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  ->ENCODERS  output<MAP>\\nwrappedencoder<STRING>  ->ENCODERS  output<MAP>\\nrawwrappedencoder<BYTES>  ->ENCODERS  output<MAP>\",\"tags\":[\"gts\",\"encoder\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AIt4IZCEG3KHJk\"},\"->FLOATBITS\":{\"description\":\"Converts a numeric value to a **FLOAT** then to a **LONG** value of the raw bits of its representation.\\n\\nOnly the lower 32 bits of the **LONG** value are significant.\\n\\n@param `input` Double to convert\\n\\n@param `result` Raw bits representation\\n\\n\",\"signature\":\"input<NUMBER>  ->FLOATBITS  result<LONG>\",\"tags\":[\"math\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt5I3x0K388K4B\"},\"->GEOCELL\":{\"description\":\"The `->GEOCELL` function converts a **STRING** or a **BYTES** HHCode prefix to a **LONG** geocell. The length of the input implicitly specifies the resolution of the cell.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `hhPrefixS` A HHCode prefix representing a cell. Resolution is twice the length of the **STRING**.\\n\\n@param `hhPrefixB` A HHCode prefix representing a cell. Resolution is four times the length of the **BYTES**.\\n\\n@param `geocell` The geocell representation.\\n\\n\",\"signature\":\"hhPrefixS<STRING>  ->GEOCELL  geocell<LONG>\\nhhPrefixB<BYTES>  ->GEOCELL  geocell<LONG>\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJx2GJlB\"},\"->GEOHASH\":{\"description\":\"The `->GEOHASH` function packs a latitude and a longitude into a STRING [Geohash](https://en.wikipedia.org/wiki/Geohash), converts a [HHCode](https://en.wikipedia.org/wiki/HHCode) into its Geohash counterpart, or converts a `GEOSHAPE` into a list of Geohashes covering the same geographical area.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `geohash` Geohash string packing the specified latitude and longitude.\\n\\n@param `hhcode` HHCode to transform.\\n\\n@param `shape` `GEOSHAPE` to convert.\\n\\n@param `geohashes` List of Geohashes covering the same area as `shape`.\\n\\n\",\"signature\":\"lat<DOUBLE> lon<DOUBLE>  ->GEOHASH  geohash<STRING>\\nhhcode<LONG>  ->GEOHASH  geohash<STRING>\\nshape<GEOSHAPE>  ->GEOHASH  geohashes<LIST<STRING>>\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt6GJx7FKC7\"},\"->GEOJSON\":{\"description\":\"The `->WKB` function converts a WKT **STRING**, WKB **BYTES**, a GML **STRING, a KML **STRING** or a **SHAPE** to a GeoJSON **STRING**.\\n\\nThe resulting GeoJSON is a string representing a MultiPolygon geometry. By default, it defines the boundaries of the covered areas and any holes it these areas, if any.\\n\\nIt is also possible for this function to return a GeoJSON representing all the cells in the GeoShape.\\n\\n GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson` The resulting GeoJSON.\\n\\n@param `wkt_kml_gml` A WKT, KML or GML string\\n\\n@param `wkb` WKB bytes\\n\\n\",\"signature\":\"shape<GEOSHAPE>  ->GEOJSON  geojson<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->GEOJSON  geojson<STRING>\\nwkt_kml_gml<STRING>  ->GEOJSON  geojson<STRING>\\nwkb<BYTES>  ->GEOJSON  geojson<STRING>\",\"tags\":[\"geo\"],\"since\":\"2.4.1\",\"OPB64name\":\"AIt6GJx9JoxD\"},\"->GEOSHAPE\":{\"description\":\"The `->GEOSHAPE` function converts a list of **LONG** geocells or HHCode prefixes (**STRING** or **BYTES**) to a **GEOSHAPE**.\\n\\n@param `geocells` List of geocells, as **LONGs**.\\n\\n@param `hhPrefixesS` List of HHCode prefixes, as **STRINGs**.\\n\\n@param `hhPrefixesB` List of HHCode prefixes, as **BYTESs**.\\n\\n@param `geoshape` The resulting **GEOSHAPE**.\\n\\n\",\"signature\":\"geocells<LIST<LONG>>  ->GEOSHAPE  geoshape<GEOSHAPE>\\nhhPrefixesS<LIST<STRING>>  ->GEOSHAPE  geoshape<GEOSHAPE>\\nhhPrefixesB<LIST<BYTES>>  ->GEOSHAPE  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJxIH34FGF\"},\"->GML\":{\"description\":\"The `->GML` function converts a GeoJSON **STRING**, a WKT **STRING**, WKB **BYTES**, a KML **STRING** or a **SHAPE** to a GML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml` A GeoJSON, WKT or KML string.\\n\\n@param `gml` The resulting GML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  ->GML  gml<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->GML  gml<STRING>\\ngeojson_wkt_kml<STRING>  ->GML  gml<STRING>\\nwkb<BYTES>  ->GML  gml<STRING>\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AIt6IJk\"},\"->GTS\":{\"description\":\"The `->GTS` function converts an encoder into one GTS per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\n###### Since 2.4.0:\\n- `->GTS` function can also take a conversion MAP input. Using this conversion MAP, the output is always a list of GTS.\\n- The conversion map can also take a list of selectors for each output type.\\n- The conversion map can be empty: In this case, the GTS type is enforced by the type of the first element in the encoder input.\\n- The first selector match stops the research. It means key order matters. See Examples.\\n- A new '.type' label is added to each output GTS. This could be overridden with the 'label.type' parameter of the conversion MAP.\\n- `->GTS` function can handle encoders, or list of encoders.\\n\\n###### What is an encoder ?\\nA Geo Time Series™ is limited to the type of the first value stored.\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content.\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder. Values are GTS.\\n\\n@param `lencoder` List of encoders input (supported since 2.4.0).\\n\\n@param `lwrappedencoder` List of encoders after WRAP (supported since 2.4.0).\\n\\n@param `lrawwrappedencoder` List of encoders after WRAPRAW (supported since 2.4.0).\\n\\n@param `loutput` Map with a key/value per type encountered in the input encoder. Values are a list of GTS.\\n\\n@param `conversionmap` Map with type as keys, selectors or list of selectors as values. The special key `label.type` allow to change the default `.type` label. Set `label.type` to NULL to avoid any new label. The conversion map could be empty.\\n\\n@param `conversionoutput` A GTS, or a list of GTS.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  ->GTS  output<MAP>\\nwrappedencoder<STRING>  ->GTS  output<MAP>\\nrawwrappedencoder<BYTES>  ->GTS  output<MAP>\\nlencoder<LIST<GTSENCODER>>  ->GTS  loutput<MAP>\\nlwrappedencoder<LIST<STRING>>  ->GTS  loutput<MAP>\\nlrawwrappedencoder<LIST<BYTES>>  ->GTS  loutput<MAP>\\nencoder<GTSENCODER> conversionmap<MAP>  ->GTS  conversionoutput<GTS>\\nwrappedencoder<STRING> conversionmap<MAP>  ->GTS  conversionoutput<GTS>\\nrawwrappedencoder<BYTES> conversionmap<MAP>  ->GTS  conversionoutput<GTS>\\nlencoder<LIST<GTSENCODER>> conversionmap<MAP>  ->GTS  conversionoutput<LIST<GTS>>\\nlwrappedencoder<LIST<STRING>> conversionmap<MAP>  ->GTS  conversionoutput<LIST<GTS>>\\nlrawwrappedencoder<LIST<BYTES>> conversionmap<MAP>  ->GTS  conversionoutput<LIST<GTS>>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt6K4B\"},\"->GTSHHCODE\":{\"description\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"signature\":\"lat<NUMBER> lon<NUMBER>  ->GTSHHCODE  hhcode<STRING>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3J\"},\"->GTSHHCODELONG\":{\"description\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"signature\":\"lat<NUMBER> lon<NUMBER>  ->GTSHHCODELONG  hhcode<STRING>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3KBIot6\"},\"->HEX\":{\"description\":\"The `->HEX` function decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV).\\n\\nApplied on a string, `->HEX` replaces `'utf-8' ->BYTES ->HEX`\\n\\nSince 2.8.0 this function also converts a long to its 64 bits hexadecimal representation. Thus this function is equivalent to [TOHEX](/doc/TOHEX).\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that.\\n\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Decoded string of input, assuming utf-8 encoding of input.\\n\\n\",\"signature\":\"input<STRING>  ->HEX  output<STRING>\\ninput<BYTES>  ->HEX  output<STRING>\\ninput<LONG>  ->HEX  output<STRING>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt7GKV\"},\"->HHCODE\":{\"description\":\"The `->HHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"signature\":\"lat<NUMBER> lon<NUMBER>  ->HHCODE  hhcode<STRING>\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt7H3CEG3J\"},\"->HHCODELONG\":{\"description\":\"The `->HHCODELONG` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"signature\":\"lat<NUMBER> lon<NUMBER>  ->HHCODELONG  hhcode<LONG>\",\"tags\":[\"geo\"],\"since\":\"1.2.5\",\"OPB64name\":\"AIt7H3CEG3KBIot6\"},\"->JSON\":{\"description\":\"The `->JSON` functions serialize structures containing numbers, strings, booleans, lists, vlists and maps which do not reference the same list/map multiple times.\\n\\n@param `object` Object to serialize\\n\\n@param `output` JSON formatted string\\n\\n\",\"signature\":\"object<ANY>  ->JSON  output<STRING>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt9JoxD\"},\"->KML\":{\"description\":\"The `->KML` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, WKB **BYTES** or a **SHAPE** to a KML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_gml` A GeoJSON, WKT or GML string.\\n\\n@param `kml` The resulting KML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  ->KML  kml<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->KML  kml<STRING>\\ngeojson_wkt_gml<STRING>  ->KML  kml<STRING>\\nwkb<BYTES>  ->KML  kml<STRING>\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AItAIJk\"},\"->LIST\":{\"description\":\"The `->LIST` function create a list from N elements on the stack.\\nN and the N next elements on the stack are consumed.\\n\\nIf N is greater than current stack depth, the function raises an error.\\n\\n@param `N` The number of elements to take on the top of the stack to build the list.\\n\\n@param `newlist` The list of N elements. [deepest in stack ... TOP-1 ]\\n\\n@param `content` 0 to n elements\\n\\n\",\"signature\":\"content<ANY*> N<LONG>  ->LIST  newlist<LIST>\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItBHKCJ\"},\"->LONGBYTES\":{\"description\":\"`->LONGBYTES` converts a LONG to a byte array. It expects a number of bytes on the top of the stack.\\n\\nSince Warp 10™ 2.1, `->LONGBYTES` can also convert a list of LONG.\\n\\n@param `nbbytes` Number of bytes for number conversion: nbbytes could be 1 to 8. If less than 8, most significant bytes will be truncated.\\n\\n@param `number` must be a LONG\\n\\n@param `output` byte array, from 1 to 8 bytes per number\\n\\n@param `numberList` Since Warp 10 2.1, a list of LONG\\n\\n\",\"signature\":\"number<LONG> nbbytes<LONG>  ->LONGBYTES  output<BYTES>\\nnumberList<LIST<LONG>> nbbytes<LONG>  ->LONGBYTES  output<BYTES>\",\"tags\":[\"binary\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItBIot6F__JGKB\"},\"->MACRO\":{\"description\":\"The `->MACRO->` creates a `MACRO` from a `LIST` of statements such as the ones created by `MACRO->`.\\n\\n@param `macro` `MACRO` containing the statements from `statements`.\\n\\n@param `statements` List of statements.\\n\\n\",\"signature\":\"statements<LIST>  ->MACRO  macro<MACRO>\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItCFJCHIk\"},\"->MAP\":{\"description\":\"The ->MAP function creates a MAP from an even number N of elements on the stack. \\nN is consumed off the top of the stack. For each pair, the deepest element is the key, the shallowest is the value.\\n\\n\\n@param `content` 0 to n pairs of key-value elements. Keys must be different.\\n\\n@param `N` Number of content elements to consume on the stack. It must be even.\\n\\n@param `newmap` map instance, initialized with content.\\n\\n\",\"signature\":\"content<ANY*> N<LONG>  ->MAP  newmap<MAP>\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItCFK.\"},\"->MAT\":{\"description\":\"The `->MAT` function converts nested lists of numbers (2D array with same number of columns) into a Matrix.\\n\\nMATRIX objects cannot be represented on the stack. \\n\\nMatrix entries must be numbers.\\n\\n\\n@param `input` List of lists of values\\n\\n@param `result` A MATRIX object\\n\\n\",\"signature\":\"[ input<LIST> ]  ->MAT  result<MATRIX>\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItCFKF\"},\"->MVSTRING\":{\"description\":\"The `->MVSTRING` function generates a STRING representation of an ENCODER in the format expected by the `/update` endpoint for multi values.\\n\\nWhen encountering a binary element, the function attempts to interpret it as a wrapped encoder, if that fails then it will output the element as a binary (`b64:...`) value.\\n\\n@param `input` Wrapped or unwrapped Geo Time Series™ or ENCODER.\\n\\n@param `mvstring` MultiValue format representation of the wrapped encoder/GTS.\\n\\n\",\"signature\":\"input<STRING>  ->MVSTRING  mvstring<STRING>\\ninput<BYTES>  ->MVSTRING  mvstring<STRING>\\ninput<GTS>  ->MVSTRING  mvstring<STRING>\\ninput<GTSENCODER>  ->MVSTRING  mvstring<STRING>\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItCK_CJJZ_DGk\"},\"->OPB64\":{\"description\":\"Encode a String in order preserving base64. OPB64 is a Base64 like encoding which preserves the lexicographic order of\\nthe original byte arrays in the encoded ones. This is useful to compare encoded byte arrays without having to first decode them.\\n\\n@param `input` Could be a string or a byte array.\\n\\n@param `output` OPB64 of input.\\n\\n\",\"signature\":\"input<STRING>  ->OPB64  output<STRING>\\ninput<BYTES>  ->OPB64  output<STRING>\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItEJ37qC.\"},\"->PICKLE\":{\"description\":\"The `->PICKLE` function converts the object on top of the stack to a Python object and serializes it using Pickle protocol version 2.\\nThe conversion table used is as follow:\\n\\n| WarpScript | Python |\\n|------------|--------|\\n| NULL | None |\\n| BOOLEAN | bool |\\n| BYTES | bytearray |\\n| STRING | str/unicode |\\n| DOUBLE | float |\\n| LONG | int |\\n| LIST | list |\\n| MAP | dict |\\n| SET | set |\\n| GTS | dict |\\n| ENCODER | dict |\\n\\nOther types are unsupported.\\n\\nPython examples with `->PICKLE ->HEX` output:\\n\\n**Python2**\\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle\\n>>> pickle.loads(s.decode(\\\"hex\\\"))\\n[u'PICKLE', u'STRING', [5, 3.141592653589793]]\\n```\\n**Python3** \\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle, codecs\\n>>> pickle.loads(codecs.decode(s, \\\"hex\\\"))\\n['PICKLE', 'STRING', [5, 3.141592653589793]]\\n```\\n\\n@param `input` A serializable object\\n\\n@param `output` Pickle encoded content\\n\\n\",\"signature\":\"input<ANY>  ->PICKLE  output<BYTES>\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"AItFHJCAI3J\"},\"->Q\":{\"description\":\"The `->Q` function consumes on the stack 4 doubles (w, x, y, z, with z being on top) representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion)\\nand push back quaternion representation into a **LONG**.\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `result` Quaternion representation\\n\\n\",\"signature\":\"w<DOUBLE> x<DOUBLE> y<DOUBLE> z<DOUBLE>  ->Q  result<LONG>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItG\"},\"->RLP\":{\"description\":\"The `->RLP` function converts an individual `LONG`, `STRING` or `BYTES` element or a list of elements (including lists) into a byte array using the [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoding.\\n\\n@param `str` `STRING` to encode. It will first be converted to `BYTES` using the `UTF-8` character set.\\n\\n@param `bytes` Byte array to encode.\\n\\n@param `long` `LONG` value to encode.\\n\\n@param `list` `LIST` to encode.\\n\\n@param `encoded` Result of encoding.\\n\\n\",\"signature\":\"str<STRING>  ->RLP  encoded<BYTES>\\nbytes<BYTES>  ->RLP  encoded<BYTES>\\nlong<LONG>  ->RLP  encoded<BYTES>\\nlist<LIST>  ->RLP  encoded<BYTES>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItHI4.\"},\"->SET\":{\"description\":\"The -`>SET` function converts a **LIST** on top of the stack into a **SET**.\\n\\nSETs are not viewable, null will be return if it remains on the stack.\\n\\nThe order in the SET is not guaranteed, see [`()`](/doc/91Z).\\n\\n\\n@param `input` The input list\\n\\n@param `newset` The new set reference. SETs are not viewable, null remains on the stack.\\n\\n\",\"signature\":\"input<LIST>  ->SET  newset<SET>\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItIGKF\"},\"->SSSS\":{\"description\":\"The `->SSSS` function splits a byte array into `N` shares so `K` of them can reconstruct the original byte array.\\n\\nThe splitting is done using a Shamir Secret Sharing Scheme as described in the [seminal paper](http://web.mit.edu/6.857/OldStuff/Fall03/ref/Shamir-HowToShareASecret.pdf) by [Adi Shamir](https://en.wikipedia.org/wiki/Adi_Shamir).\\n\\nThe principle is based on the fact that a polynomial `P` of degree `K-1` can be fully determined by `K` points (`X`,`Y`), where `Y = P(X)`. All computations are performed using arithmetic in the [Galois Field](https://en.wikipedia.org/wiki/Finite_field) [`GF(256)`](https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Finite_field_arithmetic) used for [QR/Code]() Reed Solomon error correction, its generator is `2` and its primitive polynomial `0x11D` (`x^8 + x^4 + x^3 + x^2 + 1`).\\n\\nFor each byte `B` to encode, a random polynomial `P` over `GF(256)` is chosen with the constraint that `P(0) = B`. Then `N` random values of `GF(256)` are selected and for each `X` such value, the two bytes `X` and `P(X)` are output to a share. If `X` was 0, a random value is emitted instead of `P(X)` and a new `X` value is selected. This is done to ensure the randomness of the output. It may therefore be possible that a split is longer than twice the size of the original input.\\n\\n@param `secret` Secret to split.\\n\\n@param `N` Number of splits to generated, minimum is 2, maximum is 255.\\n\\n@param `K` Number of splits needed to reconstruct `secret`, must be less or equal to `N`.\\n\\n@param `randomness` Flag indicating whether or not the byte pairs starting with `0x00` should be retained (`true`) or stripped (`false`). This parameter is optional.\\n\\n@param `splits` List of generated splits.\\n\\n\",\"signature\":\"secret<BYTES> N<LONG> K<LONG> randomness<BOOLEAN>  ->SSSS  splits<LIST<BYTES>>\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"AItIJpCI\"},\"->TSELEMENTS\":{\"description\":\"The `->TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"signature\":\"timestamp<LONG>  ->TSELEMENTS  dateAndTimeElements<LIST<LONG>>\\ntimestamp<LONG> timezone<STRING>  ->TSELEMENTS  dateAndTimeElements<LIST<LONG>>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"AItJJoKBGJp4I_GI\"},\"->V\":{\"description\":\"The `->V` function converts a list of objects into a Pig Vector (VLIST).\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `list` Input list\\n\\n@param `set` Input set\\n\\n@param `result` Result list\\n\\n\",\"signature\":\"list<LIST>  ->V  result<VLIST>\\nset<SET>  ->V  result<VLIST>\",\"tags\":[\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"AItL\"},\"->VARINT\":{\"description\":\"The `->VARINT` function encodes a `LONG` or a list of `LONG`s using [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoding. The result is a byte array containing the concatenation of the encoded numbers.\\n\\nThe `->VARINT` function is optimized for encoding unsigned `LONG`s, this means that negative numbers (with the most significant bit set to 1) will be encoded on 10 bytes. In order to reduce this footprint you can pre-process the numbers to encode so they are encoded using [ZigZag VarInt](https://developers.google.com/protocol-buffers/docs/encoding#types) encoding. The simple trick is to compute\\n\\n```\\n$value 1 << $value 63 >> ^\\n```\\n\\nthis will have the effect of alternatively encoding positive and negative numbers thus leading to a more efficient footprint for negative numbers.\\n\\nAt decoding time using `VARINT->`, simply undo the *Zig-Zag* trick:\\n\\n```\\n$unsigned 63 << 63 >> $unsigned ^ 1 >>\\n// Flip the top bit\\n$unsigned 1 63 << & ^\\n```\\n\\n@param `number` Single number to encode.\\n\\n@param `numbers` List of numbers to encode.\\n\\n@param `encoded` Byte array containing the encoded number(s).\\n\\n\",\"signature\":\"number<LONG>  ->VARINT  encoded<BYTES>\\nnumbers<LIST<LONG>>  ->VARINT  encoded<BYTES>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"AItLFK88I_F\"},\"->VEC\":{\"description\":\"The `->VEC` function converts a list of numbers into a Vector.\\n\\nVectors objects cannot be represented on the stack. \\n\\nVectors entries must be numbers.\\n\\n@param `list` List to convert\\n\\n@param `matrix` Matrix with a single column\\n\\n@param `result` Vector\\n\\n\",\"signature\":\"list<LIST>  ->VEC  result<VECTOR>\\nmatrix<MATRIX>  ->VEC  result<VECTOR>\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItLGJB\"},\"->WKB\":{\"description\":\"The `->WKB` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, a KML **STRING** or a **SHAPE** to WKB **BYTES**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml_gml` A GeoJSON, WKT, KML or GML string.\\n\\n@param `wkb` The resulting WKB.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  ->WKB  wkb<BYTES>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->WKB  wkb<BYTES>\\ngeojson_wkt_kml_gml<STRING>  ->WKB  wkb<BYTES>\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHo7\"},\"->WKT\":{\"description\":\"The `->WKT` function converts a GeoJSON **STRING**, WKB **BYTES**, a KML **STRING**, a GML **STRING** or a **SHAPE** to a WKT **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_kml_gml` A GeoJSON, KML or GML string.\\n\\n@param `wkt` The resulting WKT.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  ->WKT  wkt<STRING>\\nshape<GEOSHAPE> allCells<BOOLEAN>  ->WKT  wkt<STRING>\\ngeojson_kml_gml<STRING>  ->WKT  wkt<STRING>\\nwkb<BYTES>  ->WKT  wkt<STRING>\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHpF\"},\"->Z\":{\"description\":\"The `->Z` function packs multiple **LONG** arguments into a byte array by interleaving the bits of the arguments. This produces a \\n[Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) value encoding the original arguments. The value might be right padded with bits set to 0 to reach a multiple of 8 bits.\\n\\n@param `bitwidth` Number of bits to consider for each LONG in 'longs', from 1 to 63.\\n\\n@param `longs` List of LONGs to pack. Each LONG *MUST* be positive, i.e. with bit 63 set to 0.\\n\\n@param `z` Byte array containing the packed values.\\n\\n\",\"signature\":\"longs<LIST<LONG>> bitwidth<LONG>  ->Z  z<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItP\"},\"/\":{\"description\":\"The `/` operator consumes two parameters from the top of the stack and pushes back the result of dividing the first one by the second one.\\n\\nYou can't devide by zero.\\n\\nThe two parameters must be of numeric types, or Geo Time Series™, or a mix of the two.\\n\\n@param `long` Numeric integer\\n\\n@param `long-result` Numeric floor-rounded integer\\n\\n@param `double` Numeric floating point number\\n\\n@param `double-result` Numeric floating point number\\n\\n@param `counter` Numeric counter\\n\\n@param `param1` First parameter of the division.\\n\\n@param `param2` Second parameter of the division.\\n\\n@param `result` Resulting GTS, of type DOUBLE.\\n\\n\",\"signature\":\"long<LONG> long<LONG>  /  long-result<LONG>\\ndouble<DOUBLE> long<LONG>  /  double-result<DOUBLE>\\nlong<LONG> double<DOUBLE>  /  double-result<DOUBLE>\\ndouble<DOUBLE> double<DOUBLE>  /  double-result<DOUBLE>\\ncounter<COUNTER> counter<COUNTER>  /  long-result<LONG>\\ndouble<DOUBLE> counter<COUNTER>  /  long-result<DOUBLE>\\ncounter<COUNTER> double<DOUBLE>  /  long-result<DOUBLE>\\ncounter<COUNTER> long<LONG>  /  long-result<LONG>\\nlong<LONG> counter<COUNTER>  /  long-result<LONG>\\ndouble<VECTOR> double<NUMBER>  /  double-result<VECTOR>\\nparam2<GTS> param1<GTS>  /  result<GTS>\\nparam2<GTS> param1<NUMBER>  /  result<GTS>\\nparam2<NUMBER> param1<GTS>  /  result<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ak\"},\"<\":{\"description\":\"The `<` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 < p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <` is strictly equivalent of a `42 mapper.lt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 < p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less than gts2 value.\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  <  result<BOOLEAN>\\np1<STRING> p2<STRING>  <  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  <  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  <  outgts<GTS>\\ngts1<GTS> gts2<GTS>  <  outputgts<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E.\"},\"<<\":{\"description\":\"Shifts the bits of a long by a number of positions to the left. The least significant bit is filled with 0 after each shift.\\n\\nSince Warp 10™ 2.1, `<<` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"signature\":\"number<LONG> shift<LONG>  <<  result<LONG>\\ninputgts<GTS> number<LONG>  <<  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  <<  outputgts<GTS>\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2k\"},\"<=\":{\"description\":\"The `<=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 <= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <=` is strictly equivalent of a `42 mapper.le` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 <= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less or equal than gts2 value.\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  <=  result<BOOLEAN>\\np1<STRING> p2<STRING>  <=  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  <=  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  <=  outgts<GTS>\\ngts1<GTS> gts2<GTS>  <=  outputgts<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2o\"},\"==\":{\"description\":\"Tests if both parameters are equal.\\n\\nThe `==` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are equal, false otherwise.\\n\\nThe two parameters must be of numeric, boolean, vector, matrix or string types.\\nFor vector or matrix, the parameters must be the same size.\\n\\nSince 2.1.0, as every other comparison operators, `==` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 ==` is strictly equivalent of a `42 mapper.eq` MAP operation, with a simplified syntax.\\n\\nSince 2.1.1, `==` can be use to check equality between Lists, Maps and Sets. For for details about how this is defined, check the [java documentation](https://docs.oracle.com/en/java/javase/index.html).\\n\\n@param `p1` First parameter to compare\\n\\n@param `p2` Second parameter to compare\\n\\n@param `result` True if p1 and p2 are equal, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values equal to constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value equals gts2 value.\\n\\n\",\"signature\":\"p1<ANY> p2<ANY>  ==  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  ==  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  ==  outgts<GTS>\\ngts1<GTS> gts2<GTS>  ==  outputgts<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EIo\"},\">\":{\"description\":\"The `>` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 > p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >` is strictly equivalent of a `42 mapper.gt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 > p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater than gts2 value.\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  >  result<BOOLEAN>\\np1<STRING> p2<STRING>  >  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  >  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  >  outgts<GTS>\\ngts1<GTS> gts2<GTS>  >  outputgts<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EV\"},\">=\":{\"description\":\"The `>=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 >= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >=` is strictly equivalent of a `42 mapper.ge` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 >= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater or equal than gts2 value.\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  >=  result<BOOLEAN>\\np1<STRING> p2<STRING>  >=  result<BOOLEAN>\\ninputgts<GTS> constant<ANY>  >=  outgts<GTS>\\nconstant<ANY> inputgts<GTS>  >=  outgts<GTS>\\ngts1<GTS> gts2<GTS>  >=  outputgts<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYo\"},\">>\":{\"description\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after shifting depends on the sign of the unshifted long.\\n\\nSince Warp 10™ 2.1, `>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"signature\":\"number<LONG> shift<LONG>  >>  result<LONG>\\ninputgts<GTS> number<LONG>  >>  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  >>  outputgts<GTS>\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYs\"},\">>>\":{\"description\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after each shift is set to 0, regardless of the sign of \\nthe unshifted long.\\n\\nSince Warp 10™ 2.1, `>>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"signature\":\"number<LONG> shift<LONG>  >>>  result<LONG>\\ninputgts<GTS> number<LONG>  >>>  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  >>>  outputgts<GTS>\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYsy\"},\"ABI->\":{\"description\":\"The `ABI->` function parses a JSON structure describing an [`ABI`](https://docs.soliditylang.org/en/develop/abi-spec.html) and produces a `MAP` with individual entries for each definition appearing in the JSON spec.\\n\\n@param `json` JSON representation of the ABI, as produced by `solc --abi`.\\n\\n@param `abi` `MAP` containing entries for each function, error or event described in the `ABI`.\\n\\n\",\"signature\":\"json<STRING>  ABI->  abi<MAP>\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"FJ88AIs\"},\"ABI.SIG\":{\"description\":\"Computes the signature of an [ABI](https://docs.soliditylang.org/en/v0.8.13/abi-spec.html) element. The element can be of type `function` or `event`.\\n\\n@param `abi` ABI description of the element whose signature must be generated.\\n\\n@param `signature` Hex encoded and `0x` prefixed 32 bits signature of the ABI.\\n\\n\",\"signature\":\"abi<MAP>  ABI.SIG  signature<STRING>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ABI.SIG\"},\"ABS\":{\"description\":\"Computes the absolute value of a number value.\\n\\nThe `ABS` function consumes a numeric value from the top of the stack and pushes back its absolute value.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` A numeric value\\n\\n@param `result` The absolute value of the given numeric value.\\n\\n@param `lvalue` A list of numeric values\\n\\n@param `lresult` A list of the absolute values of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the absolute values of the given GTS values\\n\\n\",\"signature\":\"value<LONG>  ABS  result<LONG>\\nvalue<COUNTER>  ABS  result<LONG>\\nvalue<DOUBLE>  ABS  result<DOUBLE>\\nlvalue<LIST<LONG>>  ABS  lresult<LIST<LONG>>\\nlvalue<LIST<COUNTER>>  ABS  lresult<LIST<LONG>>\\nlvalue<LIST<DOUBLE>>  ABS  lresult<LIST<DOUBLE>>\\ngts<GTS>  ABS  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ABS\"},\"ACCEL.CACHE\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.CACHE` function will enable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.CACHE\"},\"ACCEL.NOCACHE\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOCACHE` function will disable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOCACHE\"},\"ACCEL.NOPERSIST\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOPERSIST` function will disable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOPERSIST\"},\"ACCEL.PERSIST\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.PERSIST` function will enable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.PERSIST\"},\"ACCEL.REPORT\":{\"description\":\"The `ACCEL.REPORT` function will produce a map containing informations related to the Warp 10 Accelerator. The following table describes the various keys present in this map:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `accelerated` | Boolean indicating whether or not the last [`FETCH`](/doc/FETCH) accessed the in-memory data managed by the Warp 10 Accelerator. |\\n| `status` | Boolean indicating whether or not the Warp 10 Accelerator is enabled. |\\n| `cache` | Boolean indicating if the in-memory data will be considered for update, fetch and delete operations. |\\n| `persist` | Boolean indicating if the persistent data will be considered for update, fetch and delete operations. |\\n| `chunkcount` | Number of chunks managed by the accelerator for its in-memory data. |\\n| `chunkspan` | Length of each chunk expressed in platform time units. |\\n\\n@param `report` Map containing informations related to the Warp 10 Accelerator\\n\\n\",\"signature\":\" ACCEL.REPORT  report<MAP>\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.REPORT\"},\"ACOS\":{\"description\":\"The `ACOS` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arccosine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arccosine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arccosine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arccosine in radians of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  ACOS  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  ACOS  lresult<LIST<DOUBLE>>\\ngts<GTS>  ACOS  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ACOS\"},\"ADDDAYS\":{\"description\":\"Adds days to a timestamp or a tselements.\\n\\nThe `ADDDAYS` function consumes from the top of the stack a number (positive or negative) of days, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the days and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `days` The number of days to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"timestamp<LONG> timezone<STRING> days<LONG>  ADDDAYS  result<LONG>\\ntimestamp<LONG> days<LONG>  ADDDAYS  result<LONG>\\ntselements<LIST<LONG>> days<LONG>  ADDDAYS  tselementsresult<LIST<LONG>>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDDAYS\"},\"ADDDURATION\":{\"description\":\"Adds an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) to a timestamp or a tselements.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `duration` The duration\\n\\n@param `factor` The number of durations to add. Can be negative. Default to 1 if not set.\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"timestamp<LONG> timezone<STRING> duration<STRING>  ADDDURATION  result<LONG>\\ntimestamp<LONG> timezone<STRING> duration<STRING> factor<LONG>  ADDDURATION  result<LONG>\\ntimestamp<LONG> duration<STRING>  ADDDURATION  result<LONG>\\ntimestamp<LONG> duration<STRING> factor<LONG>  ADDDURATION  result<LONG>\\ntselements<LIST<LONG>> duration<STRING>  ADDDURATION  tselementsresult<LIST<LONG>>\\ntselements<LIST<LONG>> duration<STRING> factor<LONG>  ADDDURATION  tselementsresult<LIST<LONG>>\",\"tags\":[\"date\"],\"since\":\"2.4.0\",\"OPB64name\":\"ADDDURATION\"},\"ADDEXACT\":{\"description\":\"The `ADDEXACT` function consumes two LONGs from the top of the stack and puts back the sum. If the sum overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `sum` The sum of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `ssum` The sum of all the elements of list\\n\\n@param `gsum` The sum of all the values of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lsum` List of **LONG** where each value is the sum of y and an element in lx\\n\\n@param `gtssum` GTS of **LONG** values where each value is the sum of y and an element in gtsx\\n\\n\",\"signature\":\"x<NUMBER> y<NUMBER>  ADDEXACT  sum<LONG>\\nlist<LIST<NUMBER>>  ADDEXACT  ssum<LONG>\\nlx<LIST<NUMBER>> y<NUMBER>  ADDEXACT  lsum<LIST<LONG>>\\ngts<GTS>  ADDEXACT  gsum<GTS>\\ngtsx<GTS> y<NUMBER>  ADDEXACT  gtssum<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"ADDEXACT\"},\"ADDMONTHS\":{\"description\":\"Adds months to a timestamp or a tselements.\\n\\nThe `ADDMONTHS` function consumes from the top of the stack a number (positive or negative) of months, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the months and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `months` The number of months to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"timestamp<LONG> timezone<STRING> months<LONG>  ADDMONTHS  result<LONG>\\ntimestamp<LONG> months<LONG>  ADDMONTHS  result<LONG>\\ntselements<LIST<LONG>> months<LONG>  ADDMONTHS  tselementsresult<LIST<LONG>>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDMONTHS\"},\"ADDVALUE\":{\"description\":\"The `ADDVALUE` function adds a value to a GTS, without checking for tick duplicates. The added data point is appended to the GTS.\\nThe [`SETVALUE`](/doc/SETVALUE) overrides an existing value.\\n\\nThe `ADDVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `ADDVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, for example by using [`GET`](/doc/GET)\\nwith value 0 as parameter.\\n\\nIf latitude or longitude are NaN (not a number), value has only timestamp, elevation, value.\\nIf elevation is NaN (not a number), value has only timestamp, latitude, longitude, value.\\nIf elevation is NaN and longitude or latitude are NaN, value has only timestamp, value.\\n\\nWhen adding a Geo Time Series™ or GTS Encoder value, the value will be wrapped (as when using `WRAPRAW`) and added as a binary value.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Series™\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `result` The Geo Time Series™ with the new datapoint added\\n\\n@param `elevation` Elevation or NaN\\n\\n\",\"signature\":\"gts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<STRING>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<BYTES>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<BOOLEAN>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<DOUBLE>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<LONG>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<GTSENCODER>  ADDVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<GTS>  ADDVALUE  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ADDVALUE\"},\"ADDYEARS\":{\"description\":\"Adds years to a timestamp or a tselements.\\n\\nThe `ADDYEARS` function consumes from the top of the stack a number (positive or negative) of years, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the years and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `years` The number of years to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"timestamp<LONG> timezone<STRING> years<LONG>  ADDYEARS  result<LONG>\\ntimestamp<LONG> years<LONG>  ADDYEARS  result<LONG>\\ntselements<LIST<LONG>> years<LONG>  ADDYEARS  tselementsresult<LIST<LONG>>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDYEARS\"},\"AESUNWRAP\":{\"description\":\"Unwraps a byte array with the [AES WRAP](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") and pushes back the decrypted data into an bytes array.\\n\\n`AESUNWRAP` removes the a 64bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) added by [`AESWRAP`](/doc/AESWRAP) WarpScript function\\n\\n@param `data` Encoded Byte array.\\n\\n@param `key` Byte array, 128, 192 or 256 bits key.\\n\\n@param `decoded` Decoded Byte array.\\n\\n\",\"signature\":\"key<BYTES> data<BYTES>  AESUNWRAP  decoded<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESUNWRAP\"},\"AESWRAP\":{\"description\":\"Wraps a byte array or String with the [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt) algorithm and pushes a byte array containing the encrypted data onto the stack.\\n\\n`AESWRAP` adds a 64 bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) prefix to the input in order to protect the encrypted data against AES block determinism as [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") uses a fixed Initialization Vector.\\n\\n@param `key` 128, 192 or 256 bits key to use for encryption.\\n\\n@param `string` String data to encrypt.\\n\\n@param `bytes` Byte array to encrypt.\\n\\n@param `encrypted` Encrypted result.\\n\\n\",\"signature\":\"string<STRING> key<BYTES>  AESWRAP  encrypted<BYTES>\\nbytes<BYTES> key<BYTES>  AESWRAP  encrypted<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESWRAP\"},\"AGO\":{\"description\":\"The `AGO` function is a shortcut which enables you to compute timestamps by specifying an offset from the current time.\\n\\n@param `offset` The numbers of ticks in platform time unit to subtract, truncated if floating-point.\\n\\n@param `timestamp` The computed timestamp\\n\\n\",\"signature\":\"offset<NUMBER>  AGO  timestamp<LONG>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"AGO\"},\"AND\":{\"description\":\"The `AND` operator is a synonymous for [`&&`](/doc/8XN).\\n\\nIt performs a logical **AND** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `AND` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical AND applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with AND between each common tick input values.\\n\\n\",\"signature\":\"p1<BOOLEAN> p2<BOOLEAN>  AND  result<BOOLEAN>\\nl<LIST>  AND  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  AND  gtsresult<GTS>\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"AND\"},\"APPEND\":{\"description\":\"The `APPEND` function consumes two paramters from the top of the stack and appends the LIST, MAP or GTS on top of the stack to the one just below.\\nThe augmented LIST, MAP or GTS is then pushed back on the stack.\\n\\n@param `newitems` items to append to input.\\n\\n@param `inputlist` LIST to be modified.\\n\\n@param `outputlist` The LIST that has been modified\\n\\n@param `inputmap` MAP to be modified.\\n\\n@param `outputmap` The MAP that has been modified \\n\\n@param `inputGTS` GTS to be modified.\\n\\n@param `outputGTS` The GTS that has been modified\\n\\n@param `inputset` SET to be modified.\\n\\n@param `outputset` The SET that has been modified\\n\\n\",\"signature\":\"inputlist<LIST> newitems<LIST>  APPEND  outputlist<LIST>\\ninputmap<MAP> newitems<MAP>  APPEND  outputmap<MAP>\\ninputGTS<GTS> newitems<GTS>  APPEND  outputGTS<GTS>\\ninputset<SET> newitems<SET>  APPEND  outputset<SET>\\ninputset<SET> newitems<LIST>  APPEND  outputset<SET>\\ninputlist<LIST> newitems<SET>  APPEND  outputlist<LIST>\",\"tags\":[\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPEND\"},\"APPLY\":{\"description\":\"The `APPLY` framework provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can do. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` List of resulting GTS, one per equivalence class.\\n\\n@param `op` Operation to perform.\\n\\n\",\"signature\":\"[ gts<LIST<GTS>+> labels<LIST> op<OPERATOR> ]  APPLY  result<LIST<GTS>>\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPLY\"},\"ASENCODERS\":{\"description\":\"The `ASENCODERS` function consumes a Geo Time Series™, a wrap or a raw wrap, or a list thereof and convert each one into an encoder.\\n\\n@param `gts` Geo Time Series™ to be converted.\\n\\n@param `lgts` List of Geo Time Series™ to be converted.\\n\\n@param `wrappedgts` Wrapped Geo Time Series™ to be converted.\\n\\n@param `lwrappedgts` List of wrapped Geo Time Series™ to be converted.\\n\\n@param `rawwrappedgts` Raw wrapped Geo Time Series™ to be converted.\\n\\n@param `lrawwrappedgts` List of raw wrapped Geo Time Series™ to be converted.\\n\\n@param `encoder` Encoder of the given Geo Time Series™.\\n\\n@param `lencoder` List of encoder, one for each given Geo Time Series™.\\n\\n\",\"signature\":\"gts<GTS>  ASENCODERS  encoder<GTSENCODER>\\nlgts<LIST<GTS>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\\nwrappedgts<STRING>  ASENCODERS  encoder<GTSENCODER>\\nlwrappedgts<LIST<STRING>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\\nrawwrappedgts<BYTES>  ASENCODERS  encoder<GTSENCODER>\\nlrawwrappedgts<LIST<BYTES>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\\nencoder<GTSENCODER>  ASENCODERS  encoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>>  ASENCODERS  lencoder<LIST<GTSENCODER>>\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"2.2.0\",\"OPB64name\":\"ASENCODERS\"},\"ASIN\":{\"description\":\"The `ASIN` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arcsine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arcsine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arcsine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arcsine in radians of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  ASIN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  ASIN  lresult<LIST<DOUBLE>>\\ngts<GTS>  ASIN  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASIN\"},\"ASREGS\":{\"description\":\"Replaces in a macro the uses of the given symbols by the use of registers.\\n\\nIf there are not enough registers available, replace each of the symbols from the start of the list until all registers are used.\\n\\nSince 2.6.0, the list of symbols is optional. In that case, `ASREGS` first recursively extracts all the symbols from given the macro and uses that list to do the replacement.\\n\\n@param `macro` Macro to transform.\\n\\n@param `vars` List of symbols.\\n\\n\",\"signature\":\"macro<MACRO> vars<LIST<STRING>>  ASREGS  macro<MACRO>\\nmacro<MACRO>  ASREGS  macro<MACRO>\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ASREGS\"},\"ASSERT\":{\"description\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise.\\n\\nThe `ASSERT` function consumes a **BOOLEAN** parameter from the top of the stack. If the boolean is **true** the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception.\\n\\n`ASSERT` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n\",\"signature\":\"condition<BOOLEAN>  ASSERT \",\"tags\":[\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASSERT\"},\"ASSERTMSG\":{\"description\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise and displays a message.\\n\\nThe `ASSERTMSG` function consumes a **BOOLEAN** parameter and a **STRING** parameter from the top of the stack. If the boolean is **true**, the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception with a message displaying the **STRING** parameter.\\n\\n`ASSERTMSG` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n@param `message` The exception message to display if the test fails\\n\\n\",\"signature\":\"condition<BOOLEAN> message<STRING>  ASSERTMSG \",\"tags\":[\"debug\"],\"since\":\"1.2.13\",\"OPB64name\":\"ASSERTMSG\"},\"ATAN\":{\"description\":\"The `ATAN` function consumes a floating point number between -1 et 1 from the top of the stack and pushes back its arctangent in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arctangent in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arctangent in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arctangent in radians of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  ATAN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  ATAN  lresult<LIST<DOUBLE>>\\ngts<GTS>  ATAN  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATAN\"},\"ATAN2\":{\"description\":\"ATAN2 function returns the polar angle theta (azimut) from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta). This method computes the phase theta by computing an arc tangent of y/x in the range of `] -pi  pi ]`.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `result` theta in polar coordinates\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `lresult` List of thetas in polar coordinates\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `gtsresult` Numerical GTS of thetas in polar coordinates\\n\\n\",\"signature\":\"y<NUMBER> x<NUMBER>  ATAN2  result<DOUBLE>\\ny<NUMBER> lx<LIST<NUMBER>>  ATAN2  lresult<LIST<DOUBLE>>\\nly<LIST<NUMBER>> x<NUMBER>  ATAN2  lresult<LIST<DOUBLE>>\\ny<NUMBER> gtsx<GTS>  ATAN2  gtsresult<GTS>\\ngtsy<GTS> x<NUMBER>  ATAN2  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.2.13\",\"OPB64name\":\"ATAN2\"},\"ATBUCKET\":{\"description\":\"The `ATBUCKET` function consumes a bucketized GTS from the stack, looks at its `index`-th bucket and puts on the stack a\\nlist with the timestamp, latitude, longitude, elevation and value for this bucket.\\n\\n@param `gts` Bucketized Geo Time Series™\\n\\n@param `index` Index of the bucket\\n\\n@param `result` List with the timestamp, latitude, longitude, elevation and value for the index-th bucket of the GTS\\n\\n\",\"signature\":\"gts<GTS> index<LONG>  ATBUCKET  result<LIST>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATBUCKET\"},\"ATINDEX\":{\"description\":\"The `ATINDEX` function consumes a Geo Time Series™ or a list thereof from the stack, looks at its index-th point and put on the stack a list with the timestamp, longitude,\\nlatitude, elevation and value for the `index`-th point of the GTS.\\n\\nSince 2.1, the index can be negative. In this case, the effective index is index + size of the GTS.\\n\\n@param `index` Index of the tick, truncated if floating-point.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"signature\":\"gts<GTS> index<NUMBER>  ATINDEX  data<LIST>\\nlgts<LIST<GTS>> index<NUMBER>  ATINDEX  ldata<LIST<LIST>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATINDEX\"},\"ATTICK\":{\"description\":\"The `ATTICK` function consumes a Geo Time Series™ from the stack, looks at its tick-th tick (the data point with a timestamp tick) and put on the\\nstack a list with the timestamp, latitude, longitude, elevation and value for that data point.\\n\\nIf there is no data point with tick timestamp, it returns a list with timestamp, latitude, longitude and elevation at **NaN** and value at **null**.\\n\\n@param `timestamp` Timestamp at which to take the data, if it is a floating-point value, it is truncated.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"signature\":\"gts<GTS> timestamp<LONG>  ATTICK  data<LIST>\\nlgts<LIST<GTS>> timestamp<LONG>  ATTICK  ldata<LIST<LIST>>\\ngts<GTS> timestamp<COUNTER>  ATTICK  data<LIST>\\nlgts<LIST<GTS>> timestamp<COUNTER>  ATTICK  ldata<LIST<LIST>>\\ngts<GTS> timestamp<DOUBLE>  ATTICK  data<LIST>\\nlgts<LIST<GTS>> timestamp<DOUBLE>  ATTICK  ldata<LIST<LIST>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTICK\"},\"ATTRIBUTES\":{\"description\":\"Retrieves the attributes of a Geo Time Series™.\\n\\nThe `ATTRIBUTES` function takes a **GTS** on top of the stack and push back a **MAP** including all its attributes.\\n\\nAn attribute corresponds to a tag for a specific series.\\nThe attribute system allows the user to add some information that can change in a series.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `encoder` The input Geo Time Series™ Encoder\\n\\n@param `return` The attributes MAP of the input Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  ATTRIBUTES  return<MAP>\\nencoder<GTSENCODER>  ATTRIBUTES  return<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTRIBUTES\"},\"AUTHENTICATE\":{\"description\":\"The `AUTHENTICATE` function authenticates the current stack with the **read token** on top of the stack. This function removes the token from the stack.\\n\\nInside a WarpScript, the stack could be authenticated only once. An exception is thrown when the stack is already authenticated.\\n\\nIn macros, use ISAUTHENTICATED to make sure the stack is not already authenticated.\\n\\n@param `token` Read token\\n\\n\",\"signature\":\"token<STRING>  AUTHENTICATE \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"AUTHENTICATE\"},\"B58->\":{\"description\":\"Decodes a STRING encoded in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58 encoded STRING to decode.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"signature\":\"base58<STRING>  B58->  decoded<BYTES>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsAIs\"},\"B58C->\":{\"description\":\"Decodes a STRING encoded in [Base58Check](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58Check encoded STRING to decode.\\n\\n@param `prefix` Base58Check prefix used at encoding time.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"signature\":\"base58<STRING> prefix<BYTES>  B58C->  decoded<BYTES>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsFmoy\"},\"B64->\":{\"description\":\"Decodes the [base64](http://tools.ietf.org/html/rfc4648#section-4) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"content<STRING>  B64->  result<BYTES>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoAIs\"},\"B64TOHEX\":{\"description\":\"Decodes the  [base64](http://tools.ietf.org/html/rfc4648#section-4) content on top of the stack and immediately re-encode it in hexadecimal.\\nThis enables you to convert encoded content which would not be valid UTF-8 encoding from base64 to hexadecimal. \\nAs the string are URL encoded, the symbol `+` have to be replaced by `%2B`, otherwise a space will replace the `+` in the string.\\n\\n@param `content` String to convert\\n\\n@param `result` Hexadecimal converted string\\n\\n\",\"signature\":\"content<STRING>  B64TOHEX  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"B64TOHEX\"},\"B64URL->\":{\"description\":\"Decodes the [base64url](http://tools.ietf.org/html/rfc4648#section-5) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"content<STRING>  B64URL->  result<BYTES>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoKK8BAIs\"},\"BBOX\":{\"description\":\"The `BBOX` function computes the bounding box of a Geo Time Series™ or a list thereof. It returns a list with extremas (West, South, East, North), or a list of list of extremas.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `minlat` Latitude of lower left of bounding box.\\n\\n@param `minlon` Longitude of lower left of bounding box.\\n\\n@param `maxlat` Latitude of upper right of bounding box.\\n\\n@param `maxlon` Longitude of upper right of bounding box.\\n\\n@param `extremas` List of list containing minlat, minlon, maxlat, maxlon, for every GTS in lgts.\\n\\n\",\"signature\":\"gts<GTS>  BBOX  [  minlat<DOUBLE>  minlon<DOUBLE>  maxlat<DOUBLE>  maxlon<DOUBLE>  ]\\nlgts<LIST<GTS>>  BBOX  extremas<LIST<LIST<DOUBLE>>>\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BBOX\"},\"BIN->\":{\"description\":\"The `->BIN` function decodes a binary string representation into a bytes array.\\n\\n@param `binary` The binary string representation\\n\\n@param `result` The bytes array\\n\\n\",\"signature\":\"binary<STRING>  BIN->  result<BYTES>\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"FZ_DAIs\"},\"BINTOHEX\":{\"description\":\"Converts a string representing a binary number into a string representing a hexadecimal number.\\n\\nThe `BINTOHEX` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from binary to hexadecimal.\\n\\n@param `content` The string representing a binary number\\n\\n@param `result` The string representing a hexadecimal number\\n\\n\",\"signature\":\"content<STRING>  BINTOHEX  result<STRING>\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"BINTOHEX\"},\"BITCOUNT\":{\"description\":\"Returns the logical size and the cardinality of a [BitSet](https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html).\\n\\nThe `BITCOUNT` function consumes a bitset on the top of the stack and push back its logical size and its cardinality.\\n  * The logical size is the index of the highest bit set to true plus one.\\n  * The cardinality is the number of bit set to true.\\n\\n@param `bitset` The BitSet to count\\n\\n@param `length` The logical size of the BitSet\\n\\n@param `cardinality` The number of bits set to true\\n\\n\",\"signature\":\"bitset<BITSET>  BITCOUNT  cardinality<LONG> length<LONG>\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITCOUNT\"},\"BITGET\":{\"description\":\"Returns the value of the bit with the specified index.\\n\\nThe `BITGET` function consumes a bitset and a long on the top of the stack. It returns the value of the bit with the specified index. The bit index starts at 0 from the right.\\n\\n@param `index` The bit index\\n\\n@param `bitset` The bitset\\n\\n@param `return` The value of the bit with the specified index\\n\\n\",\"signature\":\"bitset<BITSET> index<LONG>  BITGET  return<BOOLEAN>\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.5\",\"OPB64name\":\"BITGET\"},\"BITSTOBYTES\":{\"description\":\"Converts a bitset into a bytes array.\\n\\n@param `bitset` Bitset\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"bitset<BITSET>  BITSTOBYTES  result<BYTES>\",\"tags\":[\"bitset\",\"binary\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITSTOBYTES\"},\"BOOTSTRAP\":{\"description\":\"This function is executed systematically before the WarpScript stack is available for anything else. By default this function does nothing, it is equivalent \\nto [`NOOP`](/doc/NOOP).\\n\\nIf bootstrap code was specified in the Warp 10 platform configuration, for either or all of `egress`, `mobius` or `runner`, the `BOOTSTRAP` function might\\nhave been redefined and actual code could be executed.\\n\\nThis function is not meant to be used in user provided scripts.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"BOOTSTRAP\"},\"BREAK\":{\"description\":\"The `BREAK` function breaks out of the current loop. It takes no argument.\\n\\n> If used outside a loop, an error is thown\\n\\n\",\"signature\":\"\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"BREAK\"},\"BUCKETCOUNT\":{\"description\":\"The function `BUCKETCOUNT` consumes a GTS off the stack and pushes its bucketcount onto the stack.\\n\\n> Note: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Number of buckets\\n\\n\",\"signature\":\"gts<GTS>  BUCKETCOUNT  result<LONG>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETCOUNT\"},\"BUCKETIZE\":{\"description\":\"The `BUCKETIZE` framework allow to realign datapoints:\\n- A **bucket** is a time interval which spans a certain number of time units called the **bucketspan**\\n- BUCKETIZE sort the geotimeserie input, starts by computing the last bucket defined by **lastbucket**, always going backward in time.\\n- BUCKETIZE ends when there is no more ticks to compute, or when **bucketcount** is reached.\\n\\nThe **bucketizer** is a function that aggregates all the datapoints that falls into the bucket. It means their timestamp belongs to range `](bucketEnd - bucketspan);bucketEnd]`. If there is no datapoint in the bucket range, there is no aggregate output for the bucket, and `BUCKETIZE` jumps to the next non empty bucket.\\n\\n\\n###### Parameters\\n\\n| last bucket | bucket span | bucket count | |\\n|---|---|---|---|\\n| 0 | span |0 | `BUCKETIZE` will choose last bucket as multiple of the bucket span, and will adjust bucketcount to cover all the input time range. This is the most straightforward way to use `BUCKETIZE`. As last bucket is a multiple of bucket span, **results will be aligned**. |\\n| lastbucket | span | 0 | `BUCKETIZE` will adjust bucketcount to cover all the input time range. As lastbucket is fixed, **results will be aligned**. |\\n| 0 | span | count | `BUCKETIZE` will choose the GTS last tick as last bucket, and stop computation as soon as bucket count is reached. Results may not be aligned. |\\n| 0 | 0 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts + 1) / bucket count`. Results may not be aligned.|\\n| 0 | -1 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts) / (bucket count - 1)`. Results may not be aligned.|\\n\\n\\nAll the output will be bucketized. The bucket span and last bucket can be retrieved with [`BUCKETSPAN`](/doc/BUCKETSPAN) and [`BUCKETCOUNT`](/doc/BUCKETCOUNT).\\n\\nUp to bucketization, the other WarpLib functions will process the series differently. Empty buckets will be considered as values. You may need to remove the bucketized property from a GTS, with [`UNBUCKETIZE`](/doc/UNBUCKETIZE) function.\\n\\n###### Aggregators\\n\\nYou can use `BUCKETIZE` with 3 different type of aggregators:\\n- The WarpLib aggregators: they are all named **bucketizer.xxx**, you will find them in the [bucketizer section](/tags/bucketizer).\\n- A macro: for each bucket, BUCKETIZE will push a new sub Geo Time Series™ which will contain the ticks and values that falls in current bucket, then execute the macro. The macro can process the GTS, and let the aggregation result on the stack.\\n- A MACROBUCKETIZER: see [`MACROBUCKETIZER`](/doc/MACROBUCKETIZER) documentation.\\n\\n\\nIf the bucketizer argument is NULL, then BUCKETIZE do not create any new Geo Time Series™ but instead sets the lastbucket, bucketspan and bucketcount of its inputs without processing their data.\\n\\n`BUCKETIZE` output is always a list of GTS, even if the input is a single GTS.\\n\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so the first value of the geo time series is at the beginning of the first bucket.\\n\\n@param `bucketspan` Width in time units of each bucket. If `bucketspan` is 0 but `bucketcount` is set, WarpScript will compute `bucketspan` so `bucketcount` buckets cover the complete set of values from firsttick to lasttick. If this value is set to -1, the number of buckets is computed so the first tick is towards the end of the first bucket.\\n\\n@param `lastbucket` Specifies the timestamp in time units since the Unix Epoch of the end of the most recent bucket. If you set this value to 0, this timestamp will be computed automatically so it covers the most recent value of the geo time series and falls on a `bucketspan` boundary.\\n\\n@param `gts` One or more Geo Time Series™\\n\\n@param `gtsList` One or more lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS\\n\\n\",\"signature\":\"[ gts<GTS+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\\n[ gts<GTS+> macro<MACRO> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>+> macro<MACRO> lastbucket<LONG> bucketspan<LONG> bucketcount<LONG> ]  BUCKETIZE  result<LIST<GTS>>\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETIZE\"},\"BUCKETIZE.CALENDAR\":{\"description\":\"Creates bucketized Geo Time Series with buckets that span a calendar duration that can be irregular (e.g. taking into account leap years and daylight saving time).\\n\\nInstead of using a bucketspan like the BUCKETIZE framework, it uses a bucketduration: a STRING in [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format, as `PyYmMwWdDThHmMsS` similarly to that of ADDDURATION function. However, complex bucketdurations that can be non-positive from some ticks are not allowed.\\n\\nIn the result, the tick of each bucket is its index, which is equal to the number of buckets that are ended since Unix Epoch. In particular, the tick of the bucket that contains Unix Epoch is always 0. The resulting GTS is considered bucketized for further operations. Then, the function UNBUCKETIZE.CALENDAR can be used to replace bucket indices with their timestamp end boundaries.\\n\\nThis function answers the limitation of BUCKETIZE to regular buckets. For instance, BUCKETIZE.CALENDAR can be used with a duration of one month (`P1M`) or one year (`P1Y`).\\n\\nThe delta between Unix Epoch and the first timestamp of bucket 0th is called the bucketoffset. The bucketoffset, bucketduration and buckettimezone are stored in the attributes.\\n\\nSee also the macros: [@senx/cal/BUCKETIZE.bymonth](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.bymonth.mc2), [@senx/cal/BUCKETIZE.byyear](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.byyear.mc2).\\n\\n\\n@param `timezone` The timezone to consider. Default to UTC\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so every value of the GTS falls in a bucket.\\n\\n@param `bucketduration` Width in ISO 8601 duration format of each bucket.\\n\\n@param `lastbucket` Specifies the timestamp in platform time units of the end boundary of the most recent bucket. For coherency with BUCKETIZE, this value can not be set to 0.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS in the new time referential\\n\\n\",\"signature\":\"[ gts<GTS+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\\n[ gts<GTS+> macro<MACRO> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\\n[ gts<GTS+> bucketizer<AGGREGATOR> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> timezone<STRING> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\\n[ gts<GTS+> macro<MACRO> lastbucket<LONG> bucketduration<STRING> bucketcount<LONG> timezone<STRING> ]  BUCKETIZE.CALENDAR  result<LIST<GTS>>\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"BUCKETIZE.CALENDAR\"},\"BUCKETSPAN\":{\"description\":\"The function `BUCKETSPAN` consumes a GTS off the stack and pushes its bucketspan onto the stack.\\n\\n> when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Bucketspan\\n\\n\",\"signature\":\"gts<GTS>  BUCKETSPAN  result<LONG>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETSPAN\"},\"BYTES->\":{\"description\":\"Converts a bytes array into a string with given a charset and put the string on top of the stack.\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\n\\n@param `charset` Charset to use\\n\\n@param `bytes` Bytes array to convert\\n\\n@param `result` String converted byte array\\n\\n\",\"signature\":\"bytes<BYTES> charset<STRING>  BYTES->  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"F__JGKBhEV\"},\"BYTESTOBITS\":{\"description\":\"Converts a byte array into a bitset.\\n\\n@param `bytesarray` Bytes array\\n\\n@param `result` Bitset\\n\\n\",\"signature\":\"bytesarray<BYTES>  BYTESTOBITS  result<BITSET>\",\"tags\":[\"bitset\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BYTESTOBITS\"},\"CALL\":{\"description\":\"The `CALL` function invokes the external program whose path (relative to the `warpscript.call.directory` directory) is on top of the stack. The calling convention will pass to the external\\nprogram the **STRING** object below the path on a line by itself on standard input after having URL encoded the **STRING**. The invoked\\nprogram is expected to return a URL encoded **STRING** object if invocation was successful, or a string starting with a space and followed by a URL encoded error message if an error was encoutered.\\n\\nIf you need to pass complex structures to the invoked program, you can use functions such as [`->JSON`](/doc/AIt9JoxD), [`->PICKLE`](/doc/AItFHJCAI3J)\\nand [`->B64`](/doc/AIt1CYF) to encode the input prior to the invocation.\\n\\nExamples of callable programs are provided in [shell](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/sh/callable.sh)\\nand [python](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/python/callable.py).\\n\\nThe program must be stored in the directory described by the `warpscript.call.directory` configuration parameter.\\n\\nThe program must first output on the stdout the number of concurrent thread allowed.\\n\\nExample:\\n\\n```bash\\n#!/bin/bash\\necho 5 # 5 threads allowed\\nurldecode() {\\n  # urldecode <string>\\n  local url_encoded=\\\"${1//+/ }\\\"\\n  printf '%b' \\\"${url_encoded//%/\\\\\\\\x}\\\"\\n}\\nwhile true\\n\\ndo\\n  read line\\n  line=`urldecode \\\"${line}\\\"` # read the params given by the WarpScript\\n  echo $line # Will be pushed on the stack\\ndone\\n```\\n\\n@param `program` Program path\\n\\n@param `params` URL encoded input\\n\\n@param `result` URL encoded output\\n\\n\",\"signature\":\"params<STRING> program<STRING>  CALL  result<STRING>\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"CALL\"},\"CAPADD\":{\"description\":\"The `CAPADD` function extracts capabilities from a `READ` or `WRITE` token and adds them to the current execution environment.  All the capabilities contained in the token will be added except those which are already set in the WarpScript execution environment.\\n\\n@param `token` Token whose capabilities must be extracted and added to the execution environment.\\n\\n\",\"signature\":\"token<STRING>  CAPADD \",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPADD\"},\"CAPCHECK\":{\"description\":\"Checks if a capability is set in the current execution environment.\\n\\n@param `capability` Name of the capability to check.\\n\\n@param `set` Boolean indicating whether or not `capability` is set.\\n\\n\",\"signature\":\"capability<STRING>  CAPCHECK  set<BOOLEAN>\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPCHECK\"},\"CAPDEL\":{\"description\":\"Removes a capability or list of capabilities from the current execution environment. This function can prove handy when willing to add capabilities from a token to an environment which already has certain capabilities set which would prevent the new values to be taken into account.\\n\\n@param `capability` Name of the capability to remove.\\n\\n@param `capabilities` List of names of capabilities to remove. If the list is empty, all capabilities will be removed.\\n\\n\",\"signature\":\"capability<STRING>  CAPDEL \\ncapabilities<LIST<STRING>>  CAPDEL \",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPDEL\"},\"CAPGET\":{\"description\":\"Retrieves values associated with capabilities.\\nWhen the capability was not [added](/doc/CAPADD), returns NULL.\\n\\n@param `capability` Name of the capability to retrieve.\\n\\n@param `capabilities` List of names of capabilities to retrieve. If the list is empty, all capabilities will be retrieved.\\n\\n@param `value` Value associated with `capability`, or NULL when the capability was not added.\\n\\n@param `values` Map of capability name to associated value.\\n\\n\",\"signature\":\"capability<STRING>  CAPGET  value<STRING>\\ncapabilities<LIST<STRING>>  CAPGET  values<MAP>\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPGET\"},\"CBRT\":{\"description\":\"The `CBRT` function consumes a numeric parameter from the top of the stack and pushes back its cubic root.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Cubic root of the given value.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of cubic root of each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cubic root of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  CBRT  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  CBRT  lresult<LIST<DOUBLE>>\\ngts<GTS>  CBRT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CBRT\"},\"CEIL\":{\"description\":\"The `CEIL` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number bigger than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-up value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-up values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-up of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  CEIL  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  CEIL  lresult<LIST<DOUBLE>>\\ngts<GTS>  CEIL  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEIL\"},\"CELL->\":{\"description\":\"The `CELL->` function extracts informations from a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\nThe informations returned are stored in a `MAP` under the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `row` | A byte array (`BYTES`) containing the row key. |\\n| `cf` | A byte array containing the column family. |\\n| `cq` | A byte array containing the column qualifier. |\\n| `ts` | The timestamp associated with the `Cell`. |\\n| `value` | A byte array containing the value of the `Cell`. |\\n| `tags` | A list of `MAP` instances, one per tag, with `type` (`LONG`) and `value` (`BYTES`) elements. |\\n\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `details` A `MAP` containing the various fields extracted from the `Cell` instance. See above for available informations.\\n\\n\",\"signature\":\"cell<CELL>  CELL->  details<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"FoKBI1oy\"},\"CELLCF\":{\"description\":\"The `CELLCF` function returns the column family associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cf` Byte array containing the column family of the `Cell`.\\n\\n\",\"signature\":\"cell<CELL>  CELLCF  cf<BYTES>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCF\"},\"CELLCQ\":{\"description\":\"The `CELLCQ` function returns the column qualfier associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cq` Byte array containing the column qualifier of the `Cell`.\\n\\n\",\"signature\":\"cell<CELL>  CELLCQ  cq<BYTES>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCQ\"},\"CELLROW\":{\"description\":\"The `CELLROW` function returns the row key associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `row` Byte array containing the row key of the `Cell`.\\n\\n\",\"signature\":\"cell<CELL>  CELLROW  row<BYTES>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLROW\"},\"CELLTAGS\":{\"description\":\"The `CELLTAGS` function returns the tags associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `tags` List of `MAP` instances, one per tag. Each map contains an entry `type` with the type of the tag (`LONG`) and an entry `value` with the associated value (`BYTES`).\\n\\n\",\"signature\":\"cell<CELL>  CELLTAGS  tags<LIST<MAP>>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTAGS\"},\"CELLTS\":{\"description\":\"The `CELLTS` function returns the timestamp associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `ts` Timestamp of the `Cell`.\\n\\n\",\"signature\":\"cell<CELL>  CELLTS  ts<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTS\"},\"CELLVALUE\":{\"description\":\"The `CELLVALUE` function returns the value associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `value` Byte array containing the value of the `Cell`.\\n\\n\",\"signature\":\"cell<CELL>  CELLVALUE  value<BYTES>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLVALUE\"},\"CEVAL\":{\"description\":\"The `CEVAL` function allows you to execute macros in a concurrent way on a pool of threads.\\n\\nAll macros will be executed with the maximum parallelism level specified. Each macro is executed on its own stack. The context of the global stack is\\nreplicated to each of those stacks so each macro will have access to the existing symbols and the redefined functions. Any modification to the symbol\\ntable or redifined functions done in a concurrent macro will not be reflected in the global stack afterwards.\\n\\nEach macro is invoked with its index in the list on top of the stack.\\n\\nUpon termination of each macro, the content of their respective stacks is put into a list, with the top of the stack at index 0, and those lists are\\nmerged into a global list which is then pushed onto the stack. The resulting list for each macro appears at the index of the macro in the original macro list.\\n\\nBeware that no synchronization is implicitely performed between the concurrent macros. If you require synchronization between macros, for example because\\nyou are modifying a list accessible by all macros via a symbol, you must use the [`SYNC`](/doc/SYNC) function.\\n\\nIf one of the macros fail, an attempt to interrupt the other running macros will be done and the failure will be propagated to the other macros. For the\\ntime being, a call to [`STOP`](/doc/STOP) or [`RETURN`](/doc/RETURN) in one of the macros will stop all of them.\\n\\nUse of `CEVAL` is not available from within a macro currently executing in a `CEVAL` call.\\n\\nThe `CEVAL` function is part of the `io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```properties\\n// Enable CEVAL and SYNC functions\\nwarpscript.extension.concurrent = io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension\\n```\\n\\n@param `poolSize` Parallelism level\\n\\n@param `macros` List of macros\\n\\n@param `result` Result list\\n\\n\",\"signature\":\"macros<LIST> poolSize<LONG>  CEVAL  result<LIST>\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEVAL\"},\"CHECKMACRO\":{\"description\":\"The `CHECKMACRO` function checks if a macro is defined and aborts the execution when it encounters an undefined macro.\\n\\n@param `name` The macro name\\n\\n\",\"signature\":\"name<STRING>  CHECKMACRO \",\"tags\":[\"logic\",\"control\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKMACRO\"},\"CHECKSHAPE\":{\"description\":\"Return a BOOLEAN indicating whether an input list and its nested lists sizes are coherent together to form a tensor (or multidimensional array).\\n\\n@param `list` The input list.\\n\\n@param `result` true or false.\\n\\n\",\"signature\":\"list<LIST>  CHECKSHAPE  result<LIST>\\n{ list<LIST>  } CHECKSHAPE  result<LIST>\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKSHAPE\"},\"CHRONOEND\":{\"description\":\"The `CHRONOEND` function ends a stopwatch with the given name previously started with [`CHRONOSTART`](/doc/CHRONOSTART). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\nIt is a good practice to put `CHRONOEND` in the finally clause of a [`TRY`](/doc/TRY) for the timing to work even if exceptions are thrown.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"signature\":\"name<STRING>  CHRONOEND \",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOEND\"},\"CHRONOSTART\":{\"description\":\"The `CHRONOSTART` function starts a stopwatch with the given name. To stop the stopwatch, call [`CHRONOEND`](/doc/CHRONOEND). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"signature\":\"name<STRING>  CHRONOSTART \",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTART\"},\"CHRONOSTATS\":{\"description\":\"The `CHRONOSTATS` function \\n\\n@param `stats` A map with stopwatches names as keys and maps as values. These maps have two keys, `total_calls` and `total_time`. The former gives the number of calls to [`CHRONOSTART`](/doc/CHRONOSTART) and the latter gives the cumulative time between [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND) in **nanoseconds**.\\n\\n\",\"signature\":\" CHRONOSTATS  stats<MAP>\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTATS\"},\"CHUNK\":{\"description\":\"The `CHUNK` is used to split a Geo Time Series™ into partial GTS. The split operation is controlled by multiple parameters.\\nThe series will be splitted in chunks, each chunks will form a new GTS, with a label value corresponding to its first tick.\\n\\n@param `keepempty` If true empty chunks are kept\\n\\n@param `chunklabel` The label name of the label added by the split operation (with a value corresponding to the first tick of the chunk).\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` An overlap duration (in time units) between chunks, this is useful when chunking a GTS to apply an algorithm which operates on a sliding window.\\n\\n@param `chunkwidth` The width in time units of each chunk.\\n\\n@param `lastchunkend` The end timestamp of the most recent split to consider.\\n\\n@param `gts` A single GTS instance.\\n\\n@param `gtsList` A GTS list to split, each GTS will be splitted individually.\\n\\n@param `encoder` A single GTS Encoder instance.\\n\\n@param `lEncoder` A GTS Encoder list to split, each GTS Encoder will be splitted individually.\\n\\n@param `result` GTS Chunks, a list formed with its partial GTS.\\n\\n@param `resultEncoders` GTS Encoders Chunks, a list formed with its partial GTS Encoders.\\n\\n\",\"signature\":\"gts<GTS> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  result<LIST<GTS>>\\ngtsList<LIST<GTS>> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  result<LIST<GTS>>\\nencoder<GTSENCODER> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  resultEncoders<LIST<GTSENCODER>>\\nlEncoder<LIST<GTSENCODER>> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNK  resultEncoders<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CHUNK\"},\"CHUNKENCODER\":{\"description\":\"The `CHUNKENCODER` function is used to split a [GTSEncoder](/doc/NEWENCODER) into partial GTSEncoder. The user defines some parameters that will \\nbe applied to the split operation. The series will be splitted in chunks, each chunks will form a new GTSEncoder, with a label value \\ncorresponding to its first tick.\\n\\nDeprecated since 2.1, use CHUNK instead which behaves the same.\\n\\n@param `keepempty` If true empty chunk are kept\\n\\n@param `chunklabel` The label name of the label added by this split operation (add a value corresponding to the first tick of the chunk). Could be a regular expression.\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` A time overlap for each chunks in time units.\\n\\n@param `chunkwidth` The width in time unit of each chunks in time units.\\n\\n@param `lastchunkend` The split operation end when it encounters this timestamp.\\n\\n@param `GTSEncoder` A single GTSEncoder \\n\\n@param `GTSEncoderList` A GTSEncoder list to split, each GTSEncoder will be splitted individually.\\n\\n@param `result` GTSEncoder Chunks, a list formed with its partial GTSEncoder\\n\\n\",\"signature\":\"GTSEncoder<GTSENCODER> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNKENCODER  result<LIST<GTSENCODER>>\\nGTSEncoderList<LIST<GTSENCODER>> lastchunkend<LONG> chunkwidth<LONG> chunkoverlap<LONG> chunkcount<LONG> chunklabel<STRING> keepempty<BOOLEAN>  CHUNKENCODER  result<LIST<LIST<GTSENCODER>>>\",\"tags\":[\"encoder\"],\"since\":\"1.2.9\",\"OPB64name\":\"CHUNKENCODER\"},\"CLEAR\":{\"description\":\"The `CLEAR` function empties the stack.\\n\\n@param `input` all the input on the stack will be erased from the stack.\\n\\n\",\"signature\":\"input<ANY*>  CLEAR \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEAR\"},\"CLEARDEFS\":{\"description\":\"The `CLEARDEFS` function allows you to clear all [redefined WarpScript functions](/doc/DEF).\\n\\nBy default, all redefined WarpScript function, will not be available anymore. Set the `warpscript.def.unshadow` \\nconfiguration property to change this behaviour.\\n\\nThis configuration parameter determines if undefining a function (via NULL 'XXX' DEF) will unshadow the original statement \\nthus making it available again or if it will replace it with a function that will fail with a message saying the function is undefined.\\nThe safest behavior is to leave this undefined or set to **false**.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARDEFS\"},\"CLEARREGS\":{\"description\":\"Clears all registers, setting their current value to `NULL`.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"signature\":\" CLEARREGS  value<ANY>\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CLEARREGS\"},\"CLEARSYMBOLS\":{\"description\":\"The `CLEARSYMBOLS` function clears all symbols defined with the function [`STORE`](/doc/STORE).\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARSYMBOLS\"},\"CLEARTOMARK\":{\"description\":\"Removes elements from the stack up to and including the first mark encountered.\\n\\n@param `inputs` all the inputs references on the stack will be erased\\n\\n@param `mark` the mark will also be erased\\n\\n\",\"signature\":\"mark<MARK> inputs<ANY*>  CLEARTOMARK \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARTOMARK\"},\"CLIP\":{\"description\":\"The `CLIP` function clips a Geo Time Series™, encoders or list thereof according to a series of limits. The limits are lists of pair containing the lower and upper \\ntimestamps used to clip. Each pair will generate a clipped GTS or encoder for each instance.\\n\\n@param `bounds` List of timestamp pairs. Each pair is a list of LONG.\\n\\n@param `gts` GTS to clip\\n\\n@param `lgts` List of GTSs to clip\\n\\n@param `encoder` Emcoder to clip\\n\\n@param `lencoder` List of encoders to clip\\n\\n@param `result` List of clipped GTS\\n\\n\",\"signature\":\"gts<GTS> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<GTS>>\\nlgts<LIST<GTS>> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<LIST<GTS>>>\\nencoder<GTSENCODER> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<GTSENCODER>>\\nlencoder<LIST<GTSENCODER>> bounds<LIST<LIST<LONG>>>  CLIP  result<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"1.2.0\",\"OPB64name\":\"CLIP\"},\"CLONE\":{\"description\":\"The `CLONE` function does a shallow copy of a given Geo Time Series™, List, Map or Vector. Since 2.1.1 it can also clone Encoders.\\n\\nAs it makes a shallow copy, be careful when using CLONE on a List of Geo Time Series™ like those generated by the use of [`FETCH`](/doc/FETCH). Modifying a Geo Time Series™ in any of those list will alter the matching Geo Time Series™ in the other List.\\nIf you want to use `CLONE` after a [`FETCH`](/doc/FETCH), you will need to extract the Geo Time Series™ from the list, for example by using [`LIST->`](/doc/I3_IK1oy), [`GET`](/doc/GET) or [`LMAP`](/doc/LMAP).\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `list` The List to clone\\n\\n@param `map` The Map to clone\\n\\n@param `set` The Set to clone\\n\\n@param `vector` The Vector to clone\\n\\n@param `encoder` The Encoder to clone\\n\\n@param `clone` The cloned Geo Time Series™, List, Map, Vector or Encoder\\n\\n@param `original` The original Geo Time Series™, List, Map, Vector or Encoder\\n\\n\",\"signature\":\"gts<GTS>  CLONE  original<GTS> clone<GTS>\\nlist<LIST>  CLONE  original<LIST> clone<LIST>\\nmap<MAP>  CLONE  original<MAP> clone<MAP>\\nset<SET>  CLONE  original<SET> clone<SET>\\nvector<VECTOR>  CLONE  original<VECTOR> clone<VECTOR>\\nencoder<GTSENCODER>  CLONE  original<GTSENCODER> clone<GTSENCODER>\",\"tags\":[\"gts\",\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONE\"},\"CLONEEMPTY\":{\"description\":\"Clones a Geo Time Series™, an Encoder or all the instances in a list of Geo Time Series™ or an Encoder, keeping only the metadata and not the values.\\n\\nThe `CLONEEMPTY` function takes as parameter a Geo Time Series™, an Encoder or a list thereof. It creates an empty clone of the input with only his metadata. The cloned metadata are:\\n * Classname\\n * Labels\\n * Attributes\\n * Lastbucket, for Geo Time Series™ only\\n * Bucketspan, for Geo Time Series™ only\\n * Bucketcount, for Geo Time Series™ only\\n * Base timestamp, for Encoders only\\n * Wrapping key, for Encoders only\\n\\nThe input parameter is consumed and the clone or list of clones is left on the stack.\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `gtsList` The list of Geo Time Series™ to clone\\n\\n@param `result` The cloned Geo Time Series™\\n\\n@param `resultList` The cloned list of Geo Time Series™\\n\\n@param `encoder` The encoder to clone\\n\\n@param `encoderList` The list of encoder to clone\\n\\n@param `encoderResult` The cloned encoder\\n\\n@param `encoderResultList` The cloned list of encoders\\n\\n\",\"signature\":\"gts<GTS>  CLONEEMPTY  result<GTS>\\ngtsList<LIST<GTS>>  CLONEEMPTY  resultList<LIST<GTS>>\\nencoder<GTSENCODER>  CLONEEMPTY  encoderResult<GTSENCODER>\\nencoderList<LIST<GTSENCODER>>  CLONEEMPTY  encoderResultList<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEEMPTY\"},\"CLONEREVERSE\":{\"description\":\"The function CLONEREVERSE clone the input and reverses the order of the elements. \\nOutput is a reference to a new object.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n@param `input` reference of the list or string to reverse.\\n\\n@param `output` reference to a new reversed list or string or byte array.\\n\\n\",\"signature\":\"input<LIST>  CLONEREVERSE  output<LIST>\\ninput<STRING>  CLONEREVERSE  output<STRING>\\ninput<BYTES>  CLONEREVERSE  output<BYTES>\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEREVERSE\"},\"COMMONTICKS\":{\"description\":\"Take a list of Geo Time Series™ and output A GTS list with only the set of ticks they have in common compared by timestamp.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with common ticks\\n\\n\",\"signature\":\"gtsList<LIST<GTS>>  COMMONTICKS  result<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMMONTICKS\"},\"COMPACT\":{\"description\":\"The `COMPACT` function produces GTS with fewer values, by removing measurements which have the same value, location and elevation as the previous one.\\n\\nIt expects a Geo Time Series™ or a **LIST** of GTS as parameter.\\n\\nThe first tick will be kept, then ticks with value or position change will be kept. The last tick from the original GTS will be copied, in order to keep the same LASTTICK.\\n\\n@param `gts` A GTS to compact\\n\\n@param `gtsList` A GTS list to compact\\n\\n@param `result` A compacted GTS\\n\\n@param `resultList` A compacted GTS list\\n\\n\",\"signature\":\"gts<GTS>  COMPACT  result<GTS>\\ngtsList<LIST<GTS>>  COMPACT  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMPACT\"},\"CONTAINS\":{\"description\":\"The `CONTAINS` function checks if the element on top of the stack is contained by the list on second position. A boolean is pushed on the stack.\\n\\nIf the parameters are two STRINGs, `CONTAINS` checks if the second STRING is contained in the first one, leaving a boolean on the stack. This latter usage is available since revision 2.1.0.\\n\\n@param `item` Depending on list construction, could be a number, a string, a boolean, NULL, a GTS...\\n\\n@param `presence` true if inputlist contains the item. false otherwise or if inputlist is empty.\\n\\n@param `list` reference to the LIST to search.\\n\\n@param `set` reference to the SET to search.\\n\\n@param `str` STRING in which to find `substr`.\\n\\n@param `substr` STRING to find in `str`.\\n\\n\",\"signature\":\"list<LIST> item<ANY>  CONTAINS  list<LIST> presence<BOOLEAN>\\nset<SET> item<ANY>  CONTAINS  set<LIST> presence<BOOLEAN>\\nstr<STRING> substr<STRING>  CONTAINS  presence<BOOLEAN>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINS\"},\"CONTAINSKEY\":{\"description\":\"The `CONTAINSKEY` function checks if the key element on top of the stack is a key \\nof the map on second position. \\n\\nThe key is consumed, and a boolean is pushed on the stack.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this key. Do not trust presence if key is NULL.\\n\\n\",\"signature\":\"inputmap<MAP> key<ANY>  CONTAINSKEY  outputmap<MAP> presence<BOOLEAN>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSKEY\"},\"CONTAINSVALUE\":{\"description\":\"The `CONTAINSVALUE` function checks if the value element on top of the stack is a value \\nof the map on second position. \\n\\nThe value is consumed, and a boolean is pushed on the stack.\\n\\n@param `value` Depending on map construction, could be a number, a string, a boolean, NULL.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this value in at least one pair of its key-value.\\n\\n\",\"signature\":\"inputmap<MAP> value<ANY>  CONTAINSVALUE  outputmap<MAP> presence<BOOLEAN>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSVALUE\"},\"CONTINUE\":{\"description\":\"Immediately stop executing the current iteration of an ongoing loop and start the next one.\\n\\n\",\"signature\":\"\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTINUE\"},\"COPYGEO\":{\"description\":\"The `COPYGEO` function forces the location elements of a GTS onto others. `COPYGEO` expects two parameters on the stack.\\nFirst input is GTS or a gts list: those series(s) will have their location overwritten by the one of the second GTS parameter. Geo information will be copied only if they are present in the second paramaters on the same tick otherwise it keep the existing location. See [`COMMONTICKS`](/doc/COMMONTICKS) to keep only commonticks before calling `COPYGEO`.\\n\\n@param `gts` A GTS\\n\\n@param `gtsList` A list of GTS\\n\\n@param `geogts` A GTS with the geo information you want to copy to other (list of) gts.\\n\\n@param `result` A GTS with the geo information of the geogts input\\n\\n@param `resultList` A list of GTS with the geo information of the geogts input\\n\\n\",\"signature\":\"gts<GTS> geogts<GTS>  COPYGEO  result<GTS>\\ngtsList<LIST<GTS>> geogts<GTS>  COPYGEO  resultList<LIST<GTS>>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYGEO\"},\"COPYSIGN\":{\"description\":\"The `COPYSIGN` function copies the sign of a number on another one and pushes back the value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `p1` Numerical value on which sign is applied\\n\\n@param `p2` Numerical value from which sign is extracted\\n\\n@param `list1` List of numerical values on which sign is applied\\n\\n@param `list2` List of numerical values from which sign is extracted\\n\\n@param `gts1` Numerical GTS on which sign is applied\\n\\n@param `gts2` Numerical GTS from which sign is extracted\\n\\n@param `result` Value of p1 with the sign of p2 s a DOUBLE\\n\\n@param `lresult` List of results\\n\\n@param `gtsresult` Numerical GTS of results\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  COPYSIGN  result<DOUBLE>\\np1<NUMBER> list2<LIST<NUMBER>>  COPYSIGN  lresult<LIST<DOUBLE>>\\nlist1<LIST<NUMBER>> p2<NUMBER>  COPYSIGN  lresult<LIST<DOUBLE>>\\np1<NUMBER> gts2<GTS>  COPYSIGN  gtsresult<GTS>\\ngts1<GTS> p2<NUMBER>  COPYSIGN  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYSIGN\"},\"CORRELATE\":{\"description\":\"The `CORRELATE` function allows you to compute correlation between one base Geo Time Series™ and a set of others. \\nBy putting the base GTS in the set of others, cross correlation can be computed.\\n\\n@param `baseGTS` The base Geo Time Series\\n\\n@param `gtsList` A list of Geo Time Series against which to compute the correlation\\n\\n@param `timeOffsets` A list of time offsets for which the correlation will be computed (expressed in time units of the Warp instance)\\n\\n@param `result` A list of synthetic Geo Time Series™ whose timestamps are the offsets from the initial offset list and the values are the computed correlations. There is one GTS per GTS in the list at TOP-1.\\n\\n\",\"signature\":\"baseGTS<GTS> gtsList<LIST> timeOffsets<LIST>  CORRELATE  result<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CORRELATE\"},\"COS\":{\"description\":\"The `COS` function consumes a floating point number from the top of the stack and pushes back its cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Cosine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cosine of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  COS  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  COS  lresult<LIST<DOUBLE>>\\ngts<GTS>  COS  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COS\"},\"COSH\":{\"description\":\"The `COSH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic cosine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic cosine of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  COSH  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  COSH  lresult<LIST<DOUBLE>>\\ngts<GTS>  COSH  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COSH\"},\"COUNTER\":{\"description\":\"The `COUNTER` function pushes a counter (AtomicLong) initialized with the value 0 onto the stack.\\n\\nThis atomic counter can be safely shared in multiple concurrent macros (see [`CEVAL`](/doc/CEVAL)).\\n\\n@param `counter` Counter instance.\\n\\n\",\"signature\":\" COUNTER  counter<COUNTER>\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTER\"},\"COUNTERDELTA\":{\"description\":\"The `COUNTERDELTA` function increments a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `increment` Counter increment.\\n\\n\",\"signature\":\"counter<COUNTER> increment<LONG>  COUNTERDELTA  counter<COUNTER>\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERDELTA\"},\"COUNTERSET\":{\"description\":\"The `COUNTERSET` function set the value of a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `value` Counter value.\\n\\n\",\"signature\":\"counter<COUNTER> value<LONG>  COUNTERSET  counter<COUNTER>\",\"tags\":[\"counters\"],\"since\":\"1.2.22\",\"OPB64name\":\"COUNTERSET\"},\"COUNTERVALUE\":{\"description\":\"The `COUNTERVALUE` function pushes the counter value onto the stack.\\n\\n@param `counter` The counter instance.\\n\\n@param `value` The value of the counter.\\n\\n\",\"signature\":\"counter<COUNTER>  COUNTERVALUE  value<LONG>\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERVALUE\"},\"COUNTTOMARK\":{\"description\":\"Counts the number of elements on the stack up to but excluding the first mark encountered. Neither the mark nor the\\nelements on top of it are removed from the stack.\\n\\n@param `result` Stack depth until `MARK`\\n\\n\",\"signature\":\" COUNTTOMARK  result<LONG>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTTOMARK\"},\"CPOPR\":{\"description\":\"Pops a value from the top of the stack and stores it into the designated register if the register is empty (*i.e.* has `NULL` as its current value).\\n\\nThe `CPOPR` function is really a family of functions named `CPOPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"signature\":\"value<ANY>  CPOPR \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CPOPR\"},\"CPROB\":{\"description\":\"The function `CPROB` generates a new Geo Time Series™ from an input Geo Time Series™ by computing a conditional probability.\\n\\nThe function expects a **STRING** separator on top of the stack and expects the input Geo Time Series™ to have \\nvalues of the form given1< SEP >given2< SEP >....< SEP >event. It will then emit P(event|given1,given2,...).\\n\\nIf the separator is **NULL**, `CPROB` behaves like [`PROB`](/doc/PROB).\\n\\n@param `separator` Value separator\\n\\n@param `gts` Geo Time Series™\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `lresult` List of Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> separator<STRING>  CPROB  result<GTS>\\nlgts<LIST<GTS>> separator<STRING>  CPROB  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.6\",\"OPB64name\":\"CPROB\"},\"CROP\":{\"description\":\"The `CROP` function works on bucketized Geo Time Series™ instances, it transforms a GTS into another one whose bucketcount, last bucket parameters span the smallest interval with actual values. Bucket span remains the same.\\n\\nWhen called on a non bucketized GTS instance, `CROP` simply clones it.\\n\\nThis function expects a list of GTS instances on the top of the stack.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `resultList` A list of cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n\",\"signature\":\"gts<GTS>  CROP  result<GTS>\\ngtsList<LIST<GTS>>  CROP  resultList<LIST<GTS>>\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"CROP\"},\"CSTORE\":{\"description\":\"The `CSTORE` function stores a value in a symbol or a register only if that symbol or register is not yet defined. The name of this function stands for Conditional STORE.\\n\\n@param `symbol` Name of symbol under which to store `value`.\\n\\n@param `register` Number of the register under which to store `value`.\\n\\n@param `value` Value to store unde `symbol`.\\n\\n\",\"signature\":\"value<ANY> symbol<STRING>  CSTORE \\nvalue<ANY> register<LONG>  CSTORE \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CSTORE\"},\"CUDF\":{\"description\":\"The `CUDF` function invokes a User Defined Function from a Jar as [`UDF`](/doc/UDF) but reuses a cached instance of the function.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"signature\":\"class<STRING>  CUDF \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CUDF\"},\"DEBUGOFF\":{\"description\":\"Turns off stack debugging which was turned on by [`DEBUGON`](/doc/DEBUGON) or [`NDEBUGON`](/doc/NDEBUGON).\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGOFF\"},\"DEBUGON\":{\"description\":\"Turns on stack debugging which returns the stack content in case of error. Stack debugging is off by default.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGON\"},\"DECREMENTEXACT\":{\"description\":\"The `DECREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value decremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be decremented by one\\n\\n@param `result` The decremented value\\n\\n@param `lvalue` List of values to be decremented by one\\n\\n@param `lresult` List of decremented values\\n\\n@param `gts` GTS whose values are to be decremented by one\\n\\n@param `gtsresult` GTS of decremented values\\n\\n\",\"signature\":\"value<NUMBER>  DECREMENTEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  DECREMENTEXACT  lresult<LIST<LONG>>\\ngts<GTS>  DECREMENTEXACT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"DECREMENTEXACT\"},\"DEDUP\":{\"description\":\"Removes duplicate ticks.\\n\\nThe `DEDUP` function consumes a Geo Time Series™ or a **LIST** thereof from the top of the stack and pushes back the Geo Time Series™ with deduplicated ticks.\\n\\nSince the 2.7.0 version, this function can be given an optional mapper or macro to combine the duplicate data points.\\n\\n@param `gts` The Geo Time Series™ to deduplicate\\n\\n@param `result` The Geo Time Series™ with deduplicated ticks\\n\\n@param `lgts` The list of Geo Time Series™ to deduplicate\\n\\n@param `lresult` The list of Geo Time Series™ with deduplicated ticks\\n\\n@param `mapper` Mapper used to aggregate duplicate values\\n\\n@param `macro` Macro used to aggregate duplicate values given as a GTS\\n\\n\",\"signature\":\"gts<GTS>  DEDUP  result<GTS>\\ngts<GTS> mapper<AGGREGATOR>  DEDUP  lresult<GTS>\\ngts<GTS> macro<MACRO>  DEDUP  lresult<GTS>\\nlgts<LIST<GTS>>  DEDUP  lresult<LIST<GTS>>\\nlgts<LIST<GTS>> mapper<AGGREGATOR>  DEDUP  lresult<LIST<GTS>>\\nlgts<LIST<GTS>> macro<MACRO>  DEDUP  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEDUP\"},\"DEF\":{\"description\":\"The `DEF` function allows you to define new WarpScript functions or redefine existing ones for the duration of your script execution.\\n\\nThe function expects on the stack a macro which will be used as the content of the newly defined function, and a name under which to define the new function.\\n\\nWhen redefining a function, if the function being redefined is used within the macro, the code which will be executed is the current one, \\nas the binding of function to code is done at the time when the macro is defined and not when it is executed.\\n\\nYou may therefore add limits to the use of an existing function by rewrapping it in a macro which will be associated with the original function name.\\n\\nTo remove redefined functions see [`CLEARDEFS`](/doc/CLEARDEFS).\\n\\n@param `name` New function name\\n\\n@param `newDef` Macro which will be used as the content of the newly defined function\\n\\n\",\"signature\":\"newDef<MACRO> name<STRING>  DEF \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEF\"},\"DEFINED\":{\"description\":\"The `DEFINED` function checks whether or not a symbol is defined.\\n\\n@param `name` Symbol name\\n\\n@param `result` Whether or not the symbol is defined\\n\\n\",\"signature\":\"name<STRING>  DEFINED  result<BOOLEAN>\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEFINED\"},\"DEFINEDMACRO\":{\"description\":\"The `DEFINEDMACRO` function checks if a macro is defined and pushes true or false on the stack accordingly.\\n\\n@param `name` The macro name\\n\\n@param `result` True if the macro is defined, false otherwise\\n\\n\",\"signature\":\"name<STRING>  DEFINEDMACRO  result<BOOLEAN>\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.16\",\"OPB64name\":\"DEFINEDMACRO\"},\"DEFLATE\":{\"description\":\"The `DEFLATE` function compresses a STRING or a byte array using the [Zlib](https://en.wikipedia.org/wiki/Zlib) library. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"signature\":\"string<STRING>  DEFLATE  compressed<BYTES>\\nbytes<BYTES>  DEFLATE  compressed<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"DEFLATE\"},\"DELETE\":{\"description\":\"The `DELETE` function is used to delete a set of GTS from a Warp 10 platform. A delete endpoint must be set on the Warp 10 configuration.\\n\\nDelete expects 5 parameters on top of the stack: the write token of the Warp 10 application, a string corresponding to a gts selector, a start \\nand a end timestamp and finally the number of GTS expected to be deleted.\\n\\nIf you specify start and end, Warp 10 will delete datapoints. If there is not any datapoints left, the GTS will remain in the directory (FIND will return it). To delete all datapoints and the directory entry, use NULL for end_timestamp and start_timestamp. FIND won't find anything after a delete all.\\n\\nFor safety reasons `DELETE` will first perform a dryrun call to the /delete endpoint to retrieve the number of GTS which would be deleted by the call. \\nIf this number is above the expected number provided by the user the actual delete will not be performed and instead an error will be raised.\\n\\nDelete will push as a result the number of GTS really deleted.\\n\\nSince 2.7.3, when setting `NULL` as the number of GTSs to delete, the `DELETE` function runs in dry mode. This means no GTS is deleted and the function returns the GTSs list that would be considered by the `DELETE`.\\n\\nOn a standalone version, deleting data will not free disk space until the next compaction. If you want to immediatly free disk space, contact us to get the leveldb plugin.\\n\\n\\n@param `count` Number of GTS expected to be deleted or NULL for a dryrun\\n\\n@param `end_timestamp` End timestamp or NULL\\n\\n@param `start_timestamp` Start timestamp or NULL\\n\\n@param `gts_selector` GTS selector\\n\\n@param `writeToken` Write token\\n\\n@param `result` Actual deleted GTS count\\n\\n\",\"signature\":\"writeToken<STRING> gts_selector<STRING> start_timestamp<LONG> end_timestamp<LONG> count<LONG>  DELETE  result<LONG>\",\"tags\":[\"gts\"],\"since\":\"1.0.5\",\"OPB64name\":\"DELETE\"},\"DELETEOFF\":{\"description\":\"Disables delete operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a delete operation is attempted.\\n\\n\",\"signature\":\"message<STRING> secret<STRING>  DELETEOFF \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEOFF\"},\"DELETEON\":{\"description\":\"Enables delete operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"signature\":\"secret<STRING>  DELETEON \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEON\"},\"DEPTH\":{\"description\":\"The `DEPTH` function pushes on top of the stack the depth (i.e. number of levels) of the stack prior to the call.\\n\\n@param `result` Stack depth\\n\\n\",\"signature\":\" DEPTH  result<LONG>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEPTH\"},\"DEREF\":{\"description\":\"Replaces in a Macro the occurrences of symbol dereferencing (`$x`) or calls to `LOAD` with a `STRING` argument or calls to `PUSHRx` by the values associated with either the symbol name or register number in a parameter map.\\n\\nValues are used verbatim except for Macros which are inserted as functions, *i.e.* they are inserted followed by a call to `EVAL` so they are executed in the target macro instead of ending up on the stack. If you wish to replace a symbol dereference by a Macro, you need to write the macro inside of another Macro.\\n\\n\\n@param `macro` Macro to transform.\\n\\n@param `values` Map of symbol name or register number to replacement value.\\n\\n\",\"signature\":\"macro<MACRO> values<MAP>  DEREF  macro<MACRO>\",\"tags\":[\"stack\"],\"since\":\"2.3.0\",\"OPB64name\":\"DEREF\"},\"DET\":{\"description\":\"Computes the [determinant](https://en.wikipedia.org/wiki/Determinant) of a matrix.\\n\\n@param `matrix` The matrix for which to compute the determinant.\\n\\n@param `det` The computed determinant.\\n\\n\",\"signature\":\"matrix<MATRIX>  DET  det<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"DET\"},\"DIFFERENCE\":{\"description\":\"Computes the difference between two sets.\\n\\nThe `DIFFERENCE` function consumes two sets from the top of the stack and pushes back its mathematical difference (ie: the elements in *A* but not in *B*).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* - *B*, the set of elements in *A* but not in *B*\\n\\n\",\"signature\":\"setA<SET> setB<SET>  DIFFERENCE  output<SET>\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"DIFFERENCE\"},\"DISCORDS\":{\"description\":\"The `DISCORDS` function detects discords in a Geo Time Series™. The discord detection algorithm is based on identifying outlier patterns in\\nthe Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `DISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0\\n\\n@param `overlapping` Flag indicating whether or not the `DISCORDS` function should report overlapping discords\\n\\n@param `maximum` The maximum number of discords to identify\\n\\n@param `lresult` The list of Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `result` The Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n\",\"signature\":\"lgts<LIST<GTS>> wsize<LONG> length<LONG> scale<LONG> maximum<LONG> overlapping<BOOLEAN> distance<DOUBLE>  DISCORDS  lresult<LIST<GTS>>\\ngts<GTS> wsize<LONG> length<LONG> scale<LONG> maximum<LONG> overlapping<BOOLEAN> distance<DOUBLE>  DISCORDS  result<GTS>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"DISCORDS\"},\"DOC\":{\"description\":\"Consumes the String on the stack or leave it there and stop the script if the stack is currently in documentation mode ([`DOCMODE`](/doc/DOCMODE)) \\n\\nYou can use it to document macros.\\n\\n@param `string` Text to display in [`DOCMODE`](/doc/DOCMODE)\\n\\n\",\"signature\":\"string<STRING>  DOC  string<STRING>\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOC\"},\"DOCMODE\":{\"description\":\"Toggle the 'documentation mode' of the stack\\n\\n\",\"signature\":\"\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOCMODE\"},\"DOUBLEBITS->\":{\"description\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the **LONG** value as the raw bits of the **DOUBLE**\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"signature\":\"input<LONG>  DOUBLEBITS->  result<DOUBLE>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"G3xKFZl4FZ_JJmoy\"},\"DOUBLEEXPONENTIALSMOOTHING\":{\"description\":\"The `DOUBLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Double Exponential Smoothing aka Holt's linear trend method](https://www.otexts.org/fpp/7/2) formula.\\n\\nIt consumes three parameters from the top of the stack:\\n * A trend smoothing factor beta (a numeric parameter between 0 < beta < 1)\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** and levels are pushed onto the stack (in this order in the **LIST**).\\n\\n@param `beta` The trend smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The list within the smoothed Geo Time Series™ and its levels\\n\\n\",\"signature\":\"gts<GTS> alpha<DOUBLE> beta<DOUBLE>  DOUBLEEXPONENTIALSMOOTHING  result<LIST<GTS>>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOUBLEEXPONENTIALSMOOTHING\"},\"DROP\":{\"description\":\"The `DROP` function removes the element at the top of the stack.\\n\\n@param `input` object reference to drop from the top of the stack.\\n\\n\",\"signature\":\"input<ANY>  DROP \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROP\"},\"DROPN\":{\"description\":\"The `DROPN` function removes the top N elements of the stack after having consumed N which was on the top of the stack prior to calling `DROPN`.\\n\\n@param `number` The number of elements to drop\\n\\n\",\"signature\":\"number<NUMBER>  DROPN \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROPN\"},\"DTW\":{\"description\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"signature\":\"gts1<GTS> gts2<GTS> threshold<DOUBLE>  DTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> characteristic<STRING>  DTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> distance<STRING> characteristic<STRING>  DTW  dtw<DOUBLE>\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"DTW\"},\"DUP\":{\"description\":\"The `DUP` function duplicates the element on the top of the stack, it doesn’t copy the content. If you apply DUP to a GTS you will\\nhave two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `input` any parameter on top of the stack\\n\\n@param `out` a reference copy of input on top of the stack\\n\\n\",\"signature\":\"input<ANY>  DUP  input<ANY> out<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUP\"},\"DUPN\":{\"description\":\"The `DUPN` function duplicates the top N elements of the stack after having consumed N which is on the top of the stack when calling `DUPN`.\\n\\nAs the [`DUP`](/doc/DUP) function, `DUPN` duplicates the references of the N elements on the top of the stack, it doesn’t copy the elements.\\nIf you apply `DUPN` to a GTS you will have two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want to copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `number` The number of elements to duplicate\\n\\n\",\"signature\":\"number<NUMBER>  DUPN \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUPN\"},\"DURATION\":{\"description\":\"The `DURATION` function consumes a **STRING** representing an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) and pushes back a **LONG** duration in platform time unit.\\n\\nThe ISO 8601 duration can be expessed as `PwWdDThHmMsS` with:\\n- `w` weeks\\n- `d` days\\n- `h` hours\\n- `m` minutes\\n- `s` or `s.ssssss...` seconds\\nEach of these values can be either positive or negative. Each value/unit couple can be omitted if the value is zero but at least one value/couple should be defined.\\n\\nIf the consumed ISO 8601 duration has precision under platform time unit, superfluous digits will be ignored. Prior to revision 2.4, precision below milliseconds were always ignored, independently of platform time unit.\\n\\n@param `isoDuration` A representation of a ISO 8601 duration with some limitations, see the description.\\n\\n@param `duration` Number of platform time unit corresponding to the duration.\\n\\n\",\"signature\":\"isoDuration<STRING>  DURATION  duration<LONG>\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"DURATION\"},\"DWTSPLIT\":{\"description\":\"The `DWTSPLIT` function splits a Geo Time Series™ produced by [`FDWT`](/doc/FDWT) into multiple series, one per resolution level of the Wavelet transform.\\n\\n\\n@param `label-name` Label name used in the generated series to indicate the level of each Geo Time Series™\\n\\n@param `gts` GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `lgts` List of GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `result` Splited GTS\\n\\n@param `lresult` List of splited GTS\\n\\n\",\"signature\":\"gts<GTS> label-name<STRING>  DWTSPLIT  result<GTS>\\nlgts<LIST<GTS>> label-name<STRING>  DWTSPLIT  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DWTSPLIT\"},\"E\":{\"description\":\"Alias of [e](/doc/OF).\\n\\nThe `E` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"signature\":\" E  eValue<DOUBLE>\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"GF\"},\"ECDH\":{\"description\":\"The `ECDH` function uses the [Elliptic-curve Diffie–Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) key agreement protocol to establish a secret.\\n\\nThe secret is derived from two ECC keys, one public, one private. This secret can be established independently by two parties who only need to share their ECC public keys and combine them with their private keys.\\n\\nThe public and private keys must use the same curve.\\n\\n@param `public` ECC public key.\\n\\n@param `private` ECC private key.\\n\\n@param `secret` Hex encoded secret.\\n\\n\",\"signature\":\"private<KEY> public<KEY>  ECDH  secret<STRING>\",\"tags\":[\"crypto\"],\"since\":\"2.7.2\",\"OPB64name\":\"ECDH\"},\"ECGEN\":{\"description\":\"The `ECGEN` function generates a public/private key pair parameters suitable for performing [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography).\\n\\nThe resulting parameters can serve as input to [`ECPRIVATE`](/doc/ECPRIVATE) and [`ECPUBLIC`](/doc/ECPUBLIC) to generate the actual private and public keys.\\n\\nThe following curves are supported:\\n\\n`c2pnb272w1`, `c2tnb191v3`, `c2pnb208w1`, `c2tnb191v2`, `c2tnb191v1`, `prime192v3`, `c2tnb359v1`, `prime192v2`, `prime192v1`, `c2tnb239v3`, `c2pnb163v3`, `c2tnb239v2`, `c2pnb163v2`, `c2tnb239v1`, `c2pnb163v1`, `c2pnb176w1`, `prime256v1`, `c2pnb304w1`, `c2pnb368w1`, `c2tnb431r1`, `prime239v3`, `prime239v2`, `prime239v1`, `sect233r1`, `secp112r2`, `secp112r1`, `secp256k1`, `sect113r2`, `secp521r1`, `sect113r1`, `sect409r1`, `secp192r1`, `sect193r2`, `sect131r2`, `sect193r1`, `sect131r1`, `secp160k1`, `sect571r1`, `sect283k1`, `secp384r1`, `sect163k1`, `secp256r1`, `secp128r2`, `secp128r1`, `secp224k1`, `sect233k1`, `secp160r2`, `secp160r1`, `sect409k1`, `sect283r1`, `sect163r2`, `sect163r1`, `secp192k1`, `secp224r1`, `sect239k1`, `sect571k1`, `B-163`, `P-521`, `P-256`, `B-233`, `P-224`, `B-409`, `P-384`, `B-283`, `B-571`, `P-192`, `brainpoolp512r1`, `brainpoolp384t1`, `brainpoolp256r1`, `brainpoolp192r1`, `brainpoolp512t1`, `brainpoolp256t1`, `brainpoolp224r1`, `brainpoolp320r1`, `brainpoolp192t1`, `brainpoolp160r1`, `brainpoolp224t1`, `brainpoolp384r1`, `brainpoolp320t1`, `brainpoolp160t1`\\n\\n@param `curve` Name of the elliptic curve to use.\\n\\n@param `public` Map containing the public key parameters.\\n\\n@param `private` Map containing the private key parameters.\\n\\n\",\"signature\":\"curve<STRING>  ECGEN  private<MAP> public<MAP>\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECGEN\"},\"ECHOOFF\":{\"description\":\"Turns off the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\" ECHOOFF \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOOFF\"},\"ECHOON\":{\"description\":\"Turns on the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of topmost stack levels to display after each WarpScript™ line, truncated if floating-point.\\n\\n\",\"signature\":\"levels<NUMBER>  ECHOON \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOON\"},\"ECPRIVATE\":{\"description\":\"The `ECPRIVATE` function generates a private key from private key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\n@param `private` Map containing ECC private key parameters.\\n\\n@param `key` ECC private key.\\n\\n\",\"signature\":\"private<MAP>  ECPRIVATE  key<KEY>\\nkey<KEY>  ECPRIVATE  private<MAP>\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPRIVATE\"},\"ECPUBLIC\":{\"description\":\"The `ECPUBLIC` function generates a public key from public key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\nThe function can also produce a public key from a private key produced by [`ECPRIVATE`](/doc/ECPRIVATE).\\n\\n@param `private` Private key generated by `ECPRIVATE`.\\n\\n@param `public` Map containing ECC public key parameters.\\n\\n@param `key` ECC public key.\\n\\n\",\"signature\":\"public<MAP>  ECPUBLIC  key<KEY>\\nkey<KEY>  ECPUBLIC  public<MAP>\\nprivate<KEY>  ECPUBLIC  key<KEY>\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPUBLIC\"},\"ECRECOVER\":{\"description\":\"The `ECRECOVER` function allows to infer from a hash and an associated [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) signature a list of public keys whose associated private keys may have generated the signature. From those candidate keys and some additional information, for example a [bitcoin](https://en.bitcoin.it/wiki/Invoice_address) or [Ethereum](https://en.wikipedia.org/wiki/Ethereum#Addresses) address, one can identify the correct public key whose companion private key signed the hash.\\n\\nThe function takes as input a parameter map with the following elements:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `curve` | The name of the ECC curve used by the key to recover. |\\n| `hash` | Byte array of the hash which was signed. |\\n| `sig` | Byte array of the signature, as generated by [`ECSIGN`](/doc/ECSIGN). |\\n| `coords` | Optional boolean flag indicating whether or not to return the coordinates of the `R` point. |\\n\\n@param `params` Parameter map. See description of keys above.\\n\\n@param `keys` List of candidate public keys. The list contains the `Q` public keys or maps with `Q` and the `R.x` and `R.y` coordinates of the `R` point computed during the signature process. Those `Q` public keys can be converted to a map format using [`ECPUBLIC`](/doc/ECPUBLIC).\\n\\n\",\"signature\":\"params<MAP>  ECRECOVER  keys<LIST<KEY>>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"ECRECOVER\"},\"ECSIGN\":{\"description\":\"The `ECSIGN` function generates a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) private key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Content to sign.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `private` Private key to use for signining.\\n\\n@param `signature` Resulting signature.\\n\\n\",\"signature\":\"data<BYTES> alg<STRING> private<KEY>  ECSIGN  signature<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECSIGN\"},\"ECVERIFY\":{\"description\":\"The `ECVERIFY` function verifies a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) public key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Signed data.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `public` Public key to use for verification.\\n\\n@param `signature` Signature to verify.\\n\\n@param `result` Validity of the signature.\\n\\n\",\"signature\":\"data<BYTES> signature<BYTES> alg<STRING> public<KEY>  ECVERIFY  result<BOOLEAN>\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECVERIFY\"},\"EIP712.HASH\":{\"description\":\"Computes the hash of a typed structure conforming to [EIP-712](https://eips.ethereum.org/EIPS/eip-712).\\n\\n@param `structure` EIP-712 conformant structure to hash.\\n\\n@param `hash` Hash of the structure. Can be used to verify signature using `ETH.VERIFY`.\\n\\n\",\"signature\":\"structure<MAP>  EIP712.HASH  hash<BYTES>\",\"tags\":[\"extensions\"],\"OPB64name\":\"EIP712.HASH\"},\"ELAPSED\":{\"description\":\"The `ELAPSED` function pushes onto the stack a list containing timing informations. The first element of the list is the timestamp at which \\nthe script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution \\nof the associated script line.\\n\\nTiming informations are only collected after a call to [`TIMINGS`](/doc/TIMINGS) (its line included) and before a call to [`NOTIMINGS`](/doc/NOTIMINGS)\\n (its line excluded).\\n\\n@param `result` The first element of the list is the timestamp at which the script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution of the associated script line.\\n\\n\",\"signature\":\" ELAPSED  result<LIST<LONG>>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELAPSED\"},\"ELEVATIONS\":{\"description\":\"The `ELEVATIONS` function consumes a Geo Time Series™ or a list thereof from the stack, extracts its elevations, puts them in a list and pushes the list onto the stack.\\n\\n@param `gts` The Geo Time Series™ from which to extract the elevations\\n\\n@param `lgts` The list of Geo Time Series™ from which to extract the elevations\\n\\n@param `elevations` The elevations of the given Geo Time Series™\\n\\n@param `lelevations` The list of elevations of the given Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  ELEVATIONS  elevations<LIST<LONG>>\\nlgts<LIST<GTS>>  ELEVATIONS  lelevations<LIST<LIST<LONG>>>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELEVATIONS\"},\"EMPTY\":{\"description\":\"Reject GTS instances with values.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with empty values\\n\\n\",\"signature\":\"gtsList<LIST<GTS>>  EMPTY  result<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"EMPTY\"},\"ENCODER->\":{\"description\":\"The `ENCODER->` functions convert an encoder into a list of ( timestamp, latitude, longitude, elevation, value ) list. It also pushes attributes, labels and name on the stack.\\nFunction also accepts wrapped or raw-wrapped encoders or gts.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedinput` Encoder or GTS after WRAP. \\n\\n@param `rawwrappedinput` Encoder or GTS after WRAPRAW.\\n\\n@param `output` List of list of ( timestamp, latitude, longitude, elevation, value ). Missing values in the encoder or GTS are replaced by NaN.\\n\\n@param `name` Name of encoder or GTS. If no name was defined, will be NULL.\\n\\n@param `attributes` Attributes of encoder or GTS input. If none defined, will be an empty map.\\n\\n@param `labels` Labels of encoder or GTS input. If none defined, will be an empty map.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  ENCODER->  name<STRING> attributes<MAP> labels<MAP> output<LIST>\\nwrappedinput<STRING>  ENCODER->  name<STRING> attributes<MAP> labels<MAP> output<LIST>\\nrawwrappedinput<BYTES>  ENCODER->  name<STRING> attributes<MAP> labels<MAP> output<LIST>\",\"tags\":[\"encoder\",\"conversion\",\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"GJt2IoG4JXoy\"},\"ERROR\":{\"description\":\"Pushes onto the stack a list containing the current error (as caught by a [`TRY`](/doc/TRY)) and its causes. Each error is a map with the following fields:\\n\\n| Field | Description |\\n| --- | --- |\\n| type | Type of the error, the Java class of the underlying exception |\\n| message | The message associated with the error |\\n| stacktrace | A list of lists, each containing `filename`, `line number`, `class name`, `method name` |      \\n\\nThe current error is the first element of the list.\\n\\nIf there is no current error, the returned list will be empty.\\n\\n@param `error` List of maps describing the current error and its causes.\\n\\n\",\"signature\":\" ERROR  error<LIST<MAP>>\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ERROR\"},\"ESDTEST\":{\"description\":\"The `ESDTEST` function detects outliers in a GTS (or a **LIST** of GTS), by applying a [generalized extreme studentized deviate test](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h3.htm).\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nA [Grubbs’](/doc/GRUBBSTEST)test is done for one candidate at a time. Then, the candidate is removed from the set and another [Grubbs’](/doc/GRUBBSTEST)test\\nis performed. This process is iterated a given number of times. The detected outliers are the removed values and the current candidate of the last successful\\ntest.\\n\\nA **LIST** of ticks (or a **LIST** of **LIST** of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"signature\":\"gts<GTS> k<LONG> mad<BOOLEAN> alpha<DOUBLE>  ESDTEST  result<LIST<LONG>>\\ngts<GTS> k<LONG> mad<BOOLEAN>  ESDTEST  result<LIST<LONG>>\\ngtsList<LIST<GTS>> k<LONG> mad<BOOLEAN> alpha<DOUBLE>  ESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> k<LONG> mad<BOOLEAN>  ESDTEST  resultList<LIST<LIST<LONG>>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ESDTEST\"},\"ETH.BIP32\":{\"description\":\"The `ETH.BIP32` function generates an ECC private key from a seed phrase, optional passphrase and derivation path.\\n\\n@param `seed` Valid (English) seed phrase to use for generating the ECC private key.\\n\\n@param `passphrase` Optional passphrase.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `key` Generated ECC private key.\\n\\n\",\"signature\":\"{ path<STRING> passphrase<STRING> seed<STRING>  } ETH.BIP32  key<KEY>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP32\"},\"ETH.BIP39\":{\"description\":\"The `ETH.BIP39` function validates a seed phrase according to the English [BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md) word list. The function will return the validated seed or throw an exception if validation failed.\\n\\n@param `seed` Seed phrase to validate.\\n\\n@param `validated` Validated seed phrase.\\n\\n\",\"signature\":\"seed<STRING>  ETH.BIP39  validated<STRING>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP39\"},\"ETH.CALL\":{\"description\":\"The `ETH.CALL` function generates a transaction payload which represents a smart contract function call.\\n\\n@param `abi` `MAP` containing the description of the endpoint to call, as generated by `ABI->`.\\n\\n@param `args` `LIST` of arguments to the call, in the order in which they appear in the function signature.\\n\\n@param `margs` `MAP` of argument names to values. The function arguments will be extracted from this `MAP` based on their name.\\n\\n@param `payload` Hex encoded payload representing the function call.\\n\\n\",\"signature\":\"args<LIST> abi<MAP>  ETH.CALL  payload<STRING>\\nmargs<MAP> abi<MAP>  ETH.CALL  payload<STRING>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.CALL\"},\"ETH.KEY\":{\"description\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `private` ECC private `KEY`. If not set, then `seed` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `result` Extracted public and private key and associated Ethereum address.\\n\\n\",\"signature\":\"{ path<STRING> passphrase<STRING> seed<STRING> private<KEY>  } ETH.KEY  result<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.KEY\"},\"ETH.LOG\":{\"description\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `abi` `MAP` containing the description of the `event` to decode.\\n\\n@param `log` Log entry to decode. Typically a `MAP` from the `log` list present in a transaction receipt returned by `ETH.RECEIPT`.\\n\\n@param `result` Decoded event.\\n\\n\",\"signature\":\"log<MAP> abi<MAP>  ETH.LOG  result<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.LOG\"},\"ETH.NONCE\":{\"description\":\"The `ETH.NONCE` function retrieves the latest used nonce for a given address from a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce. Defaults to `http://localhost:3545/`.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path`, or `address` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address whose nonce must be retrieved. If unset, use `seed` or `private`.\\n\\n@param `nonce` The nonce retrieved from the blockchain for the given address.\\n\\n\",\"signature\":\"{ private<KEY> passphrase<STRING> path<STRING> seed<STRING> address<STRING> url<STRING>  } ETH.NONCE  nonce<STRING>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.NONCE\"},\"ETH.RECEIPT\":{\"description\":\"The `ETH.RECEIPT` function retrieves a transaction receipt from a network node.\\n\\n@param `txid` Id of the transaction whose receipt should be retrieved.\\n\\n@param `url` URL of the blockchain node to query.\\n\\n@param `receipt` Receipt of the transaction as stored in the blockchain.\\n\\n\",\"signature\":\"{ url<STRING> txid<STRING>  } ETH.RECEIPT  receipt<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RECEIPT\"},\"ETH.RETURN\":{\"description\":\"The `ETH.RETURN` function decodes the encoded return value of a function call (obtained via `ETH.CALL` and `ETH.TXN`).\\n\\n@param `abi` `MAP` containing the description of the `function` return value or `error` to decode, as generated by `ABI->`.\\n\\n@param `value` Hex encoded return value to decode.\\n\\n@param `result` Decoded `value`.\\n\\n\",\"signature\":\"value<STRING> abi<MAP>  ETH.RETURN  result<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RETURN\"},\"ETH.TXN\":{\"description\":\"The `ETH.TXN` function allows to perform various actions related to Ethereum/EVM transactions.\\n\\nIt can retrieve a transaction from a network node, generate raw or signed transactions and optionally submit transactions to a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce, if none was given, and sending the transaction or function call. Defaults to `http://localhost:3545/`.\\n\\n@param `raw` Raw transaction, hex encoded with `0x` prefix. This is mutually exclusive with the `MAP` returned when `send` is `true`.\\n\\n@param `data` Call data to include in the transaction. This is either `BYTES` or a `STRING`. The `STRING` is assumed to be hex encoded if it starts with `0x`, otherwise its `UTF-8` encoding is used.\\n\\n@param `to` Ethereum address or ECC public `KEY` of the recipient.\\n\\n@param `value` Value (in `wei`) associated with the transaction. Can be expressed as a `LONG` or as a `STRING` for large values.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path` must be set, except for calls where `address` can simply be specified since no signing takes place.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address of the calling party, can only be used when `call` is `true` since calls do not require signing.\\n\\n@param `nonce` `nonce` value to use for the transaction. If not set `ETH.TXN` will attempt to retrieve the last used nonce from the blockchain.\\n\\n@param `chainid` Chain ID to use for encoding the transaction. Defaults to `0`.\\n\\n@param `gaslimit` Maximum amount of gas that can be spent when submitting the transaction. Defaults to `21000` which is sufficient for an Ether tranfer.\\n\\n@param `gasprice` Maximum gas price per gas unit, expressed in `wei`. This is for legacy transactions.\\n\\n@param `maxfeepergas` Maximum base + priority fee, as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 2,000,000,000 `wei`, *i.e.* 2 `gwei`.\\n\\n@param `maxpriorityfeepergas` Maximum priority fee (tip), as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 1,000,000,000 `wei`, *i.e.* 1 `gwei`.\\n\\n@param `sign` Flag indicating whether or not to sign the transaction. If set to `true` then `private` or `seed` must be set.\\n\\n@param `send` Flag indicating whether or not to submit the transaction to a network node.\\n\\n@param `txid` The transaction id (TxID, or transaction hash) of the submitted transaction.\\n\\n@param `call` Flag indicating if the *transaction* is really a function call.\\n\\n@param `response` The raw response returned by the network node. Hex encoded.\\n\\n@param `result` A `MAP` containing the result of the operation. Content will depend on the actual input parameters.\\n\\n@param `txn` A `MAP` containing retrieved transaction infos.\\n\\n\",\"signature\":\"{ txid<STRING> url<STRING>  } ETH.TXN  txn<MAP>\\n{ to<STRING> private<KEY> passphrase<STRING> path<STRING> seed<STRING> address<STRING> data<BYTES> call<BOOLEAN> url<STRING>  } ETH.TXN  result<MAP>\\n{ send<BOOLEAN> sign<BOOLEAN> maxpriorityfeepergas<LONG> maxfeepergas<LONG> gaslimit<LONG> chainid<LONG> nonce<LONG> path<STRING> seed<STRING> private<KEY> value<LONG> to<STRING> data<STRING> raw<BYTES> url<STRING>  } ETH.TXN  raw<STRING> { txid:STRING' txid<undefined> \\n\\n response:STRING' response<undefined> \\n\\n }\\n\\n\\n{ send<BOOLEAN> sign<BOOLEAN> gasprice<LONG> gaslimit<LONG> chainid<LONG> nonce<LONG> path<STRING> seed<STRING> private<KEY> value<LONG> to<STRING> data<STRING> raw<BYTES> url<STRING>  } ETH.TXN  raw<STRING> { txid:STRING' txid<undefined> \\n\\n response:STRING' response<undefined> \\n\\n }\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.TXN\"},\"ETH.VERIFY\":{\"description\":\"Verify an ECDSA signature and extracts the signing public key and the associated address.\\n\\nIf the signature cannot be verified, an exception is thrown.\\n\\n@param `signature` Ethereum ECDSA signature to verify.\\n\\n@param `hash` Signed hash.\\n\\n@param `result` Map containing the signing public key and associated address.\\n\\n\",\"signature\":\"hash<BYTES> signature<BYTES>  ETH.VERIFY  result<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.VERIFY\"},\"EVAL\":{\"description\":\"The `EVAL` function evaluates the statements contained in the string at the top of the stack as if they had been entered individually or runs the macro at the top os the stack.\\n\\n@param `string` String to evaluate\\n\\n@param `macro` Macro to run\\n\\n@param `function` Function to run\\n\\n\",\"signature\":\"macro<MACRO>  EVAL \\nstring<STRING>  EVAL \\nfunction<FUNCTION>  EVAL \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVAL\"},\"EVALSECURE\":{\"description\":\"The `EVALSECURE` function executes a secure script. The script must have been created on a platform with the same secure script cryptographic key as the current platform (note that this is not the *secret* set using [`SECUREKEY`](doc/SECUREKEY)).\\n\\n@param `secure` String containing the secure script to execute.\\n\\n@param `return` The return values depend on the actual code of the secure script.\\n\\n\",\"signature\":\"secure<STRING>  EVALSECURE  return<ANY>\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVALSECURE\"},\"EVERY\":{\"description\":\"When called via the `/mobius` endpoint, the `EVERY` function sets the repeat interval for the preceding macro. This interval is in milliseconds.\\n\\nWhen called outside of `/mobius`, the `EVERY` function simply executes the macro.\\n\\n@param `repeat` The repeat interval to enforce, in milliseconds.\\n\\n@param `macro` The macro to execute.\\n\\n\",\"signature\":\"macro<MACRO> repeat<LONG>  EVERY \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVERY\"},\"EXP\":{\"description\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a floating point value x consumed from the top of the stack,\\n i.e. e<sup>x</sup>.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List where each value is e<sup>x</sup>\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>, for x in the the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  EXP  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  EXP  lresult<LIST<DOUBLE>>\\ngts<GTS>  EXP  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXP\"},\"EXPM1\":{\"description\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a DOUBLE value x consumed from the top of the stack then subtracts one, i.e. e<sup>x</sup>-1.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>-1\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List of e<sup>x</sup>-1\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>-1, for x in the the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  EXPM1  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  EXPM1  lresult<LIST<DOUBLE>>\\ngts<GTS>  EXPM1  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXPM1\"},\"EXPORT\":{\"description\":\"The `EXPORT` function allows you to set or update a list of symbols which will be dumped upon script termination. This proves handy when \\ndebugging a script as you can visualize, even in the case of errors, the value of specific symbols.\\n\\nThe function expects either a symbol name (a **STRING**) which will be added to the current list of exported symbols, a list of symbol \\nname which will replace the current list of exported symbols, an empty list to disable symbol export altogether, or a list with a single\\n**NULL** element to instruct the WarpScript engine to export all existing symbols.\\n\\nWhen symbols should be exported, the debug mode is implied (see [`DEBUGON`](/doc/DEBUGON)).\\n\\n@param `symbol` Symbol name\\n\\n@param `symbols` List of symbols\\n\\n\",\"signature\":\"symbol<STRING>  EXPORT \\nsymbols<LIST>  EXPORT \",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.2\",\"OPB64name\":\"EXPORT\"},\"EXTLOADED\":{\"description\":\"Checks if a WarpScript extension is loaded or not and therefore available.      \\n\\n@param `ext` Name of extension to check.\\n\\n@param `loaded` Boolean indicating whether or not the specified extension is loaded in the WarpScript environment.\\n\\n\",\"signature\":\"ext<STRING>  EXTLOADED  loaded<BOOLEAN>\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"EXTLOADED\"},\"F\":{\"description\":\"`F` stand for `false`. It is a boolean constant.\\n\\n\\n@param `b` false\\n\\n\",\"signature\":\" F  b<BOOLEAN>\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"F\"},\"FAIL\":{\"description\":\"The `FAIL` function stops the execution of the WarpScript scripts by throwing an exception.\\n\\n\",\"signature\":\"\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FAIL\"},\"FDWT\":{\"description\":\"The `FDWT` function performs a [Forward Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Fast_wavelet_transform#Forward_DWT) on a Geo Time Series™.\\n\\nA number of different [Wavelets](https://en.wikipedia.org/wiki/Wavelet) are available, the list is inspired by that available on \\nthe [Wavelet Browser](http://wavelets.pybytes.com/).\\n\\nThe list of Wavelets which can be used is the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\nThe FDWT can only be applied to Geo Time Series™ with a number of values which is a power of 2.\\n\\nAssuming the input GTS has 2<sup>n</sup> values, the result of the FDWT transformation is a GTS with 2<sup>n</sup> values (the wavelet coefficients) with timestamps from 0 to 2<sup>n</sup>-1.\\n\\nThe ticks of the `n` levels are contiguous, with the first tick being for level `n`, the next 2 for level `n-1`, the next 4 for level `n-2`, up to the last 2<sup>n-1</sup> for level 1.\\n\\nLevel 1 has the finest time resolution but the coarsest frequency resolution. Each level has half (coarser) the time resolution and double (finer) the frequency resolution as the previous level.\\n\\n@param `wavelet` Name of wavelet to use for the transformation.\\n\\n@param `gts` Geo Time Series™ instance on which to perform the FDWT.\\n\\n@param `lgts` List of Geo Time Series™ on which to apply the FDWT.\\n\\n@param `fdwt` Transformed Geo Time Series™.\\n\\n@param `lfdwt` List of transformed Geo Time Series™.\\n\\n\",\"signature\":\"gts<GTS> wavelet<STRING>  FDWT  fdwt<GTS>\\nlgts<LIST<GTS>> wavelet<STRING>  FDWT  lfdwt<LIST<GTS>>\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FDWT\"},\"FETCH\":{\"description\":\"The `FETCH` function interacts with the Warp 10 Storage Engine to retrieve data according to given criteria.\\n\\n`FETCH` either accepts a list of 5 parameters or a map with the parameters. Those are defining the **read access rights**, the **concerned Geo Time Series** and the **time window**. Other parameters in the map input are optional. \\n\\nThe list input is here to keep backward compatibility with old WarpScripts. The map input allows a great flexibility, as described below.\\n\\n### Access rights\\nA valid read token is needed to read data with fetch. If you use a [metaset](/doc/METASET) and also specify a token, the token included in the metaset will be ignored.\\n\\n### Concerned Geo Time Series\\n`FETCH` selects Geo Time Series according to:\\n+ The `selectors` parameter, which is a list of selector.\\n+ If `selectors` is not found, `FETCH` uses the `selector` parameter which is a single selector.\\n+ If `selector` is not found, `FETCH`  uses both `class` and `labels` parameters.  \\n\\n### Time window\\n`FETCH`  begins from the newest value and stop when the oldest value is collected. Thus, `end` must be defined in your request and defines the newest included value in your time window. If `end` is anterior to your oldest value, the result will be empty (no Geo Time Series). The span of the time window ending at `end` is then defined according to:\\n+ The `timespan` parameter.\\n+ If `timespan` is not defined, `FETCH` collects a maximum of `count` point.\\n+ If `count` is not defined, `FETCH` determines `timespan` with `start`. If `start` is more recent than `end`, `end` and `start` are permuted internally. Both `start` and `end` are included in the time window.\\n\\n### Boundaries\\nSince version 2.3.0, you can define *boundaries* around the requested data. When fetching data based on a time range, both a *pre* and *post* boundaries can be specified. When fetching by count, only a *pre* boundary can be requested.\\nBoundaries are a number of datapoints which are either before (*pre* boundary) or after (*post* boundary) the fetched data. Fetching boundaries is very useful when storing only the changes of values as they enable you to always fetch datapoints even if the requested time range does not contain any. They can also be used to fetch the first `N` datapoints after a given timestamp.\\nNote that fetching *post* boundaries is less efficient than fetching the requested range or a *pre* boundary as the data has to be scanned in reverse order which has an impact on I/Os and ultimately on performance.\\n\\n### Sampling options\\n+ Since version 2.3.0, you can randomly sample points with the `sample` parameter. If `sample` equals 0.1, `FETCH` will randomly return one point out of ten. This implementation is the fastest way to resample data.\\n+ Since version 2.3.0, you can `skip` the N newest datapoints in the time window specified.\\n\\n### Query without looking into directory\\nThe fetch time to read one gts among millions of gts recorded with the same classname, the same application and the same owner can take time. Use the `gts` parameter to select if you exactly know the classname and all the labels.\\n\\nIf you want to read only Geo Time Series attributes or labels, using [FIND](/doc/FIND) is more efficient than fetching the last value.\\n\\n### FETCH availability \\nYou cannot use FETCH within macro unit tests. When macro are loaded, directory and storage are not ready yet, so you will have a null pointer exception during macro loading. To build your unit tests, [WRAP](/doc/WRAP) your data and use [UNWRAP](/doc/UNWRAP) from a string instead of fetch.\\n\\n\\n@param `token` Read token to use to fetch the data.\\n\\n@param `class` Selector for the GTS classes. Can either be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `labels` Map of labels selectors. The key is the label name, the value a selector which can be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `gts` Explicit list of Geo Time Series™ to fetch. The class and labels will be used as is and not serve as selectors.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `extra` List of extraneous classes to fetch. For each GTS matching the selection criteria, GTS with those extra class names will be fetched too (with the *exact* same set of labels).\\n\\n@param `metaset` A set of Geo Time Series™ produced by the [`METASET`](/doc/METASET) function.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `end` Newest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `start` Oldest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `timespan` Depth to consider when fetching the datapoints. If the value is positive then it is interpreted as a duration in time units, if it is negative then as the maximum number of datapoints to fetch. If negative, incompatible with 'count'.\\n\\n@param `count` Maximum number of datapoints to fetch for each GTS. Incompatible with negative 'timespan'.\\n\\n@param `boundary` Number of datapoints to include in both *pre* and *post* boundaries.\\n\\n@param `boundary.pre` Number of datapoints in the *pre* boundary.\\n\\n@param `boundary.post` Number of datapoints in the *post* boundary.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer, which is the most efficient.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n@param `encoders` Whether to return **GTSENCODER** or **GTS**. Defauts to False.\\n\\n@param `merge` Whether to merge or not the splitted encoders because they exceed *max.encoder.size* or *standalone.max.encoder.size*. Defaults to True.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `type` Name of type to force for the GTS, either LONG, DOUBLE, BOOLEAN or STRING.\\n\\n@param `typeattr` Name of label to use for storing the GTS type. This option is incompatible with 'type', when set values of different types are ventilated in separate GTS with the same set of class and labels and an additional *type* label of the given name.\\n\\n@param `wtimestamp` Whether to return or not the HBase cell timestamp instead of the value. Only for distributed instances, defaults to False.\\n\\n@param `ttl` Whether to return or not the HBase cells TTL instead of the value. Only for distributed instances, defaults to False. Only works if KeyValueCodecWithTags codec is enabled.\\n\\n@param `data` List of fetched Geo Time Series or **GTSECODERS**.\\n\\n@param `gskip` Number of GTS to skip before considering GTS.\\n\\n@param `gcount` Maximum number of GTS to consider.\\n\\n\",\"signature\":\"[ token<STRING> class<STRING> labels<MAP> end<LONG> timespan<LONG> ]  FETCH  data<LIST<GTS>>\\n[ token<STRING> class<STRING> labels<MAP> start<STRING> end<STRING> ]  FETCH  data<LIST<GTS>>\\n{ gcount<LONG> gskip<LONG> ttl<BOOLEAN> wtimestamp<BOOLEAN> typeattr<STRING> type<STRING> showuuid<BOOLEAN> merge<BOOLEAN> encoders<BOOLEAN> skip.count<LONG> sampling.ratio<DOUBLE> timestep<LONG> step<LONG> boundary.post<LONG> boundary.pre<LONG> boundary<LONG> count<LONG> timespan<LONG> start<STRING> end<LONG> priority<LIST<STRING>> metaset<STRING> extra<LIST<STRING>> active.after<LONG> quiet.after<LONG> gts<LIST<GTS>> selectors<LIST<STRING>> selector<STRING> labels<MAP> class<STRING> token<STRING>  } FETCH  data<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCH\"},\"FETCHBOOLEAN\":{\"description\":\"The `FETCHBOOLEAN` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type BOOLEAN.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"linput<LIST>  FETCHBOOLEAN  data<LIST<GTS>>\\nminput<MAP>  FETCHBOOLEAN  data<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHBOOLEAN\"},\"FETCHDOUBLE\":{\"description\":\"The `FETCHDOUBLE` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type DOUBLE.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"linput<LIST>  FETCHDOUBLE  data<LIST<GTS>>\\nminput<MAP>  FETCHDOUBLE  data<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHDOUBLE\"},\"FETCHLONG\":{\"description\":\"The `FETCHLONG` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type LONG.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"linput<LIST>  FETCHLONG  data<LIST<GTS>>\\nminput<MAP>  FETCHLONG  data<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHLONG\"},\"FETCHSTRING\":{\"description\":\"The `FETCHSTRING` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type STRING.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"linput<LIST>  FETCHSTRING  data<LIST<GTS>>\\nminput<MAP>  FETCHSTRING  data<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHSTRING\"},\"FFT\":{\"description\":\"The `FFT` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFT` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe real parts of the `FFT` coefficients, the second the imaginary parts. The scale factor is equal to X/(n * bucketspan) where n is the number\\nof elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the number\\nof values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFT` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the real parts of the `FFT` coefficients, the second the imaginary parts.\\n\\n\",\"signature\":\"gts<GTS>  FFT  result<LIST<GTS>>\\ngtsList<LIST<GTS>>  FFT  result<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFT\"},\"FFTAP\":{\"description\":\"The `FFTAP` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFTAP` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe amplitude of the coefficient at that frequency and the second the associated phase. The scale factor is equal to X/(n * bucketspan) where n is\\nthe number of elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the\\nnumber of values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFTAP` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the amplitude of the coefficient at that frequency and the second the associated phase.\\n\\n\",\"signature\":\"gts<GTS>  FFTAP  result<LIST<GTS>>\\ngtsList<LIST<GTS>>  FFTAP  result<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFTAP\"},\"FFTWINDOW\":{\"description\":\"The `FFTWINDOW` transforms Geo Time Series™ by applying a [window function](https://en.wikipedia.org/wiki/Window_function) to its values. The function supports the following windows:\\n\\n| Name | Window |\\n| --- | --- |\\n| `triangular` | [Triangular](https://en.wikipedia.org/wiki/Window_function#Triangular_window) |\\n| `parzen` | [Parzen](https://en.wikipedia.org/wiki/Window_function#Parzen_window) |\\n| `welch` | [Welch](https://en.wikipedia.org/wiki/Window_function#Welch_window) |\\n| `sine` | [Sine](https://en.wikipedia.org/wiki/Window_function#Sine_window) |\\n| `hann` | [Hann](https://en.wikipedia.org/wiki/Window_function#Hann_window) |\\n| `hamming` | [Hamming](https://en.wikipedia.org/wiki/Window_function#Hamming_window) |\\n| `blackman` | [Blackman](https://en.wikipedia.org/wiki/Window_function#Blackman_window) |\\n| `nuttall` | [Nuttall](https://en.wikipedia.org/wiki/Window_function#Nuttall_window,_continuous_first_derivative) | \\n| `blackman-nuttall` | [Blackman-Nuttall](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Nuttall_window) |\\n| `blackman-harris` | [Blackman-Harris](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Harris_window) |\\n| `flattop` | [Flat top](https://en.wikipedia.org/wiki/Window_function#Flat_top_window) |\\n| `rectangular` | [Rectangular](https://en.wikipedia.org/wiki/Window_function#Rectangular_window) |\\n\\n@param `window` Name of the window function to apply.\\n\\n@param `gts` Single Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `windowed` Tranformed Geo Time Series™.\\n\\n@param `lwindowed` List of transformed Geo Time Series™.\\n\\n\",\"signature\":\"gts<GTS> window<STRING>  FFTWINDOW  windowed<GTS>\\nlgts<LIST<GTS>> window<STRING>  FFTWINDOW  lwindowed<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"FFTWINDOW\"},\"FILL\":{\"description\":\"The `FILL` function fills missing values in two Geo Time Series™ so they end up with identical ticks.\\n\\nThe filling is done using a *filler* function which applies a given strategy. Filler functions can be created using macros via the [`MACROFILLER`](/doc/MACROFILLER) function.\\n\\n@param `gtsa` First Geo Time Series™ to fill.\\n\\n@param `gtsb` Second Geo Time Series™ to fill.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\"gtsa<GTS> gtsb<GTS> filler<FILLER>  FILL  gtsa<GTS> gtsb<GTS>\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"FILL\"},\"FILLNEXT\":{\"description\":\"The `FILLNEXT` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation of the \\nnext non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"signature\":\"gts<GTS>  FILLNEXT  result<GTS>\\ngtsList<LIST<GTS>>  FILLNEXT  resultList<LIST<GTS>>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLNEXT\"},\"FILLPREVIOUS\":{\"description\":\"The `FILLPREVIOUS` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation \\nof the previous non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"signature\":\"gts<GTS>  FILLPREVIOUS  result<GTS>\\ngtsList<LIST<GTS>>  FILLPREVIOUS  resultList<LIST<GTS>>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLPREVIOUS\"},\"FILLTICKS\":{\"description\":\"The `FILLTICKS` function add values to a Geo Time Series™ instance or a list thereof for ticks in the given **LIST**.\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n@param `data` List of (latitude, longitude, elevation, ticks) where ticks is a list of ticks.\\n\\n\",\"signature\":\"gts<GTS> data<LIST>  FILLTICKS  result<GTS>\\ngtsList<LIST<GTS>> data<LIST>  FILLTICKS  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLTICKS\"},\"FILLVALUE\":{\"description\":\"The `FILLVALUE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with a fixed value/location/elevation.\\n\\nIt expects a GTS or a list thereof on the top of the stack after having consumed a list of parameters (latitude, longitude, elevation, value)\\nsitting on top of the stack prior to the call.\\n\\nLocation must be floating point numbers (e.g. 0.0 not 0). Elevation must be an integer. If no location or elevation should be set, **NaN** can\\nbe used instead of specific value.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n\\n\\nThe value is cast to the type of the GTS value\\n\\n@param `gts` The Geo Time Series™ to fill\\n\\n@param `gtsList` The list of Geo Time Series™ to fill\\n\\n@param `result` The filled Geo Time Series™\\n\\n@param `resultList` The list of filled Geo Time Series™\\n\\n@param `data` The list of parameters (latitude, longitude, elevation, value)\\n\\n\",\"signature\":\"gts<GTS> data<LIST>  FILLVALUE  result<GTS>\\ngtsList<LIST<GTS>> data<LIST>  FILLVALUE  resultList<LIST<GTS>>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLVALUE\"},\"FILTER\":{\"description\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `FILTER` framework allows for advanced filtering using N-ary functions\\n(functions which accept N parameters).\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A single list containing only the selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `FILTER`.\\n\\n\",\"signature\":\"[ gtsList<LIST<GTS>> labels<LIST<STRING>> filter<FILTER> ]  FILTER  result<LIST<GTS>>\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILTER\"},\"FILTERBY\":{\"description\":\"The `FILTERBY` function selects elements of a list based on the boolean return value of a macro evaluated for each element.\\n\\n@param `macro` Macro used for filtering. This macro should consume the element of the list pushed on top of the stack and leave a boolean on the stack. If this boolean is `true`, the element will be retained.\\n\\n@param `list` List of elements to filter.\\n\\n@param `sublist` List with the selected elements from `list`.\\n\\n\",\"signature\":\"list<LIST> macro<MACRO>  FILTERBY  sublist<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"FILTERBY\"},\"FIND\":{\"description\":\"The `FIND` function finds Geo Time Series™ labels and attributes of GTS, not their values. It is the fastest way to read attributes of GTS. `FIND` asks only `directory` component of Warp&nbsp;10™, while [FETCH](/doc/FETCH) first ask `directory`, then ask `store` to read GTS values. \\n\\nSyntax is close to [FETCH](/doc/FETCH), without time boundaries or data point count.\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `data` List of fetched Geo Time Series™. These GTS does not contain any value.\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `gskip` Number of GTS to skip before returning results.\\n\\n@param `gcount` Maximum number of GTS to return.\\n\\n\",\"signature\":\"[ token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FIND  data<LIST<GTS>>\\n[ showuuid<BOOLEAN> token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FIND  data<LIST<GTS>>\\n{ gcount<LONG> gskip<LONG> showuuid<BOOLEAN> priority<LIST<STRING>> active.after<LONG> quiet.after<LONG> selectors<LIST<STRING>> selector<STRING> classSelector<STRING> labelsSelector<MAP> token<STRING>  } FIND  data<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIND\"},\"FINDSETS\":{\"description\":\"The `FINDSETS` function returns sets of values for the classes, labels and attributes of the Geo Time Series™ which matched the selection criteria.\\n\\nThose results can be used for example to update a UI with lists of possible values for labels when exploring a corpus of GTS.\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label names to exact match or regular expression (if the value starts with a *~*) for matching labels and attributes.\\n\\n@param `attributes` Map of attribute names to value list.\\n\\n@param `labels` Map of label names to value list.\\n\\n@param `classes` List of class names.\\n\\n\",\"signature\":\"[ token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FINDSETS  classes<LIST<STRING>> labels<MAP> attributes<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSETS\"},\"FINDSTATS\":{\"description\":\"The `FINDSTATS` function computes statistics on matching Geo Time Series™. The estimations are based on the use of [HyperLogLogPlus](https://en.wikipedia.org/wiki/HyperLogLog) estimators.\\n\\nThe function returns a map containing information about the matching Geo Time Series. The fields of the map are the following:\\n\\n| Key | Value |\\n|-----|-------|\\n| `gts.estimate` | Estimation of the number of matching Geo Time Series™ |\\n| `classes.estimate` | Estimation of the number of distinct class names |\\n| `labelnames.estimate` | Estimation of the number of distinct label names |\\n| `labelvalues.estimate` | Estimation of the number of distinct label values |\\n| `per.class.estimate` | If the number of matching classes is below the `directory.stats.class.maxcardinality`, this key will be associated with a map containing per class estimate of number of GTS |\\n| `per.label.value.estimate` | If the number of label names in the matching GTS is below `directory.stats.labels.maxcardinality`, this key will be associated with a map containing an estimation of distinct label values per label name |\\n| `error.rate` | This is the error rate of the estimators used for computing the estimations |\\n| `partial.results` | When accessing a sharded Directory, this will be set to `true` if only partial results were collected |\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `result` Map containing stats such as error rate or whether estimates on classes, gts, or labels.\\n\\n\",\"signature\":\"[ token<STRING> classSelector<STRING> labelsSelector<MAP> ]  FINDSTATS  result<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSTATS\"},\"FIRSTTICK\":{\"description\":\"The `FIRSTTICK` function returns the timestamp of the oldest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its first bucket.\\n\\nWhen applied to a list of GTS, `FIRSTTICK` will return the lowest first tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MAX_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` Oldest timestamp. If the GTS does not have values, **Long.MAX_VALUE** is pushed.\\n\\n\",\"signature\":\"gts<GTS>  FIRSTTICK  result<LONG>\\nlgts<LIST<GTS>>  FIRSTTICK  result<LONG>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIRSTTICK\"},\"FLATTEN\":{\"description\":\"The function `FLATTEN` inspects the top of the stack.\\n\\nIf it is a LIST of values,\\nit inspects each value and replaces each value which was a LIST with its content.\\n`FLATTEN` proceed recursively until all LISTs have been flattened.\\n\\nIf it is not a LIST, the function exits and let the stack in the same state.\\n\\n@param `input` Input is a list who may contains lists\\n\\n@param `notAList` An object which is not a list\\n\\n@param `output` Output list do not contains anymore nested lists\\n\\n\",\"signature\":\"input<LIST>  FLATTEN  output<LIST>\\nnotAList<ANY>  FLATTEN  notAList<ANY>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLATTEN\"},\"FLOAD\":{\"description\":\"The `FLOAD` function allows to read the content of a file on the local file system or in HDFS and output that content as a byte array.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `content` Content of the file.\\n\\n\",\"signature\":\"path<STRING>  FLOAD  content<BYTES>\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FLOAD\"},\"FLOATBITS->\":{\"description\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the 32 lower bits of the **LONG** value as the raw bits of a **FLOAT**.\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"signature\":\"input<LONG>  FLOATBITS->  result<DOUBLE>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"GZlEFKG1HKGIAIs\"},\"FLOOR\":{\"description\":\"The `FLOOR` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number smaller than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-down value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-down values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-down of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  FLOOR  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  FLOOR  lresult<LIST<DOUBLE>>\\ngts<GTS>  FLOOR  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLOOR\"},\"FLOORDIV\":{\"description\":\"The `FLOORDIV` function consumes two NUMBER values, convert them to LONGs and pushes back largest LONG value that is less than or equal to the algebraic quotient.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fDiv` The largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `lfDiv` List of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `gtsdividend` Numerical GTS of dividends\\n\\n@param `gtsdivisor` Numerical GTS of divisors\\n\\n@param `gtsfDiv` Numerical GTS of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n\",\"signature\":\"dividend<NUMBER> divisor<NUMBER>  FLOORDIV  fDiv<LONG>\\ndividend<NUMBER> ldivisor<LIST<NUMBER>>  FLOORDIV  lfDiv<LIST<LONG>>\\nldividend<LIST<NUMBER>> divisor<NUMBER>  FLOORDIV  lfDiv<LIST<LONG>>\\ndividend<NUMBER> gtsdivisor<GTS>  FLOORDIV  gtsfDiv<GTS>\\ngtsdividend<GTS> divisor<NUMBER>  FLOORDIV  gtsfDiv<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORDIV\"},\"FLOORMOD\":{\"description\":\"The `FLOORMOD` function consumes two NUMBER values, convert them to LONGs and pushes back the floor modulus which is x - (floorDiv(x, y) * y).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fMod` The floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `gtsdividend` Numerical GTS, each of the value being considered as dividends\\n\\n@param `gtsdivisor` Numerical GTS, each of the value being considered as divisors\\n\\n@param `lfMod` List of floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `gtsfMod` GTS of floor modulus x - (floorDiv(x, y) * y)\\n\\n\",\"signature\":\"dividend<NUMBER> divisor<NUMBER>  FLOORMOD  fMod<LONG>\\ndividend<NUMBER> ldivisor<LIST<NUMBER>>  FLOORMOD  lfMod<LIST<LONG>>\\nldividend<LIST<NUMBER>> divisor<NUMBER>  FLOORMOD  lfMod<LIST<LONG>>\\ndividend<NUMBER> gtsdivisor<GTS>  FLOORMOD  gtsfMod<GTS>\\ngtsdividend<GTS> divisor<NUMBER>  FLOORMOD  gtsfMod<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORMOD\"},\"FOR\":{\"description\":\"The `FOR` function implements a for loop. It takes three arguments from the stack: the initial and the final values of the loop index and a macro to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"initial<NUMBER> final<NUMBER> macro<MACRO>  FOR \\ninitial<NUMBER> final<NUMBER> macro<MACRO> index<BOOLEAN>  FOR \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOR\"},\"FOREACH\":{\"description\":\"The `FOREACH` function implements a for loop on a list or map.\\n\\nFor each iteration i on a list, the i-th element on the list is put on top of the stack, and the exec macro is then called.\\n\\nFor each iteration i on a map, the exec macro is called with the i-th value on top of the stack, and the i-th key just below on the stack.\\nYou can start your macro with `'value' STORE 'key' STORE`.\\n\\nSince release 2.1, `FOREACH` has the ability to iterate over Geo Time Series™ and GTS Encoders. When iterating over a GTS or Encoder, the macro is fed with a list of the form `[ tick lat lon elev value ]` where `lat`, `lon` and `elev` may be `NaN` if unset. In the case of an Encoder, `value` can be a byte array or a `BigDecimal` on top of `LONG`, `DOUBLE`, `STRING` or `BOOLEAN`.\\n\\nSince release 2.4.0, you can force FOREACH to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `exec` Macro to apply\\n\\n@param `list` List to iterate on\\n\\n@param `map` Map to iterate on\\n\\n@param `set` Set to iterate on\\n\\n@param `vector` Vector to iterate on\\n\\n@param `gts` GTS to iterate on\\n\\n@param `string` String to iterate on\\n\\n@param `encoder` GTSEncoder to iterate on\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"signature\":\"list<LIST> exec<MACRO>  FOREACH \\nmap<MAP> exec<MACRO>  FOREACH \\nset<SET> exec<MACRO>  FOREACH \\nvector<VLIST> exec<MACRO>  FOREACH \\nstring<STRING> exec<MACRO>  FOREACH \\ngts<GTS> exec<MACRO>  FOREACH \\nencoder<GTSENCODER> exec<MACRO>  FOREACH \\nlist<LIST> exec<MACRO> index<BOOLEAN>  FOREACH \\nmap<MAP> exec<MACRO> index<BOOLEAN>  FOREACH \\nset<SET> exec<MACRO> index<BOOLEAN>  FOREACH \\nvector<VLIST> exec<MACRO> index<BOOLEAN>  FOREACH \\nstring<STRING> exec<MACRO> index<BOOLEAN>  FOREACH \\ngts<GTS> exec<MACRO> index<BOOLEAN>  FOREACH \\nencoder<GTSENCODER> exec<MACRO> index<BOOLEAN>  FOREACH \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOREACH\"},\"FORGET\":{\"description\":\"Removes a symbol from the symbol table.      \\n\\n@param `symbol` Name of the symbol to remove.\\n\\n\",\"signature\":\"symbol<STRING>  FORGET \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORGET\"},\"FORSTEP\":{\"description\":\"The `FORSTEP` function implements for loop with an index step. It takes four arguments from the stack: the initial and the final values of the loop index,\\na macro step to evaluate after each iteration and an other one to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `step` Macro step to evaluate after each iteration, typically to compute index\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"initial<NUMBER> final<NUMBER> step<MACRO> macro<MACRO>  FORSTEP \\ninitial<NUMBER> final<NUMBER> step<MACRO> macro<MACRO> index<BOOLEAN>  FORSTEP \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORSTEP\"},\"FREAD\":{\"description\":\"The `FREAD` function reads a file line by line and passes each line (as a `STRING`) to the provided macro.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `macro` Macro to call for processing each line.\\n\\n\",\"signature\":\"macro<MACRO> path<STRING>  FREAD \",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FREAD\"},\"FROMBIN\":{\"description\":\"Converts the binary representation on top of the stack into the corresponding long.\\n\\n@param `input` Binary representation of a signed long, 64 characters max.\\n\\n@param `output` Signed long of input.\\n\\n\",\"signature\":\"input<STRING>  FROMBIN  output<LONG>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBIN\"},\"FROMBITS\":{\"description\":\"**This function is deprecated. Replace it in your code by the [`DOUBLEBITS->`](/doc/G3xKFZl4FZ_JJmoy) function.**\\n\\nConverts the **LONG** on top of the stack into a **DOUBLE** by considering it a raw bit representation.\\n\\n@param `input` Raw bit representation to convert\\n\\n@param `result` Converted value\\n\\n\",\"signature\":\"input<LONG>  FROMBITS  result<DOUBLE>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBITS\"},\"FROMHEX\":{\"description\":\"Converts an hexadecimal representation into a signed long. 64bits max.\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Signed long\\n\\n\",\"signature\":\"input<STRING>  FROMHEX  output<LONG>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMHEX\"},\"FSTORE\":{\"description\":\"The `FSTORE` function stores a `STRING` or `BYTES` object in a file, optionally overwriting any existing content. The file can be on the local file system or in HDFS.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `overwrite` Flag indicating whether or not to overwrite any existing content.\\n\\n@param `path` Path of the file to create.\\n\\n@param `string` `STRING` content to store in the file, will be encoded using `UTF-8`.\\n\\n@param `bytes` Byte array to store in the file.\\n\\n\",\"signature\":\"string<STRING> path<STRING> overwrite<BOOLEAN>  FSTORE \\nbytes<BYTES> path<STRING> overwrite<BOOLEAN>  FSTORE \",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FSTORE\"},\"FUNCREF\":{\"description\":\"The `FUNCREF` function returns the function for a given function name. If the function cannot be found, `FUNCREF` fails. This function looks through all defined functions: core, enabled extensions and defined functions with [`DEF`](/doc/DEF).\\n\\n@param `functionName` The name of the function\\n\\n@param `function` The function\\n\\n\",\"signature\":\"functionName<STRING>  FUNCREF  function<FUNCTION>\",\"tags\":[\"stack\"],\"since\":\"2.8.0\",\"OPB64name\":\"FUNCREF\"},\"FUNCTIONS\":{\"description\":\"FUNCTIONS returns a list of every functions available in your Warp 10 environnment, including native and extension functions.\\n\\nIt could be useful when coding your own extension to check your new functions are correctly registered.\\n\\n\\nFUNCTIONS allow anyone to discover new extensions you created on the platform, so it is deactivated by default.\\n\\nYou must add `warpscript.extension.inventory=io.warp10.script.ext.inventory.InventoryWarpScriptExtension` in your configuration file for this function to be available.\\n\\n@param `functions` List of Warp 10 functions available on this instance\\n\\n\",\"signature\":\" FUNCTIONS  functions<LIST<STRING>>\",\"tags\":[\"platform\",\"extensions\"],\"since\":\"1.2.16\",\"OPB64name\":\"FUNCTIONS\"},\"FUSE\":{\"description\":\"Fuses Geo Time Series™ chunks. The fusion process attempts to keep the bucketization parameters if all chunks are bucketized with compatible `bucketspan` and `lastbucket` values.\\n\\nAll chunks must be of the same type.\\n\\nThe fused GTS will have the common class name of the chunks or no class name if some chunks have a different class name. The labels will be those common to all chunks, so when fusing chunks created with [`CHUNK`](/doc/CHUNK), the chunk id will be dropped.\\n\\n@param `chunks` List of Geo Time Series™ to fuse.\\n\\n@param `gts` Geo Time Series™ resulting from the fusion of `chunk`.\\n\\n\",\"signature\":\"chunks<LIST<GTS>>  FUSE  gts<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FUSE\"},\"GEO.BUFFER\":{\"description\":\"The `GEO.BUFFER` function allows to create [*buffer*](https://en.wikipedia.org/wiki/Buffer_(GIS)) **GEOSHAPE** objects. The function takes a `MAP` instance as input. This map can contain the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `dist` | Distance of the buffer, as a central angle expressed in degrees. |\\n| `mdist` | Distance of the buffer expressed in meters. This key is only taken into account if `dist` is not specified. |\\n| `cap` | The end cap style to consider, use `SQUARE`, `FLAT` or `ROUND` (default). |\\n| `join` | The join style to use, use `BEVEL`, `MITRE` or `ROUND` (default). |\\n| `limit` | The mitre limit to use. Defaults to 5.0. |\\n| `segments` | Number of segments to use per quadrant, defaults to 8. |\\n| `singlesided` | Set to `true` to compute a single sided buffer. If `true`, positive distance will indicate left-hand side and negative distance right-hand side. End cap is ignored for single sided buffers. |\\n| `wkb` | Byte array containing a [WKB](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary) definition of a geographic area. |\\n| `wkt` | String containing a [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) definition of a geographic area. |\\n| `geojson` | String containing a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) definition of a geographic area. |\\n\\nIf a geographic area is defined, only one of `wkb`, `wkt` or `geojson` may be specified. The output of the function is a new definition of a geographic area with the buffer added to the original definition.\\n\\nIf no geographic area is defined, `GEO.BUFFER` will define a buffer which will be used by the next call to either [`GEO.WKT`](/doc/GEO.WKT), [`GEO.WKB`](/doc/GEO.WKB) or [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `params` Parameter map containing keys as defined above.\\n\\n@param `wkb` Area definition with the buffer added, if `params` had a value for key `wkb`.\\n\\n@param `area` Area definition with the buffer added, in WKT or GeoJSON depending on the presence of key `wkt` or `geojson` in `params`.\\n\\n\",\"signature\":\"params<MAP>  GEO.BUFFER  wkb<BYTES>\\nparams<MAP>  GEO.BUFFER  area<STRING>\\nparams<MAP>  GEO.BUFFER \",\"tags\":[\"geo\"],\"since\":\"2.7.0\",\"OPB64name\":\"GEO.BUFFER\"},\"GEO.COVER\":{\"description\":\"The `GEO.COVER` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* in which the input Geo Time Series™ or GTS Encoder had datapoints.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"signature\":\"gts<GTS> resolution<LONG>  GEO.COVER  geoshape<GEOSHAPE>\\nencoder<GTSENCODER> resolution<LONG>  GEO.COVER  geoshape<GEOSHAPE>\\nlist<LIST> resolution<LONG>  GEO.COVER  geoshapes<LIST<GEOSHAPE>>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER\"},\"GEO.COVER.RL\":{\"description\":\"The `GEO.COVER.RL` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* which cover the path of an input Geo Time Series™ or GTS Encoder. The path is considered to follow [rhumb lines](https://en.wikipedia.org/wiki/Rhumb_line), hence the function suffix `.RL`.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"signature\":\"gts<GTS> resolution<LONG>  GEO.COVER.RL  geoshape<GEOSHAPE>\\nencoder<GTSENCODER> resolution<LONG>  GEO.COVER.RL  geoshape<GEOSHAPE>\\nlist<LIST> resolution<LONG>  GEO.COVER.RL  geoshapes<LIST<GEOSHAPE>>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER.RL\"},\"GEO.DIFFERENCE\":{\"description\":\"The `GEO.DIFFERENCE` function computes the difference between two GEOSHAPE. The resulting GEOSHAPE instance contains cells which cover the part of the first GEOSHAPE which is not in the second. If you need to have cells up to a certain resolution, you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the result.\\n\\n@param `shapeA` GEOSHAPE instance from which to subtract the second shape.\\n\\n@param `shapeB` GEOSHAPE to subtract from 'shapeA'.\\n\\n@param `shape` GEOSHAPE containing 'shapeA' minus 'shapeB'.\\n\\n\",\"signature\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.DIFFERENCE  shape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.DIFFERENCE\"},\"GEO.GML\":{\"description\":\"The `GEO.GML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nGML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.GML  geoshape<GEOSHAPE>\\nGML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.GML  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML\"},\"GEO.GML.UNIFORM\":{\"description\":\"The `GEO.GML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the GML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.GML`](doc/GEO.GML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"GML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.GML.UNIFORM  geoshape<GEOSHAPE>\\nGML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.GML.UNIFORM  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML.UNIFORM\"},\"GEO.INTERSECTION\":{\"description\":\"The `GEO.INTERSECTION` function computes the intersection of two GEOSHAPE instances. The intersection process will produce a GEOSHAPE whose cells are common to the two initial shapes. The common cells will be of various resolutions, depending on the resolutions of the cells from the initial shapes. If you need the resulting shape to contain cells up to a specific resolution, you can call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) either on the result or on the initial shapes.\\n\\n@param `shapeA` First GEOSHAPE instance.\\n\\n@param `shapeB` Second GEOSHAPE instance.\\n\\n@param `shapes` GEOSHAPE instances.\\n\\n@param `shape` Geographical area (GEOSHAPE) resulting from the intersection of the given shapes.\\n\\n\",\"signature\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.INTERSECTION  shape<GEOSHAPE>\\nshapes<LIST<GEOSHAPE>>  GEO.INTERSECTION  shape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTION\"},\"GEO.INTERSECTS\":{\"description\":\"The `GEO.INTERSECTS` function checks if a Geo Time Series or each GTS from a list has at least one data point with a position inside a given geographical area. Since `2.7.1`, the function can also check if two `GEOSHAPE` instances intersect.\\n\\n@param `shapeA` First `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shapeB` Second `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shape` Instance of GEOSHAPE containing the area which the Geo Time Series must intersect.\\n\\n@param `gts` Single instance of Geo Time Series.\\n\\n@param `lgts` List of Geo Time Series.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series had at least one datapoint in 'shape' or if the two shapes intersect.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had at least one datapoint in 'shape'.\\n\\n\",\"signature\":\"gts<GTS> shape<GEOSHAPE>  GEO.INTERSECTS  result<BOOLEAN>\\nlgts<LIST<GTS>> shape<GEOSHAPE>  GEO.INTERSECTS  results<LIST<BOOLEAN>>\\nshapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.INTERSECTS  result<BOOLEAN>\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTS\"},\"GEO.JSON\":{\"description\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GeoJSON<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.JSON  geoshape<GEOSHAPE>\\nGeoJSON<STRING> resolution<LONG> inside<BOOLEAN>  GEO.JSON  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.2.9\",\"OPB64name\":\"GEO.JSON\"},\"GEO.JSON.UNIFORM\":{\"description\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.JSON`](doc/GEO.JSON), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GeoJSON<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.JSON.UNIFORM  geoshape<GEOSHAPE>\\nGeoJSON<STRING> resolution<LONG> inside<BOOLEAN>  GEO.JSON.UNIFORM  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.JSON.UNIFORM\"},\"GEO.KML\":{\"description\":\"The `GEO.KML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nKML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"KML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.KML  geoshape<GEOSHAPE>\\nKML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.KML  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML\"},\"GEO.KML.UNIFORM\":{\"description\":\"The `GEO.KML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the KML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.KML`](doc/GEO.KML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"KML<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.KML.UNIFORM  geoshape<GEOSHAPE>\\nKML<STRING> resolution<LONG> inside<BOOLEAN>  GEO.KML.UNIFORM  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML.UNIFORM\"},\"GEO.NORMALIZE\":{\"description\":\"The `GEO.NORMALIZE` function ensures that the intersection of two **GEOSHAPE**s is present in both as an identical set of cells.\\n\\n@param `shapeA` The first GEOSHAPE to normalize.\\n\\n@param `shapeB` The second GEOSHAPE to normalize.\\n\\n@param `normalizedA` A normalized copy of the first GEOSHAPE.\\n\\n@param `normalizedB` A normalized copy of the second GEOSHAPE.\\n\\n\",\"signature\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.NORMALIZE  normalizedA<GEOSHAPE> normalizedB<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEO.NORMALIZE\"},\"GEO.OPTIMIZE\":{\"description\":\"The `GEO.OPTIMIZE` function optimizes a GEOSHAPE instance by modifying its cells to either limit the finest resolution present in the shape or reduce the number of cells by merging cells which cover a whole cell at the coarser resolution.\\n\\n@param `shape` GEOSHAPE instance to optimize.\\n\\n@param `resolution` Finest resolution acceptable (even number from 2 to 32) or 0 to reduce the number of cells.\\n\\n@param `optimized` Optimized GEOSHAPE instance\\n\\n\",\"signature\":\"shape<GEOSHAPE> resolution<LONG>  GEO.OPTIMIZE  optimized<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.OPTIMIZE\"},\"GEO.REGEXP\":{\"description\":\"The `GEO.REGEXP` function converts a GEOSHAPE into a regular expression to select hexadecimal [HHCode](https://en.wikipedia.org/wiki/HHCode) STRINGs which are included in the GEOSHAPE.\\n\\n@param `shape` An instance of GEOSHAPE.\\n\\n@param `regexp` A regular expression for matching HHCodes covered by 'shape'.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  GEO.REGEXP  regexp<STRING>\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GEO.REGEXP\"},\"GEO.UNION\":{\"description\":\"The `GEO.UNION` function computes a GEOSHAPE which is the union of two other shapes. The resulting shape will have cells covering the two original shapes. If you need to have cells up to a certain resolution you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the resulting shape.\\n\\n@param `shapeA` First GEOSHAPE instance to merge.\\n\\n@param `shapeB` Second GEOSHAPE instance to merge.\\n\\n@param `shapes` GEOSHAPE instances to merge.\\n\\n@param `shape` Resulting GEOSHAPE which is the union of the given shapes.\\n\\n\",\"signature\":\"shapeA<GEOSHAPE> shapeB<GEOSHAPE>  GEO.UNION  shape<GEOSHAPE>\\nshapes<LIST<GEOSHAPE>>  GEO.UNION  shape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.UNION\"},\"GEO.WITHIN\":{\"description\":\"The `GEO.WITHIN` function checks whether a Geo Time Series™ or each GTS from a list have all its datapoints with a location inside a given geographical area.\\n\\n@param `shape` Instance of GEOSHAPE containing the area inside which the Geo Time Series™ must be contained.\\n\\n@param `gts` Single instance of Geo Time Series™.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series™ had all its datapoints with a location inside 'shape'.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had all its datapoints with a location inside 'shape'.\\n\\n\",\"signature\":\"gts<GTS> shape<GEOSHAPE>  GEO.WITHIN  result<BOOLEAN>\\nlgts<LIST<GTS>> shape<GEOSHAPE>  GEO.WITHIN  results<LIST<BOOLEAN>>\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WITHIN\"},\"GEO.WKB\":{\"description\":\"The `GEO.WKB` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"WKB<BYTES> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKB  geoshape<GEOSHAPE>\\nWKB<BYTES> resolution<LONG> inside<BOOLEAN>  GEO.WKB  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB\"},\"GEO.WKB.UNIFORM\":{\"description\":\"The `GEO.WKB.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKB`](doc/GEO.WKB), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"WKB<BYTES> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKB.UNIFORM  geoshape<GEOSHAPE>\\nWKB<BYTES> resolution<LONG> inside<BOOLEAN>  GEO.WKB.UNIFORM  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB.UNIFORM\"},\"GEO.WKT\":{\"description\":\"The `GEO.WKT` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"WKT<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKT  geoshape<GEOSHAPE>\\nWKT<STRING> resolution<LONG> inside<BOOLEAN>  GEO.WKT  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WKT\"},\"GEO.WKT.UNIFORM\":{\"description\":\"The `GEO.WKT.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKT`](doc/GEO.WKT), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"WKT<STRING> percentage<DOUBLE> inside<BOOLEAN>  GEO.WKT.UNIFORM  geoshape<GEOSHAPE>\\nWKT<STRING> resolution<LONG> inside<BOOLEAN>  GEO.WKT.UNIFORM  geoshape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.2.11\",\"OPB64name\":\"GEO.WKT.UNIFORM\"},\"GEOCELL->\":{\"description\":\"The `GEOCELL->` function converts a **LONG** geocell to a **STRING** HHCode prefix. The resulting string length is half the resolution of the geocell.\\n\\nThis function cannot convert to **BYTES** because this representation is limited to resolutions multiple of 4.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `geocell` A geocell.\\n\\n@param `hhPrefix` A HHCode prefix representing the given cell.\\n\\n\",\"signature\":\"geocell<LONG>  GEOCELL->  hhPrefix<STRING>\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEFoKBI1oy\"},\"GEOHASH->\":{\"description\":\"The `GEOHASH->` converts a [Geohash](https://en.wikipedia.org/wiki/Geohash), exposing the latitude and longitude it contains, or transforms a list of Geohashes into a `GEOSHAPE`.\\n\\n@param `geohash` Geohash to unpack.\\n\\n@param `geohashes` List of Geohashes defining a geographical area.\\n\\n@param `lat` Unpacked latitude.\\n\\n@param `lon` Unpacked longitude.\\n\\n@param `toHHCodeString` Set to `true` to convert the GeoHash to a HHCode STRING or to `false` to convert it to a LONG HHCode instead of extracting its latitude and longitude.\\n\\n@param `hhcode` The HHCode for `geohash`, as a LONG or STRING.\\n\\n@param `shape` Warp 10 `GEOSHAPE` covering the same geographic area as the Geohashes in `geohashes`.\\n\\n\",\"signature\":\"geohash<STRING>  GEOHASH->  lat<DOUBLE> lon<DOUBLE>\\ngeohash<STRING> toHHCodeString<BOOLEAN>  GEOHASH->  hhcode<ANY>\\ngeohashes<LIST<STRING>>  GEOHASH->  shape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GoKEH34IH1oy\"},\"GEOPACK\":{\"description\":\"The `GEOPACK` function takes a **GEOSHAPE** and packs it into a String.\\n\\n@param `shape` The GEOSHAPE instance to pack.\\n\\n@param `packed` The packed string representation of the GEOSHAPE.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  GEOPACK  packed<STRING>\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOPACK\"},\"GEOSHAPE->\":{\"description\":\"The `GEOSHAPE->` function converts **GEOSHAPE** to a list of **LONG** geocells or **STRING** HHCode prefixes. Conversion to list of **BYTES** is not supported, because this representation only supports resolution multiple of 4.\\n\\n@param `geoshape` The geoshape to get the cells from.\\n\\n@param `toString` Whether to convert the cells to **STRING** HHCode prefix (true) or geocells (false).\\n\\n@param `geocells` List of geocells.\\n\\n@param `geocellsOrHHPrefixes` List of **LONG** geocells or **STRING** HHCode prefixes.\\n\\n\",\"signature\":\"geoshape<GEOSHAPE>  GEOSHAPE->  geocells<LIST<LONG>>\\ngeoshape<GEOSHAPE> toString<BOOLEAN>  GEOSHAPE->  geocellsOrHHPrefixes<LIST<ANY>>\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEJoW0J3JhEV\"},\"GEOSHIFT\":{\"description\":\"`GEOSHIFT` functions shifts a geoshape on the earth. It is able to safely overlap the poles or the 180th meridian.\\n- Longitude shift keeps distances.\\n- Latitude shift keeps angles, not distances.\\n- When doing latitude shift, you can specify a meridian to shift along this meridian. It means a positive shift became a negative shift behind this meridian +/- 90°.\\n\\nSet precision parameter to zero for safe shifting operation. See [`GEO.WKT`](/doc/GEO.WKT) for precision encoding.\\n\\nUse [`->GEOJSON`](/doc/AIt6GJx9JoxD) to visualize shapes and the results. GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `lon` degrees of longitude to shift (-360 to 360).\\n\\n@param `lat` degrees of latitude to shift (-180 to 180).\\n\\n@param `precision` even number from 0 to 30. Set to 0 for automatic resolution. Force to another value if you know the input resolution to be finer and you want a coarser resolution.\\n\\n@param `shape` The input geoshape.\\n\\n@param `output` The shifted geoshape.\\n\\n@param `meridian` When doing latitude shift, you can specify a meridian to shift along this meridian. (-180 to 180)\\n\\n\",\"signature\":\"shape<GEOSHAPE> lat<DOUBLE> lon<DOUBLE> precision<LONG>  GEOSHIFT  output<GEOSHAPE>\\nshape<GEOSHAPE> meridian<DOUBLE> lat<DOUBLE> lon<DOUBLE> precision<LONG>  GEOSHIFT  output<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSHIFT\"},\"GEOSPLIT\":{\"description\":\"The `GEOSPLIT` function splits a **GEOSHAPE** into a set of **GEOSHAPE**s which have no adjacent cells (each shape is a connected space).\\n\\nAdjacent cells share part of their side. Adjacency is not provided by corners and cells on each side of the international date line are not considered adjacent either.\\n\\n@param `shape` The GEOSHAPE instance to split.\\n\\n@param `subshapes` The shapes whose union form `shape` and which each form a connected space.\\n\\n\",\"signature\":\"shape<GEOSHAPE>  GEOSPLIT  subshapes<LIST<GEOSHAPE>>\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSPLIT\"},\"GEOUNPACK\":{\"description\":\"The `GEOUNPACK` function unpacks a GEOSHAPE previously packed using [`GEOPACK`](/doc/GEOPACK).\\n\\n@param `packed` A packed string representation of a GEOSHAPE.\\n\\n@param `packedbytes` A byte array representation of a GEOSHAPE.\\n\\n@param `shape` The decoded instance of GEOSHAPE.\\n\\n\",\"signature\":\"packed<STRING>  GEOUNPACK  shape<GEOSHAPE>\\npackedbytes<BYTES>  GEOUNPACK  shape<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOUNPACK\"},\"GET\":{\"description\":\"Retreive a value in a **MAP** or a **LIST**.\\n\\nThe `GET` function consumes on the top of the stack a list, a byte array, or a map, and the index (or the key), \\nthen put the result on the stack. \\n\\nIf key is not found, it returns NULL on the stack.\\n\\nIf index is out of bound, `GET` raises an error.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, `GET` can operate recursively on nested lists. In this case, the index is a list.\\n\\nSince 2.7.3, GET can operate on a **STRING** to get a single character, as a **STRING**. The recursive version can also work on any type supported by `GET` as long as the top element is a **LIST**.\\n\\n@param `map` The input MAP.\\n\\n@param `key` Depending on map construction, could be a number, a string, a list, another map, a GTS, a boolean.\\n\\n@param `mapvalue` The value for the requested key. If key do not exists in map, returns NULL\\n\\n@param `index` The index number in the list. Valid values in [-size; size-1]\\n\\n@param `list` The input LIST.\\n\\n@param `value` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `array` Byte array from which to read a byte.\\n\\n@param `bytevalue` The value of the byte, always unsigned (from 0 to 255).\\n\\n@param `str` A string from which a character should be taken.\\n\\n@param `character` The character at the given index.\\n\\n\",\"signature\":\"map<MAP> key<ANY>  GET  mapvalue<ANY>\\nlist<LIST> index<LONG>  GET  value<ANY>\\nlist<LIST> index<LIST>  GET  value<ANY>\\narray<BYTES> index<LONG>  GET  bytevalue<LONG>\\nstr<STRING> index<LONG>  GET  character<STRING>\",\"tags\":[\"lists\",\"maps\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"GET\"},\"GETEXPONENT\":{\"description\":\"The `GETEXPONENT` function consumes a DOUBLE, a LONG casted as a DOUBLE or a COUNTER caster as DOUBLE and pushes back the unbiased exponent used in the representation of this DOUBLE.\\n\\n@param `n` The decimal value to get the exponent from, will be converted to DOUBLE if not already the case.\\n\\n@param `exponent` the unbiased exponent of the argument\\n\\n\",\"signature\":\"n<NUMBER>  GETEXPONENT  exponent<LONG>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"GETEXPONENT\"},\"GETHOOK\":{\"description\":\"Extracts the macro associated with a token hook and pushes it onto the stack wrapped as a secure script.\\n\\nIf the token does not contain the given hook, an empty macro will be wrapped.\\n\\n@param `hook` Name of the hook to extract from the token.\\n\\n@param `token` Read token from which to extract the hook.\\n\\n@param `secure` Hook macro wrapped in a secure script.\\n\\n\",\"signature\":\"token<STRING> hook<STRING>  GETHOOK  secure<STRING>\",\"tags\":[\"platform\"],\"since\":\"1.0.8\",\"OPB64name\":\"GETHOOK\"},\"GETSECTION\":{\"description\":\"The `GETSECTION` function pushes onto the stack the name of the current section.\\n\\n@param `section` Name of the current section.\\n\\n\",\"signature\":\" GETSECTION  section<STRING>\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"GETSECTION\"},\"GITFIND\":{\"description\":\"The `GITFIND` function identifies files which match a provided regular expression from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `regexp` Regular expression that the relative pathes must match to be selected.\\n\\n@param `files` List of relative pathes matching `regexp`.\\n\\n\",\"signature\":\"{ regexp<STRING> repo<STRING>  } GITFIND  files<LIST<STRING>>\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITFIND\"},\"GITLOAD\":{\"description\":\"The `GITLOAD` function retrieves content stored in a git repository accessible by the extension. The load operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `content` Byte array containing the content of `path` or `NULL` if it was not found.\\n\\n\",\"signature\":\"{ rev<STRING> path<STRING> repo<STRING>  } GITLOAD  content<BYTES>\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOAD\"},\"GITLOG\":{\"description\":\"The `GITLOG` function retrieves log entries for the given pathes. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\nThe log entries returned are maps with the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `rev` | The git revision string for the entry. |\\n| `type` | The type of entry. |\\n| `message` | The message associated with the entry. |\\n| `author.name` | The name of the author of the change. |\\n| `author.email` | The email address of the author of the change. |\\n| `author.timestamp` | The timestamp of the change, expressed in your platform time units. |\\n| `committer.name` | The name of the committer of the change. |\\n| `committer.email` | The email address of the committer of the change. |\\n| `committer.timestamp` | The timestamp of the commit. |\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `count` Optional maximum number of log entries to return.\\n\\n@param `skip` Optional number of log entries to skip before returning entries.\\n\\n\",\"signature\":\"{ skip<LONG> count<LONG> path<STRING> repo<STRING>  } GITLOG \",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOG\"},\"GITRM\":{\"description\":\"The `GITRM` removes files from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `message` Commit message for the deletion operation.\\n\\n\",\"signature\":\"{ path<STRING> repo<STRING> message<STRING>  } GITRM \",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITRM\"},\"GITSTORE\":{\"description\":\"The `GITSTORE` function stores some content in a file in a git repository accessible by the extension. The store operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `message` The commit message to associated with the file creation or modification.\\n\\n@param `content` The `STRING` or `BYTES` content to store under `path` in the repository. If `content` is of type `STRING`, the `UTF-8` charset will be used for converting it to `BYTES`.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `workdir` If set to `false`, the file at `path` will be removed from the working directory after the commit.\\n\\n@param `rev` Revision string of the commit.\\n\\n\",\"signature\":\"{ workdir<BOOLEAN> path<STRING> repo<STRING> content<STRING> message<STRING>  } GITSTORE  rev<STRING>\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITSTORE\"},\"GITTAG\":{\"description\":\"The `GITTAG` function tags a git repository accessible by the extension. The tag operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `message` Message to attach to the annotated tag.\\n\\n@param `tag` Name of the tag to attach.\\n\\n@param `force` Flag indicating whether or not to force the tag if it already exists. Defaults to false.\\n\\n@param `ref` Name of the created reference.\\n\\n\",\"signature\":\"{ message<STRING> force<BOOLEAN> tag<STRING> rev<STRING> repo<STRING>  } GITTAG  ref<STRING>\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITTAG\"},\"GOLDWRAP\":{\"description\":\"The `GOLDWRAP` function wraps a Geo Time Series™ or a GTS Encoder in a deterministic way, by sorting on timestamps but also on values, locations and elevations.\\n\\nThis version of a `WRAP` like function is meant to create a *gold standard* blob from its input. In order to ensure reproducibility of the processs, attributes should be dropped prior to calling `GOLDWRAP`.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `wrap` Wrapped Geo Time Series™ instance to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders to wrap.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  GOLDWRAP  wrapped<BYTES>\\ngts<GTS>  GOLDWRAP  wrapped<BYTES>\\nwrap<BYTES>  GOLDWRAP  wrapped<BYTES>\\nlist<LIST<GTS>>  GOLDWRAP  lwrapped<LIST<BYTES>>\\nlist<LIST<GTSENCODER>>  GOLDWRAP  lwrapped<LIST<BYTES>>\\nlist<LIST<BYTES>>  GOLDWRAP  lwrapped<LIST<BYTES>>\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"GOLDWRAP\"},\"GOST\":{\"description\":\"The `GOST` function digests a byte array on the stack with the cryptographic hash function [GOST](https://en.wikipedia.org/wiki/GOST_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  GOST  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"GOST\"},\"GROUPBY\":{\"description\":\"The `GROUPBY` function groups the elements of a list according to the value returned by a macro.\\n\\n@param `macro` Macro used for grouping, consumes an element off the stack and produces a value on the stack.\\n\\n@param `list` List of elements to group.\\n\\n@param `grouped` List of groups, each group is a list whose first element is the group key and whose second element is the sublist of `list` for which `macro` produced the same value.\\n\\n\",\"signature\":\"list<LIST> macro<MACRO>  GROUPBY  grouped<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"GROUPBY\"},\"GRUBBSTEST\":{\"description\":\"The `GRUBBSTEST` function detects an outlier in a GTS (or a LIST of GTS), by applying a \\n[Grubbs’](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h1.htm) test.\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nIt tests whether there is exactly a single outlier in a GTS or not. For an iterative version which can detect multiple outliers, use instead\\n[`ESDTEST`](/doc/ESDTEST).\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> ### Reference \\n> Grubbs, Frank (February 1969). “Procedures for Detecting Outlying Observations in Samples”. Technometrics (Technometrics, Vol. 11, No. 1).\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"signature\":\"gts<GTS> mad<BOOLEAN> alpha<DOUBLE>  GRUBBSTEST  result<LIST<LONG>>\\ngts<GTS> mad<BOOLEAN>  GRUBBSTEST  result<LIST<LONG>>\\ngtsList<LIST<GTS>> mad<BOOLEAN> alpha<DOUBLE>  GRUBBSTEST  resultList<LIST>\\ngtsList<LIST<GTS>> mad<BOOLEAN>  GRUBBSTEST  resultList<LIST<LIST<LONG>>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"GRUBBSTEST\"},\"GTSHHCODE->\":{\"description\":\"The `GTSHHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude. This function is very similar to [`HHCODE->`](/doc/H3W2IoG4AIs) except that when given the internal value used by Geo Time Series™ for a missing location it pushes back `NaN NaN`.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"signature\":\"hhcode<LONG>  GTSHHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<STRING>  GTSHHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<BYTES>  GTSHHCODE->  lat<DOUBLE> lon<DOUBLE>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GpGIH3W2IoG4AIs\"},\"GUARD\":{\"description\":\"The `GUARD` function executes a macro, like [EVAL](/doc/EVAL), while ensuring sensitive information is protected. This is achieved by clearing part or all the stack, symbols and registers.\\n\\n@param `symbols` List of symbols to be cleared after the execution of the macro, whether it fails or succeeds.\\n\\n@param `hide` Number of level to hide before the macro execution. If the macro fails, the stack is cleared and hidden levels are set visible again. See [HIDE](/doc/HIDE) and [SHOW](/doc/SHOW) for more explanation on accepted parameters.\\n\\n@param `macro` Macro to be executed.\\n\\n@param `context` Context to be restored after the execution of the macro, whether it fails or succeeds.\\n\\n\",\"signature\":\"macro<MACRO> symbols<LIST>  GUARD \\nmacro<MACRO> symbols<LIST> hide<LONG>  GUARD \\nmacro<MACRO> context<CONTEXT>  GUARD \\nmacro<MACRO> context<CONTEXT> hide<LONG>  GUARD \",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"GUARD\"},\"GZIP\":{\"description\":\"The `GZIP` function compresses a STRING or a byte array using the [gzip](https://en.wikipedia.org/wiki/Gzip) algorithm. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"signature\":\"string<STRING>  GZIP  compressed<BYTES>\\nbytes<BYTES>  GZIP  compressed<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"GZIP\"},\"HASH\":{\"description\":\"Computes a 64 bits hash of the string or byte array on top of the stack.\\n\\n@param `str` String to hash\\n\\n@param `bytes` Bytes to hash\\n\\n@param `result` 64bit hash\\n\\n\",\"signature\":\"str<STRING>  HASH  result<LONG>\\nbytes<BYTES>  HASH  result<LONG>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"HASH\"},\"HAVERSINE\":{\"description\":\"The `HAVERSINE` function consumes two coordinates and pushes back a **DOUBLE** [great-circle distance](https://en.wikipedia.org/wiki/Great-circle_distance) in meters.\\n\\n@param `p2_longitude` Point 2 longitude.\\n\\n@param `p2_latitude` Point 2 latitude.\\n\\n@param `p1_longitude` Point 1 longitude.\\n\\n@param `p1_latitude` Point 1 latitude.\\n\\n@param `haversineDistance` Great circle distance using the haversine function.\\n\\n\",\"signature\":\"p1_latitude<NUMBER> p1_longitude<NUMBER> p2_latitude<NUMBER> p2_longitude<NUMBER>  HAVERSINE  haversineDistance<DOUBLE>\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"HAVERSINE\"},\"HEADER\":{\"description\":\"The `HEADER` function allows you to set custom headers which should be returned in the HTTP response. This obviously works only for the `/exec` Warp 10 endpoint.\\n\\n@param `name` Name of HTTP header to return, MUST start with `X-`, *i.e.* be a custom header.\\n\\n@param `value` Value to return for the `name` header. If `NULL`, the specified header is removed from the list of headers to return.\\n\\n\",\"signature\":\"name<STRING> value<STRING>  HEADER \",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"HEADER\"},\"HEX->\":{\"description\":\"Converts a hexadecimal string representation into a bytes array.\\nBytes array cannot be represented on the stack.\\n\\n@param `input` A valid hexadecimal string.\\n\\n@param `output` Bytes Array from input. Seen as null on the stack.\\n\\n\",\"signature\":\"input<STRING>  HEX->  output<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H3KNAIs\"},\"HEXTOB64\":{\"description\":\"Decodes the hex encoded content on top of the stack and \\nimmediately re-encode it in base64. This enables you to \\nconvert encoded content which would not be valid UTF-8 encoding \\nfrom hexadecimal to base64.      \\n\\n@param `input` A valid hexadecimal string\\n\\n@param `output` Base64 representation of input\\n\\n\",\"signature\":\"input<STRING>  HEXTOB64  output<STRING>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOB64\"},\"HEXTOBIN\":{\"description\":\"Converts a string representing a hexadecimal number into a string representing a binary number.\\n\\nThe `HEXTOBIN` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from hexadecimal to binary.\\n\\n@param `input` The string representing a hexadecimal number\\n\\n@param `output` The string representing a binary number\\n\\n\",\"signature\":\"input<STRING>  HEXTOBIN  output<STRING>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOBIN\"},\"HFCAT\":{\"description\":\"The `HFCAT` function creates catalog files for a History File Store. The files are created in the root directory of the History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfcat` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to catalog.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfcat` capability.\\n\\n@param `macro` Optional macro which will be called with each matched `GTS`. The macro can modify the attributes and return a `GTS` or an `ENCODER` or not return anything to ignore the GTS.\\n\\n@param `token` Optional token to use for retrieving GTS.\\n\\n@param `selector` Selector to match Geo Time Series, syntax is `class{labels}`.\\n\\n@param `hfcat.info` Optional name of the catalog *info* file, defaults to `hfcat.info`. If the name ends with `.gz`, the content will be gzipped.\\n\\n@param `hfcat.gts` Optional name of the catalog *gts* file, defaults to `hfcat.gts`. If the name ends with `.gz`, the content will be gzipped.\\n\\n\",\"signature\":\"{ hfcat.gts<STRING> hfcat.info<STRING> selector<STRING> token<STRING> macro<MACRO> store<STRING> secret<STRING>  } HFCAT \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCAT\"},\"HFCLOSE\":{\"description\":\"The `HFCLOSE` function closes a History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfclose` capability by setting its value to a regular expression matching the name of the accessible stores.\\n\\n@param `store` Name of History File Store to close.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfclose` capability.\\n\\n\",\"signature\":\"store<STRING> secret<STRING>  HFCLOSE \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCLOSE\"},\"HFDUMP\":{\"description\":\"The `HFDUMP` function produces a HFile from Geo Time Series data. The function produces a file in the directory from which the Warp 10 instance was launched, unless the configuration key `hfdump.dir` was set in which case the file will be created in this directory. The function will not overwrite an existing file.\\n\\nIf capability `hfdump` is set, its value will be treated as the root directory in which the file will be created.\\n\\nOn top of the input parameters described below, the `HFDUMP` function also supports the parameters of the [`FETCH`](https://warp10.io/doc/FETCH) function with the exclusion of `ttl`, `wtimestamp`, `type`, `typeattr`, `gts`, `merge`, `priority` and `selectors`.\\n\\nThe function will return a MAP containing various information about the file that was just created. This information, among with others, are also stored in the HFile and in the accompanying `.info` file.\\n\\nThe list of GTS included in the HFile are stored in the companion `.gts` file.\\n\\n@param `secret` Secret configured in `hfdump.secret`. The selector will not be modified with extra `.producer`, `.owner` or `.app` label selectors. This parameter is ignored if `token` is set. Secret is not checked if the `hfdump` capability is set.\\n\\n@param `token` Token to use for matching Geo Time Series, if set then `secret` is ignored.\\n\\n@param `path` Path to the file to create. Only the last part of `path` is considered, relative to either `hfdump.dir`, the launch directory or the path specified in capability `hfdump`.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `format` Format of the produced wrappers, either `WRAPPER` or `ZWRAPPER`. Defaults to `WRAPPER`.\\n\\n@param `compress` HFile compression to use, `NONE` and `GZ` (the default) are always supported, `SNAPPY`, `LZ4` and `LZO` may be supported if the required libraries are in the classpath.\\n\\n@param `blocksize` HFile block size in bytes, defaults to 65536.\\n\\n@param `keepempty` Flag indicating whether or not Geo Time Series with no data points should be included in the target file. Doing so can be useful to create a single file that `HFINDEX` can use for populating the Directory.\\n\\n@param `checksums` Flag indicating whether or not write checksums should be output in a companion file.\\n\\n@param `macro` Macro called for each GTS Encoder to store in the file. The macro can transform the `ENCODER` prior to storing, for example to perform a [RANGECOMPACT](https://warp10.io/doc/RANGECOMPACT) or any other transformation. Class name and labels modifications will be ignored. The macro must return an `ENCODER` or a `GTS`.\\n\\n@param `infos` Map with information related to the produced file.\\n\\n@param `catalog` Flag indicating whether or not to generate the `.info` and `.gts` files alongside the `.hfile`. Defaults to `true`.\\n\\n@param `gzipinfo` Flag indicating whether or not the `.info` file should be compressed (default).\\n\\n@param `gzipgts` Flag indicating whether or not the `.gts` file should be compressed (default).\\n\\n@param `bloomfilter` Flag indicating whether or not to generate a Bloom Filter in the HFile (defaults to `true`).\\n\\n@param `conf` Map of parameters to pass to the filesystem when using HDFS.\\n\\n@param `dfs.block.size` Block size to use (in bytes) when using HDFS.\\n\\n@param `dfs.replication` Replication count to use when using HDFS.\\n\\n\",\"signature\":\"{ dfs.replication<LONG> dfs.block.size<LONG> conf<MAP> catalog<BOOLEAN> bloomfilter<BOOLEAN> gzipgts<BOOLEAN> gzipinfo<BOOLEAN> macro<MACRO> checksums<BOOLEAN> keepempty<BOOLEAN> blocksize<LONG> compress<STRING> format<STRING> selector<STRING> timespan<LONG> end<LONG> path<STRING> token<STRING> secret<STRING>  } HFDUMP  infos<MAP>\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFDUMP\"},\"HFFETCH\":{\"description\":\"The `HFFETCH` function retrieves data from a History File Store available in a Warp 10 instance.\\n\\n@param `token` Token to use for matching Geo Time Series.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points. Ignored if `start` is specified.\\n\\n@param `count` Number of data points to retrieve.\\n\\n@param `start` Start timestamp to consider when fetching data points. It has priority over `timespan`.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `class` Class selector. Not used if `selector` is set.\\n\\n@param `labels` Labels selectors. Not used if `selector` is set.\\n\\n@param `store` Name of History File Store to access. This can also be specified via the `.hfstore` token attribute.\\n\\n@param `result` List of GTS Encoders or Geo Time Series containing the fetched data.\\n\\n@param `encoders` Set to `true` (default) to produce `ENCODERS`, and to `false` to produce Geo Time Series.\\n\\n@param `gskip` Number of GTS to skip.\\n\\n@param `gcount` Number of GTS to consider.\\n\\n@param `merge` Flag indicating whether or not `ENCODERS` from different files should be merged prior to being returned. This defaults to `true`. Use `false` for faster retrieval.\\n\\n@param `clip` Flag indicating whether or not the data should be clipped to the specified time range or if the complete data from each scanned HFile should be returned. Defaults to `true`.\\n\\n@param `lineage` Optional attribute name which, if defined, will contain the tab separated list of file names from which the data was fetched. The attribute can also be set via the `.hflineage` token attribute.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0.0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n\",\"signature\":\"{ token<STRING> class<STRING> labels<MAP> end<LONG> timespan<LONG> start<LONG> count<LONG> skip.count<LONG> sampling.ratio<DOUBLE> timestep<LONG> step<LONG> gcount<LONG> gskip<LONG> encoders<BOOLEAN> lineage<STRING> clip<BOOLEAN> merge<BOOLEAN> store<STRING> selector<STRING>  } HFFETCH  result<LIST>\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFFETCH\"},\"HFID\":{\"description\":\"The `HFID` function computes a GTS Id for a given GTS or ENCODER using the specified keys. The GTS or ENCODER must have a class name set.\\n\\n@param `keys` List of keys to use for generating the Id. This list can contain keys as 4 `LONG`s, 2 byte arrays of length 16 each, 2 hex encoded `STRING` representing 16 bytes each, a combination of `BYTES` and hex encoded `STRING`, or a combination of `BYTES` or hex encoded `STRING` and two `LONG`s.\\n\\n@param `id` Id of the GTS or ENCODER, as a byte array of length 16.\\n\\n@param `gts` Geo Time Serie for which to compute the Id.\\n\\n@param `encoder` GTS Encoder for which to compute the Id.\\n\\n\",\"signature\":\"gts<GTS> keys<LIST>  HFID  id<BYTES>\\nencoder<ENCODER> keys<LIST>  HFID  id<BYTES>\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFID\"},\"HFINDEX\":{\"description\":\"The `HFINDEX` function reads a HFile from a History File Store and registers all of its Geo Time Series with the Warp 10 instance Directory.\\n\\nThe stores which can be accessed can be controlled using the `hfindex` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfindex` capability.\\n\\n@param `file` File to consider within the History File Store.\\n\\n@param `attr` Optional attribute to set on all Geo Time Series with the name of the History File Store. This makes deletion of the GTS easier.\\n\\n@param `count` The number of Geo Time Series registered.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be registered or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"signature\":\"{ gts<BOOLEAN> infos<BOOLEAN> macro<MACRO> secret<STRING> attr<STRING> store<STRING> file<STRING>  } HFINDEX  { count:LONG' count<undefined> \\n\\n infos:MAP' infos<undefined> \\n\\n gts:LIST<ENCODER>' gts<undefined> \\n\\n }\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINDEX\"},\"HFINFO\":{\"description\":\"The `HFINFO` function retrieves information for a History File Store or one of its files.\\n\\nThe stores which can be accessed can be controlled using the `hfinfo` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfinfo` capability.\\n\\n@param `file` Name of `.hfile` file to consider within the History File Store. Use `NULL` to retrieve information about the whole store.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be retained or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"signature\":\"{ gts<BOOLEAN> infos<BOOLEAN> macro<MACRO> secret<STRING> store<STRING> file<STRING>  } HFINFO  { infos:MAP' infos<undefined> \\n\\n gts:LIST<ENCODER>' gts<undefined> \\n\\n }\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINFO\"},\"HFKEYS\":{\"description\":\"The `HFKEYS` function finds Geo Time Series matching critera and packs them in a blob suitable for use with `HFileInputFormat`.\\n\\nThe packed keys must be specified in the `hfileinputformat.keys` configuration when using `HFileInputFormat`.\\n\\n@param `README` The parameters used by `HFKEYS` are identical to those used by [`FIND`](https://warp10.io/doc/FIND), please refer to the documentation of this function.\\n\\n@param `keys` Blob containing packed keys. To be specified as the `hfileinputformat.keys` configuration when using the `HFileInputFormat`.\\n\\n\",\"signature\":\"{ README<STRING>  } HFKEYS  keys<STRING>\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFKEYS\"},\"HFOPEN\":{\"description\":\"The `HFOPEN` function opens a History File Store, making it available in a Warp 10 instance.\\n\\nThe files which are open are those specified in the `hfcat.info` file.\\n\\nThe files which can be accessed can be controlled using the `hfopen` capability by setting its value to a regular expression matching the accessible roots from which the files can be read.\\n\\n@param `store` Name under which the History File Store will be available in Warp 10.\\n\\n@param `secret` General secret of the History File Store plugin.\\n\\n@param `storeSecret` Secret which will be associated with the newly open store.\\n\\n@param `root` Root directory from which the files should be loaded.\\n\\n@param `rescan` Rescan period (in ms). Defaults to 0. Only set this if you intend to load all the files present in `root` over time.\\n\\n@param `register` `BOOLEAN` indicating whether or not the GTS declared in the GTS metadata file `hfcat.gts` (or the one specified in `hfcat.gts`) should be registered with the Directory.\\n\\n@param `macro` Optional macro used to select which GTS from the GTS metadata `hfcat.gts` should be registered. The macro takes as input an `ENCODER` and returns a `BOOLEAN`.\\n\\n@param `attr` Optional attribute name whose value will be set to the store name when registering the GTS.\\n\\n@param `hfcat.info` Optional name of the catalog file containing the store infos. Defaults to `hfcat.info`.\\n\\n@param `hfcat.gts` Optional name of the catalog file containing the Geo Time Series. Defaults to `hfcat.gts`.\\n\\n@param `ignore.missing` `BOOLEAN` indicating whether missing `.hfile` should be ignored or produce an error.\\n\\n@param `fileorder` How should files be ordered in the store, one of `NAME`, `REVNAME`, `MINTS`, `MAXTS`.\\n\\n@param `maxreaders` Maximum number of open readers per store, defaults to 1024.\\n\\n\",\"signature\":\"{ maxreaders<LONG> fileorder<STRING> ignore.missing<BOOLEAN> attr<STRING> hfcat.gts<STRING> hfcat.info<STRING> register<BOOLEAN> macro<MACRO> rescan<LONG> root<STRING> storeSecret<STRING> store<STRING>  }secret<STRING>  HFOPEN \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFOPEN\"},\"HFRESCAN\":{\"description\":\"The `HFRESCAN` function triggers a rescan of the directory of a defined History File Store. The rescan happens asynchronously.\\n\\nThe HFStores which can be rescanned can be specified using a regular expression as the value of capability `hfrescan`.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`, checked only if capability `hfrescan` is not set when using capabilities.\\n\\n\",\"signature\":\"secret<STRING> store<STRING>  HFRESCAN \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFRESCAN\"},\"HFTOKEN\":{\"description\":\"The `HFTOKEN` produces a token envelope which can be used to generate a read token to access data in a History File Store.\\n\\nThe Geo Time Series in a History File Store may have been generated with a wide array of producers, owners and applications. The goal of this function is to retrieve those informations and return a `MAP` containing them plus some additional elements.\\n\\nThe returned `MAP` can be used as argument to the [`TOKENGEN`](https://warp10.io/doc/TOKENGEN) function. Please set the `application`, `ttl` and `owner` fields to suitable values for your environment first.\\n\\nThe stores which can be accessed can be controlled using the `hftoken` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of the History File Store for which a token envelope should be generated.\\n\\n@param `secret` General secret for the History File Store plugin. Not used when the capability `hftoken` is set.\\n\\n@param `envelope` Map containing parameters for generating a token suitable for accessing data in the specified History File Store.\\n\\n\",\"signature\":\"store<STRING>  HFTOKEN  envelope<MAP>\\nstore<STRING> secret<STRING>  HFTOKEN  envelope<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFTOKEN\"},\"HHCODE->\":{\"description\":\"The `HHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"signature\":\"hhcode<LONG>  HHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<STRING>  HHCODE->  lat<DOUBLE> lon<DOUBLE>\\nhhcode<BYTES>  HHCODE->  lat<DOUBLE> lon<DOUBLE>\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"H3W2IoG4AIs\"},\"HHCODE.BBOX\":{\"description\":\"The `HHCODE.BBOX` function returns the bounding box of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the bounding box representing the lat/lon of North-Easth and South-West corners of the bbox.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `latSW` Latitude of the south west corner of the bounding box\\n\\n@param `lonSW` Longitude of the south west corner of the bounding box\\n\\n@param `latNE` Latitude of the north east corner of the bounding box\\n\\n@param `lonNE` Longitude of the north east corner of the bounding box\\n\\n\",\"signature\":\"hhCode<STRING> resolution<LONG>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<LONG> resolution<LONG>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<BYTES> resolution<LONG>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<STRING>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\\nhhCode<BYTES>  HHCODE.BBOX  latSW<DOUBLE> lonSW<DOUBLE> latNE<DOUBLE> lonNE<DOUBLE>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.BBOX\"},\"HHCODE.CENTER\":{\"description\":\"The `HHCODE.CENTER` function returns the center of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the center and returns its lat/lon.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `lat` Latitude of the center of the given HHCode\\n\\n@param `lon` Longitude of the center of the given HHCode\\n\\n\",\"signature\":\"hhCode<STRING> resolution<LONG>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<LONG> resolution<LONG>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<BYTES> resolution<LONG>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<STRING>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\\nhhCode<BYTES>  HHCODE.CENTER  lat<DOUBLE> lon<DOUBLE>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.CENTER\"},\"HHCODE.EAST\":{\"description\":\"The `HHCODE.EAST` function returns the cell east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.EAST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.EAST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.EAST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.EAST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.EAST  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.EAST\"},\"HHCODE.NORTH\":{\"description\":\"The `HHCODE.NORTH` function returns the cell north of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.NORTH  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.NORTH  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.NORTH  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.NORTH  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.NORTH  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH\"},\"HHCODE.NORTH.EAST\":{\"description\":\"The `HHCODE.NORTH.EAST` function returns the cell north east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.NORTH.EAST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.NORTH.EAST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.NORTH.EAST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.NORTH.EAST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.NORTH.EAST  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.EAST\"},\"HHCODE.NORTH.WEST\":{\"description\":\"The `HHCODE.NORTH.WEST` function returns the cell north west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.NORTH.WEST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.NORTH.WEST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.NORTH.WEST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.NORTH.WEST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.NORTH.WEST  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.WEST\"},\"HHCODE.SOUTH\":{\"description\":\"The `HHCODE.SOUTH` function returns the cell south of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.SOUTH  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.SOUTH  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.SOUTH  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.SOUTH  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.SOUTH  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH\"},\"HHCODE.SOUTH.EAST\":{\"description\":\"The `HHCODE.SOUTH.EAST.EAST` function returns the cell south east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.SOUTH.EAST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.SOUTH.EAST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.SOUTH.EAST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.SOUTH.EAST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.SOUTH.EAST  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.EAST\"},\"HHCODE.SOUTH.WEST\":{\"description\":\"The `HHCODE.SOUTH.WEST` function returns the cell south west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.SOUTH.WEST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.SOUTH.WEST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.SOUTH.WEST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.SOUTH.WEST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.SOUTH.WEST  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.WEST\"},\"HHCODE.WEST\":{\"description\":\"The `HHCODE.WEST` function returns the cell west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"inputHHCode<STRING> resolution<LONG>  HHCODE.WEST  outputHHCode<STRING>\\ninputHHCode<LONG> resolution<LONG>  HHCODE.WEST  outputHHCode<LONG>\\ninputHHCode<BYTES> resolution<LONG>  HHCODE.WEST  outputHHCode<BYTES>\\ninputHHCode<STRING>  HHCODE.WEST  outputHHCode<STRING>\\ninputHHCode<BYTES>  HHCODE.WEST  outputHHCode<BYTES>\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.WEST\"},\"HIDE\":{\"description\":\"The `HIDE` function hides some levels of the stack to the rest of the executing code. This allows a kind of protection for levels which should not be accessed by a macro call for example. Note that this is not a real protection since a call to [`SHOW`](/doc/SHOW) could reveal the hidden levels.\\n\\nThe hidden levels are always the deepest. Depending on the `levels` parameter to the call to `HIDE`, the hidden levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there remains at most a certain number ((*abs(`levels`)*) with `levels` < 0).\\n\\nWhen called with `NULL` as parameter, `HIDE` will hide all the visible levels.\\n\\nThe number of newly hidden levels is returned.\\n\\n@param `levels` Number of levels to hide or to remain visible, or `NULL` to hide them all.\\n\\n@param `hidden` Number of levels actually hidden.\\n\\n\",\"signature\":\"levels<LONG>  HIDE  hidden<LONG>\",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"HIDE\"},\"HLOCATE\":{\"description\":\"The `HLOCATE` function locates the HBase regions containing a list of Geo Time Series™.\\n\\nThis function only works with the distributed version of Warp 10™.\\n\\nIt outputs a list of lists containing a GTS selector, the host and port of the RegionServer currently serving the region and the region id of a region containing data for this GTS.\\n\\n@param `gts` List of Geo Time Series™ to locate.\\n\\n@param `result` List of GTS, RegionServer, region tuples.\\n\\n\",\"signature\":\"gts<LIST<GTS>>  HLOCATE  result<LIST>\",\"tags\":[\"extensions\"],\"since\":\"1.2.13\",\"OPB64name\":\"HLOCATE\"},\"HTTP\":{\"description\":\"The `HTTP` function sends an HTTP request, waits for the response then returns it.\\nThe input is a MAP with at least the field `url`.\\nThe response is a MAP with the fields `status.code`, `status.message`, `headers` and `content`.\\n\\nThe `HTTP` function can also be used in streaming mode by providing a positive `chunk.size` argument.\\nIn streaming mode, whenever `chunk.size` bytes are downloaded, a response MAP with the additional field `chunk.number` is pushed onto the stack and the macro given as `chunk.macro` argument is being executed.\\nFinally, a last `chunk.macro` execution is done on a chunk response that has empty `content` and `chunk.number = -1`.\\n\\nThe `HTTP` function makes use of token's capabilities to raise the initial limits per warpscript (set from configurations).\\n\\n| Description | Capability | Initial limit | Default value\\n|----------|------|------|------|\\n| Maximum number of calls | http.requests | warpscript.http.maxrequests | 1 |\\n| Maximum number of downloadable bytes | http.size | warpscript.http.maxsize | 65536 |\\n| Maximum number of bytes per chunk | http.chunksize | warpscript.http.maxchunksize | 65536 |\\n\\nOther configurable options:\\n| Description | Configuration | Default value\\n|----------|------|------|\\n| If true, authentication is required to call HTTP | warpscript.http.authentication.required | false |\\n| If set, it is a capability that is required to call HTTP | warpscript.http.capability | *none* |\\n| List of patterns to include/exclude for hosts. If not set, use the value of webcall.host.patterns | warpscript.http.host.patterns | *none* |\\n\\n\\n@param `url` The URL to send the HTTP request to\\n\\n@param `method` Optional HTTP method (aka verb), default to GET or POST whether there is a body\\n\\n@param `headers` Optional request headers\\n\\n@param `body` Optional body. BYTES or UTF-8 encoded STRING\\n\\n@param `chunkMacro` Optional macro that is executed whenever a chunk has been downloaded. It expects a MAP that contains chunk number (LONG), status code (LONG), status message (STRING), headers (MAP), and chunk content (BYTES)\\n\\n@param `chunkSize` Optional chunk size. Activate streaming mode if positive\\n\\n@param `chunkNumber` The index of the current chunk (starting from 1). This field is only set for intermediate chunk responses\\n\\n@param `username` Optional username. It works with basic authentication scheme\\n\\n@param `password` Optional password. It works with basic authentication scheme\\n\\n@param `statusCode` The response status code\\n\\n@param `statusMessage` The response status message\\n\\n@param `responseHeaders` The response headers\\n\\n@param `content` The content of the response\\n\\n\",\"signature\":\"{ url<STRING>  } HTTP  { content:BYTES' content<undefined> \\n\\n responseHeaders:MAP' headers<undefined> \\n\\n statusMessage:STRING' status.message<undefined> \\n\\n statusCode:LONG' status.code<undefined> \\n\\n }\\n\\n\\n{ url<STRING> method<STRING> headers<MAP> body<OBJECT>  } HTTP  { content:BYTES' content<undefined> \\n\\n responseHeaders:MAP' headers<undefined> \\n\\n statusMessage:STRING' status.message<undefined> \\n\\n statusCode:LONG' status.code<undefined> \\n\\n }\\n\\n\\n{ url<STRING> method<STRING> headers<MAP> body<OBJECT> chunkMacro<MACRO> chunkSize<LONG> username<STRING> password<STRING>  } HTTP  { chunkNumber:LONG' chunk.number<undefined> \\n\\n content:BYTES' content<undefined> \\n\\n responseHeaders:MAP' headers<undefined> \\n\\n statusMessage:STRING' status.message<undefined> \\n\\n statusCode:LONG' status.code<undefined> \\n\\n }\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.8.1\",\"OPB64name\":\"HTTP\"},\"HULLSHAPE\":{\"description\":\"Return the shape of a tensor (or multidimensional array) that would be able to contain all the values of an input nested list. The size of the returned shape is equal to the deepest level of nesting plus one. Its i-th value is equal to the size of the largest list that is nested i levels deep.\\n\\n@param `list` The input list.\\n\\n@param `shape` The hull shape of the input list.\\n\\n\",\"signature\":\"list<LIST>  HULLSHAPE  shape<LIST>\\n{ list<LIST>  } HULLSHAPE  shape<LIST>\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"HULLSHAPE\"},\"HUMANDURATION\":{\"description\":\"The `HUMANDURATION` function consumes a **LONG** duration and push back an easily readable **STRING** representation of this duration.\\n\\nThe format of the pushed back **STRING** is **[Dd][Hh][Mm]S.XXXXXXs** with D as days, H as hours, M as minutes, S as seconds and XXXXXX the number of ms (3 digits), us (6 digits) or ns (9 digits) depending on the platform configuration. If the duration is less than a day, Dd is omitted, sames goes with Hh and Mm.\\n\\n@param `duration` Duration expressed in the platform time unit.\\n\\n@param `humanReadableDuration`  A representation of the duration, easily readable for a human.\\n\\n\",\"signature\":\"duration<LONG>  HUMANDURATION  humanReadableDuration<STRING>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"HUMANDURATION\"},\"HYBRIDTEST\":{\"description\":\"The `HYBRIDTEST` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\nLike [`STLESDTEST`](/doc/STLESDTEST), `HYBRIDTEST` performs an [`ESDTEST`](/doc/ESDTEST) onto a GTS that have been relieved of its seasonal and trend part. \\nBut unlike the mentioned test, [`STL`](/doc/STL) and [`ESDTEST`](/doc/ESDTEST) are performed piecewise. Plus, the trend is approximated with the piecewise \\nmedian instead of the trend part of the [`STL`](/doc/STL) decomposition.\\n\\nA LIST of ticks (or a LIST of LIST of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis technique was first developped at [Twitter](https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series).\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ## References\\n> - Owen Vallis, Jordan Hochenbaum, Arun Kejariwal. “A Novel Technique for Long-Term Anomaly Detection in the Cloud”, Twitter Inc (2014).\\n> - Cleveland, Robert B., et al. “STL: A seasonal-trend decomposition procedure based on loess.” Journal of Official Statistics 6.1 (1990): 3-73.\\n> - Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n\\n@param `parameters` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `lgts` List of [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n\",\"signature\":\"gts<GTS> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE> parameters<MAP>  HYBRIDTEST  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG> parameters<MAP>  HYBRIDTEST  result<LIST<LONG>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE> parameters<MAP>  HYBRIDTEST  result<LIST<LIST<LONG>>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST  result<LIST<LIST<LONG>>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST  result<LIST<LIST<LONG>>>\\nlgts<LIST<GTS>> period<LONG> piece<LONG> k<LONG> parameters<MAP>  HYBRIDTEST  result<LIST<LIST<LONG>>>\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST\"},\"HYBRIDTEST2\":{\"description\":\"The `HYBRIDTEST2` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\n`HYBRIDTEST2` is almost the same procedure than [`HYBRIDTEST`](/doc/HYBRIDTEST) except that it does not use [`STL`](/doc/STL) decomposition for the \\nseasonal extract.\\n\\nThe seasonal part is approximated by pondering each value with the [entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29) of the \\n[modified Z-score](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h.htm) of its seasonal subseries (series with only the values of the \\nsame season).\\n\\nThis test is usually preferred when it is meaningful to think in term of entropy, for example when the GTS represents counters of events. Also as it \\ndoes not use [`STL`](/doc/STL) decomposition, it is not prone to border effects, but at the cost of not detecting slight outliers.\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n@param `gtsList` List of GTS\\n\\n\",\"signature\":\"gts<GTS> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST2  result<LIST<LONG>>\\ngts<GTS> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST2  result<LIST<LONG>>\\ngtsList<LIST<GTS>> period<LONG> piece<LONG> k<LONG> alpha<DOUBLE>  HYBRIDTEST2  result<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> period<LONG> piece<LONG> k<LONG>  HYBRIDTEST2  result<LIST<LIST<LONG>>>\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST2\"},\"HYPOT\":{\"description\":\"HYPOT function returns the radius r from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta), r = sqrt(x²+y²).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `result` radius r in polar coordinates\\n\\n@param `lresult` List of radiuses r in polar coordinates\\n\\n@param `gtsresult` Numerical GTS of radiuses r in polar coordinates\\n\\n\",\"signature\":\"x<NUMBER> y<NUMBER>  HYPOT  result<DOUBLE>\\nx<NUMBER> ly<LIST<NUMBER>>  HYPOT  lresult<LIST<DOUBLE>>\\nlx<LIST<NUMBER>> y<NUMBER>  HYPOT  lresult<LIST<DOUBLE>>\\nx<NUMBER> gtsy<GTS>  HYPOT  gtsresult<GTS>\\ngtsx<GTS> y<NUMBER>  HYPOT  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYPOT\"},\"IDENT\":{\"description\":\"The `IDENT` function pushes onto the stack the value of the system property `warp.ident`.\\n\\n@param `ident` The value of the `warp.ident` property.\\n\\n\",\"signature\":\" IDENT  ident<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDENT\"},\"IDWT\":{\"description\":\"The `IDWT` function computes an Inverse [Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Discrete_wavelet_transform) on a Geo Time Series™.\\n\\nThe names of the available Wavelet are the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\n\\n@param `wavelet` Wavelet to consider\\n\\n@param `gts` Geo Time Series™ which contains the wavelet coefficients as is returned by [`FDWT`](/doc/FDWT).\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> wavelet<STRING>  IDWT  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDWT\"},\"IEEEREMAINDER\":{\"description\":\"The `IEEEREMAINDER` function consumes two parameters, a dividend f1 and a divisor f2. This function push the remainder onto the stack as\\nprescribed by the [IEEE 754 standard](https://en.wikipedia.org/wiki/IEEE_754-1985).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` Dividend, converted as DOUBLE if not already the case.\\n\\n@param `divisor` Divisor, converted as DOUBLE if not already the case.\\n\\n@param `result` Remainder\\n\\n@param `ldividend` List of dividends, converted as DOUBLE if not already the case.\\n\\n@param `ldivisor` List of divisors, converted as DOUBLE if not already the case.\\n\\n@param `lresult` List of remainders\\n\\n@param `gtsdividend` Numerical GTS of dividends, converted as DOUBLE if not already the case.\\n\\n@param `gtsdivisor` Numerical GTS of divisors, converted as DOUBLE if not already the case.\\n\\n@param `gtsresult` GTS of remainders\\n\\n\",\"signature\":\"dividend<NUMBER> divisor<NUMBER>  IEEEREMAINDER  result<LONG>\\ndividend<NUMBER> ldivisor<LIST<NUMBER>>  IEEEREMAINDER  lresult<LIST<LONG>>\\nldividend<LIST<NUMBER>> divisor<NUMBER>  IEEEREMAINDER  lresult<LIST<LONG>>\\ndividend<NUMBER> gtsdivisor<GTS>  IEEEREMAINDER  gtsresult<GTS>\\ngtsdividend<GTS> divisor<NUMBER>  IEEEREMAINDER  gtsresult<GTS>\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"IEEEREMAINDER\"},\"IFFT\":{\"description\":\"The `IFFT` function computes an Inverse [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) of two Geo Time Series™ \\nrepresenting real and imaginary parts of FFT coefficients.\\n\\nThe result is the reconstructed Geo Time Series™. The ticks of this reconstructed GTS are the coefficient indices. They must be multipled by the original \\nbucketspan to space the ticks according to the decomposed Geo Time Series™. The bucketspan is equal to `X / (n * factor)` where `X` is the number of time \\nunits in a second, `n` is the number of coefficients and `factor` is the scale factor returned by `FFT`.\\n\\n@param `im` GTS containing the imaginary part\\n\\n@param `real` GTS containing the real parts of the `FFT` coefficients\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"signature\":\"real<GTS> im<GTS>  IFFT  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFFT\"},\"IFT\":{\"description\":\"The `IFT` function is a conditional construct which will run a macro only if a boolean condition is true. The condition can either be a boolean on the stack or the result of a macro run.\\n\\n@param `check` Boolean which will be checked as the conditional test.\\n\\n@param `if` Macro which will be executed to determine the conditional test. This macro must leave a boolean on the stack.\\n\\n@param `then` Macro which is executed if the conditional test is `true`.\\n\\n@param `result` State of the stack after the `then` macro is executed.\\n\\n\",\"signature\":\"if<MACRO> then<MACRO>  IFT  result<ANY*>\\ncheck<BOOLEAN> then<MACRO>  IFT  result<ANY*>\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFT\"},\"IFTE\":{\"description\":\"The `IFTE` function is a conditional construct which evaluates a condition and executes one of two macros depending on the condition (`true` or `false`). The condition can either be a BOOLEAN value on the stack or a macro which will be executed and must leave a BOOLEAN on the stack.\\n\\n@param `else` Macro executed if the condition is `false`.\\n\\n@param `then` Macro executed if the condition is `true`.\\n\\n@param `if` Macro executed to evaluate the condition. Must leave a BOOLEAN on top of the stack.\\n\\n@param `condition` Boolean value used as the condition.\\n\\n@param `result` Result of the execution of either the `then` or `else` macro.\\n\\n\",\"signature\":\"if<MACRO> then<MACRO> else<MACRO>  IFTE  result<ANY*>\\ncondition<BOOLEAN> then<MACRO> else<MACRO>  IFTE  result<ANY*>\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFTE\"},\"IMMUTABLE\":{\"description\":\"Transforms a collection (**LIST**, **MAP**, **VLIST**, **SET**) into an immutable one. Any attempt to modify the immutable collection will fail. The original collection is not modified.\\n\\n@param `list` List to wrap into an immutable wrapper.\\n\\n@param `map` Map to wrap into an immutable wrapper.\\n\\n@param `set` Set to wrap into an immutable wrapper.\\n\\n@param `vector` Vector to wrap into an immutable wrapper.\\n\\n@param `immutableList` Immutable version of 'list'.\\n\\n@param `immutableMap` Immutable version of 'map'.\\n\\n@param `immutableSet` Immutable version of 'set'.\\n\\n@param `immutableVector` Immutable version of 'vector'.\\n\\n\",\"signature\":\"list<LIST>  IMMUTABLE  immutableList<LIST>\\nmap<MAP>  IMMUTABLE  immutableMap<MAP>\\nset<SET>  IMMUTABLE  immutableSet<SET>\\nvector<VLIST>  IMMUTABLE  immutableVector<VLIST>\",\"tags\":[\"lists\",\"maps\",\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"IMMUTABLE\"},\"IMPORT\":{\"description\":\"The `IMPORT` function allows to create aliases for macro name prefixes. This is handy when accessing macros from WarpFleet™ repositories which might have multiple versions and/or long group and artifact ids. When fetching a macro, the *imported* prefixes will be scanned and the longest matching one will be replaced by the associated alias.\\n\\n@param `prefix` Original prefix to *import*.\\n\\n@param `as` Name under which `prefix` will be imported.\\n\\n\",\"signature\":\"prefix<STRING> as<STRING>  IMPORT \",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"IMPORT\"},\"INCREMENTEXACT\":{\"description\":\"The `INCREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value incremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be incremented by one\\n\\n@param `result` The incremented value\\n\\n@param `lvalue` List of values to be incremented by one\\n\\n@param `lresult` List of incremented values\\n\\n@param `gts` GTS whose values are to be incremented by one\\n\\n@param `gtsresult` GTS of incremented values\\n\\n\",\"signature\":\"value<NUMBER>  INCREMENTEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  INCREMENTEXACT  lresult<LIST<LONG>>\\ngts<GTS>  INCREMENTEXACT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"INCREMENTEXACT\"},\"INDEXOF\":{\"description\":\"      This function allows you to find: \\n\\n- the indexes of an item in a list\\n- the indexes of an item in a byte array\\n- the indexes of a substring in a string\\n- the keys of an item in a map\\n- the timestamps of a value in a GTS\\n\\n@param `collection` The collection in wich to look for the object\\n\\n@param `objectToLookFor` The item to look for\\n\\n@param `numberOfIndexes` The number of indexes to return, 0 for all the indexes\\n\\n@param `indexes` The indexes of the searched item\\n\\n\",\"signature\":\"collection<LIST> objectToLookFor<ANY> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\\ncollection<MAP> objectToLookFor<ANY> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<ANY>>\\ncollection<BYTES> objectToLookFor<LONG> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\\ncollection<GTS> objectToLookFor<ANY> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\\ncollection<STRING> objectToLookFor<STRING> numberOfIndexes<LONG>  INDEXOF  indexes<LIST<LONG>>\",\"tags\":[\"lists\",\"maps\",\"strings\",\"gts\"],\"since\":\"2.10.1\",\"OPB64name\":\"INDEXOF\"},\"INFLATE\":{\"description\":\"Decompresses a byte array containing data compressed by [`DEFLATE`](doc/DEFLATE).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"signature\":\"compressed<BYTES>  INFLATE  uncompressed<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"INFLATE\"},\"INFO\":{\"description\":\"Generate documentation of a function or a macro.\\n\\n@param `conf` String list of related configuration keys existing in the Warp 10 configuration.\\n\\n@param `examples` String list of WarpScript examples.\\n\\n@param `related` String list of related functions.\\n\\n@param `params` Map describing the parameters defined in `sig`.\\n\\n@param `sig` List of signatures. Each signature is a **LIST** with 2 lists (input and output) which contain parameter definitions: *eg* `param1:STRING` in stack order (top first)\\n\\n@param `desc` Description of the function or macro.\\n\\n@param `tags` String list tags (*eg* categories).\\n\\n@param `version` Version of the Warp 10 distribution on which this funcion is available (`standalone` | `distributed` | `all` | `pkg` | `ext` | `plugin`)\\n\\n@param `deleted` Version's number of Warp 10 where this function (or macro) was deleted.\\n\\n@param `deprecated` Version's number of Warp 10 where this function (or macro) was deprecated.\\n\\n@param `since` Version's number of Warp 10 where this function (or macro) was included.\\n\\n@param `name` Name of the function or macro.\\n\\n@param `ext` Fully qualified class name of the WarpScript Extension defining the function.\\n\\n@param `plugin` Fully qualified class name of the WarpScript Plugin defining the function.\\n\\n\",\"signature\":\"{ plugin<STRING> ext<STRING> name<STRING> since<STRING> deprecated<STRING> deleted<STRING> version<STRING> tags<LIST> desc<STRING> sig<LIST> params<MAP> related<LIST> examples<LIST> conf<LIST>  } INFO \",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFO\"},\"INFOMODE\":{\"description\":\"Toggles the info mode ON or OFF depending on its current state. Default is OFF when the stack is created.\\n\\nWhen info mode is ON, the [`INFO`](/doc/INFO) function pushes its map parameter on the stack and stops the current execution as [`STOP`](/doc/STOP) would do.\\n\\n\",\"signature\":\" INFOMODE \",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFOMODE\"},\"INTEGRATE\":{\"description\":\"The `INTEGRATE` function takes a GTS or a list thereof and integrates it/them, considering the value at each tick is a rate of change per second.\\n\\n@param `initial` Initial value\\n\\n@param `gts` GTS to integrate\\n\\n@param `lgts` List of GTS to integrate\\n\\n@param `result` Integrated GTS\\n\\n@param `lresult` List of integrated GTS\\n\\n\",\"signature\":\"gts<GTS> initial<NUMBER>  INTEGRATE  result<GTS>\\nlgts<LIST<GTS>> initial<NUMBER>  INTEGRATE  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTEGRATE\"},\"INTERPOLATE\":{\"description\":\"The `INTERPOLATE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with by interpolating linearly. \\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled bucketized GTS\\n\\n@param `resultList` list of filled bucketized GTS\\n\\n\",\"signature\":\"gts<GTS>  INTERPOLATE  result<GTS>\\ngtsList<LIST<GTS>>  INTERPOLATE  resultList<LIST<GTS>>\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERPOLATE\"},\"INTERSECTION\":{\"description\":\"Computes the intersection &#x2229; of two sets.\\n\\nThe `INTERSECTION` function consumes two sets from the top of the stack and pushes back its mathematical intersection (ie: the elements in common).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x2229; *B*\\n\\n\",\"signature\":\"setA<SET> setB<SET>  INTERSECTION  output<SET>\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERSECTION\"},\"INV\":{\"description\":\"Inverts a matrix. The inversion is attempted using the [LU Decomposition](https://en.wikipedia.org/wiki/LU_decomposition) algorithm.\\n\\nIf the matrix is singular or not square an error will be raised.\\n\\n@param `matrix` Matrix to invert.\\n\\n@param `inverse` Inverse of the original matrix.\\n\\n\",\"signature\":\"matrix<MATRIX>  INV  inverse<MATRIX>\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"INV\"},\"ISAUTHENTICATED\":{\"description\":\"Returns true or false whether or not the stack is authenticated\\n\\n@param `result` True if the stack is authenticated, false otherwise\\n\\n\",\"signature\":\" ISAUTHENTICATED  result<BOOLEAN>\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ISAUTHENTICATED\"},\"ISNULL\":{\"description\":\"The `ISNULL` function consumes a parameter p from the top of the stack and pushes onto the stack true if p is null, else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p is null\\n\\n\",\"signature\":\"p<ANY>  ISNULL  result<BOOLEAN>\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNULL\"},\"ISNaN\":{\"description\":\"The `ISNaN` function consumes a numeric parameter p from the top of the stack and pushes onto the stack true if p is Not a Number (NaN), else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p a Double and is NaN, false  otherwise\\n\\n\",\"signature\":\"p<ANY>  ISNaN  result<BOOLEAN>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNaN\"},\"ISO8601\":{\"description\":\"The `ISO8601` function consumes an optional **STRING** timezone and a **LONG** UTC timestamp and pushes back a **STRING** representing the date and time according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard.\\n\\nDepending on the platform time unit, the part representing seconds can have 3, 6 or 9 significant figures respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time representation.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `iso8601dateAndTime` Representation of the date and time of the given timestamp for the givent timezone according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard\\n\\n\",\"signature\":\"timestamp<LONG>  ISO8601  iso8601dateAndTime<STRING>\\ntimestamp<LONG> timezone<STRING>  ISO8601  iso8601dateAndTime<STRING>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISO8601\"},\"ISODURATION\":{\"description\":\"The `ISODURATION` function consumes a **LONG** duration in platform unit and pushes back a **STRING** reresenting an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). Whatever the platform time unit is, the representation maximum resolution is milliseconds.\\n\\nThe format of the ISO 8601 representation is `PThHmMs.xS` with `h` as hours, `m` as minutes, `s` as seconds and `x` as milliseconds. If any of these value is zero, the value and unit are omitted. The only exception is for a duration of 0 which is represented as `PT0S`. If the duration is negative, `h`, `m` and `s`, if displayed, are negative numbers. \\n\\n@param `duration` A duration expressed in platform time unit.\\n\\n@param `iso8601duration` A representation of the consumed duration according to ISO 8601.\\n\\n\",\"signature\":\"duration<LONG>  ISODURATION  iso8601duration<STRING>\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISODURATION\"},\"ISONORMALIZE\":{\"description\":\"The `ISONORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between -1 and 1 (i.e. it replaces X by \\n(X - mean)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"signature\":\"gts<GTS>  ISONORMALIZE  result<GTS>\\ngtsList<LIST<GTS>>  ISONORMALIZE  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISONORMALIZE\"},\"JOIN\":{\"description\":\"Join N strings with the given separator.\\n\\n@param `n` Number of elements to join that it needs to take from the top of the stack.\\n\\n@param `sep` Separator used to join the strings.\\n\\n@param `string` One or more string on the stack.\\n\\n@param `objects` List of objects whose string representations are to be joined.\\n\\n@param `result` Joined string.\\n\\n\",\"signature\":\"string<STRING*> sep<STRING> n<LONG>  JOIN  result<STRING>\\nobjects<LIST> sep<STRING>  JOIN  result<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"JOIN\"},\"JSON->\":{\"description\":\"The `JSON->` function parses a string as [JSON](http://json.org/) from the top of the stack and pushes the result onto the stack.\\n\\n@param `json` String JSON representation\\n\\n@param `resultMap` Map JSON representation if it is a JSON object\\n\\n@param `resultList` List JSON representation if it is a JSON array\\n\\n\",\"signature\":\"json<STRING>  JSON->  resultMap<MAP>\\njson<STRING>  JSON->  resultList<LIST>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H_CEIXoy\"},\"JSONCOMPACT\":{\"description\":\"The `JSONCOMPACT` function configures the stack to output compact [JSON](http://json.org/) format. This means the generated JSON will contain no line return and no space which makes it perfect to exchange data between programs.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONCOMPACT\"},\"JSONLOOSE\":{\"description\":\"The `JSONLOOSE` function configures the stack to output loose [JSON](http://json.org/) format where `NaN` and `Infinite` are valid values.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\nIf the [JSON](http://json.org/) parser you’re using is strict, you should either configure the [`JSONSTRICT`](/doc/JSONSTRICT) mode or dealing with `NaN` and `Infinite` values outside the parser.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONLOOSE\"},\"JSONPRETTY\":{\"description\":\"The `JSONPRETTY` function configures the stack to output pretty [JSON](http://json.org/) format. This means the generated JSON will contain line returns and will be indented to make it easier for human to read.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONPRETTY\"},\"JSONSTACK\":{\"description\":\"Select the JSON format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\" JSONSTACK \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"JSONSTACK\"},\"JSONSTRICT\":{\"description\":\"The `JSONSTRICT` function configures the stack to output strict [JSON](http://json.org/) format.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONSTRICT\"},\"KECCAK.128\":{\"description\":\"The `KECCAK.128` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  KECCAK.128  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.128\"},\"KECCAK.224\":{\"description\":\"The `KECCAK.224` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  KECCAK.224  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.224\"},\"KECCAK.256\":{\"description\":\"The `KECCAK.256` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  KECCAK.256  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.256\"},\"KECCAK.288\":{\"description\":\"The `KECCAK.288` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  KECCAK.288  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.288\"},\"KECCAK.384\":{\"description\":\"The `KECCAK.384` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  KECCAK.384  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.384\"},\"KECCAK.512\":{\"description\":\"The `KECCAK.512` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  KECCAK.512  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.512\"},\"KEYLIST\":{\"description\":\"Gets keys from a **MAP**.\\n\\nThe function `KEYLIST` extracts the keys of a map on the top of the stack and pushes on the stack a list with those keys. The map is consumed.      \\n\\n@param `map` Map from which you want to extract keys\\n\\n@param `result` List of keys\\n\\n\",\"signature\":\"map<MAP>  KEYLIST  result<LIST>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"KEYLIST\"},\"KURTOSIS\":{\"description\":\"The `KURTOSIS` function computes the [kurtosis](https://en.wikipedia.org/wiki/Kurtosis) of a Geo Time Series™ or a list thereof.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the kurtosis.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `kurtosis` Computed kurtosis of the Geo Time Series™ instance.\\n\\n@param `lkurtosis` List of computed kurtosis of the Geo Time Series™ instances.\\n\\n\",\"signature\":\"gts<GTS> bessel<BOOLEAN>  KURTOSIS  kurtosis<DOUBLE>\\nlgts<LIST<GTS>> bessel<BOOLEAN>  KURTOSIS  lkurtosis<LIST<DOUBLE>>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.2.13\",\"OPB64name\":\"KURTOSIS\"},\"LABELS\":{\"description\":\"The `LABELS` function consumes a GTS from the stack, extracts its labels, puts them in a map and pushes the map onto the stack.\\n\\n@param `gts` The Geo Time Series™ to get the labels from.\\n\\n@param `encoder` The Geo Time Series™ Encoder to get the labels from.\\n\\n@param `return` Labels MAP\\n\\n\",\"signature\":\"gts<GTS>  LABELS  return<MAP>\\nencoder<GTSENCODER>  LABELS  return<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LABELS\"},\"LASTACTIVITY\":{\"description\":\"Extracts the timestamp of last activity recorded in the Geo Time Series™ metadata.\\n\\nThe timestamp is expressed as platform time units elapsed since the Unix Epoch.\\n\\n@param `gts` Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `encoder` Geo Time Series™ encoder from which to extract the last activity timestamp.\\n\\n@param `lgts` List of Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `lencoder` List of Geo Time Series™ encoders from which to extract the last activity timestamp.\\n\\n@param `lastactivity` Timestamp of last activity.\\n\\n@param `llastactivity` List of timestamps of last activity.\\n\\n\",\"signature\":\"gts<GTS>  LASTACTIVITY  lastactivity<LONG>\\nencoder<GTSENCODER>  LASTACTIVITY  lastactivity<LONG>\\nlgts<LIST<GTS>>  LASTACTIVITY  llastactivity<LONG>\\nlencoder<LIST<GTSENCODER>>  LASTACTIVITY  llastactivity<LONG>\",\"tags\":[\"gts\"],\"since\":\"2.0.0\",\"OPB64name\":\"LASTACTIVITY\"},\"LASTBUCKET\":{\"description\":\"The function `LASTBUCKET` consumes a GTS off the stack and pushes its lastbucket onto the stack.\\n\\nNote: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Last bucket timestamp\\n\\n\",\"signature\":\"gts<GTS>  LASTBUCKET  result<LONG>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTBUCKET\"},\"LASTSORT\":{\"description\":\"Sorts a list of Geo Time Series™ according to their most recent value. If most recent values are identical, ticks will be compared, the most recent\\nappearing first. If the ticks are also identical, then metadata will be compared, classname first then labels then attributes.\\n\\nWhen comparing on metadata, labels and attributes lists are first sort in a lexicographic order, then label values are compared when label names match. Same for the attributes\\n\\nUse this function to compute Top N queries.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Sorted list of Geo Time Series™\\n\\n\",\"signature\":\"gtsList<LIST<GTS>>  LASTSORT  result<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTSORT\"},\"LASTTICK\":{\"description\":\"The `LASTTICK` function returns the newest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its last bucket.\\n\\nWhen applied to a list of GTS, `LASTTICK` will return the greatest last tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MIN_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `result` Newest timestamp. If the GTS does not have values, **Long.MIN_VALUE** is pushed.\\n\\n\",\"signature\":\"gts<GTS>  LASTTICK  result<LONG>\\nlgts<LIST<GTS>>  LASTTICK  result<LONG>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTTICK\"},\"LBOUNDS\":{\"description\":\"The `LBOUNDS` function computes bounds which divide a specified interval into `n` intervals of equal length.\\n\\nThe result of `LBOUNDS` is a list of `n+1` bounds, defining `n` intervals inside the specified range plus the two bounds of this range which define the intervals before and after the range.\\n\\n@param `n` Number of intervals to generate.\\n\\n@param `upper` Upper bound of the range to subdivide.\\n\\n@param `lower` Lower bound of the range to subdivide.\\n\\n@param `bounds` List of computed bounds.\\n\\n\",\"signature\":\"lower<DOUBLE> upper<DOUBLE> n<LONG>  LBOUNDS  bounds<LIST<DOUBLE>>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LBOUNDS\"},\"LEVELDBCLOSE\":{\"description\":\"Closes the LevelDB database underlying the Warp 10™ instance. While the LevelDB database is closed, any interaction with the storage layer is blocked. This enables an external tool to manipulate the LevelDB files knowing they are in a coherent state.\\n\\nThe blocked interactions will resume after `LEVELDBOPEN` is called.\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"signature\":\"secret<STRING>  LEVELDBCLOSE \",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBCLOSE\"},\"LEVELDBOPEN\":{\"description\":\"Re-opens the LevelDB database underlying the Warp 10™ instance. It must have been closed using `LEVELDBCLOSE` prior to calling `LEVELDBOPEN`\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"signature\":\"secret<STRING>  LEVELDBOPEN \",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBOPEN\"},\"LEVELDBSECRET\":{\"description\":\"Modifies the LevelDB secret needed to interact with the Warp 10™ LevelDB subsystem.\\n\\n@param `currentsecret` Current LevelDB secret.\\n\\n@param `newsecret` New LevelDB secret.\\n\\n\",\"signature\":\"currentsecret<STRING> newsecret<STRING>  LEVELDBSECRET \",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSECRET\"},\"LEVELDBSNAPSHOT\":{\"description\":\"Creates a LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files. Once those hard links are created, the LevelDB subsystem is reopen.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"signature\":\"snapshot<STRING> secret<STRING>  LEVELDBSNAPSHOT  nfiles<LONG>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOT\"},\"LEVELDBSNAPSHOTINC\":{\"description\":\"Creates an incremental LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files which are only in the current LevelDB file set. Once those hard links are created, the LevelDB subsystem is reopen and the files which were both in the current LevelDB file set and the reference snapshot are linked from the reference snapshot. This allows for the snapshot process to only close the LevelDB subsystem during the linking of files which were created since the reference snapshot was created.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"signature\":\"snapshot<STRING> secret<STRING>  LEVELDBSNAPSHOTINC  nfiles<LONG>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOTINC\"},\"LFILTER\":{\"description\":\"The `LFILTER` function filters the element of a **LIST** according to the result of a macro execution on each element of the **LIST**. It produces a **LIST** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of filered elements\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"inputlist<LIST> macro<MACRO>  LFILTER  results<LIST>\\ninputlist<LIST> macro<MACRO> index<BOOLEAN>  LFILTER  results<LIST>\",\"tags\":[\"lists\"],\"since\":\"2.9.0\",\"OPB64name\":\"LFILTER\"},\"LFLATMAP\":{\"description\":\"The `LFLATMAP` function applies a macro on each element of a list, producing a list \\nwith the element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the list index on top and the element \\nat that particular index below it. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\nDifference with `LMAP`: if the macro returns a list, then LFLATMAP will produce a \\nlist with the elements of the macro output list (_i.e._ it will _flatten_ the list). \\n\\nDifference with `LMAP FLATTEN`: flatten will do the list flattening recursively. \\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count -1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"inputlist<LIST> macro<MACRO>  LFLATMAP  results<LIST>\\ninputlist<LIST> macro<MACRO> index<BOOLEAN>  LFLATMAP  results<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LFLATMAP\"},\"LIMIT\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and \\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `LIMIT` function modifies the maximum number of datapoints which can be fetched during a script execution by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call `AUTHENTICATE` with a valid token.\\n\\n@param `maxDataPoints` Maximal data points retrieved from database in a single FETCH\\n\\n\",\"signature\":\"maxDataPoints<LONG>  LIMIT \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"LIMIT\"},\"LINEOFF\":{\"description\":\"The `LINEOFF` function disables the automatic labelling of WarpScript code as enabled by `LINEON`.      \\n\\n\",\"signature\":\"\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEOFF\"},\"LINEON\":{\"description\":\"The `LINEON` function enables the automatic section labelling at the beginning of each line of the input WarpScript code. This handy feature greatly simplifies the debug process as the exact line number where an error happens will appear in the error message embedded as a section name of the form `[Line #xx]`.\\n\\nThis automatic labelling only works with the `/exec` endpoint of Warp 10.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEON\"},\"LIST->\":{\"description\":\"The `LIST->` function extracts the elements of the **LIST** at the top of the stack\\nand pushes them onto the stack one by one. The function then pushes\\nonto the stack the number of elements that were in the **LIST**.\\n\\n@param `input` The input list, will be consumbed\\n\\n@param `listlength` The length N of input\\n\\n@param `elements` N elements pushed on the stack\\n\\n\",\"signature\":\"input<LIST>  LIST->  elements<ANY*> listlength<LONG>\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"I3_IK1oy\"},\"LMAP\":{\"description\":\"The `LMAP` function applies a macro on each element of a **LIST**. It produces a **LIST** with the resulting element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. \\n\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"inputlist<LIST> macro<MACRO>  LMAP  results<LIST>\\ninputlist<LIST> macro<MACRO> index<BOOLEAN>  LMAP  results<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LMAP\"},\"LOAD\":{\"description\":\"The `LOAD` function pushes onto the stack the value currently associated with a symbol name.      \\n\\nIf the symbol is not defined, an error will be raised.\\n\\n@param `name` Name of symbol whose value should be retrieved.\\n\\n@param `register` Register number whose value should be retrieved.\\n\\n@param `value` Retrieved value.\\n\\n\",\"signature\":\"name<STRING>  LOAD  value<ANY>\\nregister<LONG>  LOAD  value<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOAD\"},\"LOCATIONOFFSET\":{\"description\":\"The `LOCATIONOFFSET` function downsamples a Geo Time Series™ by retaining the first and last datapoints and only those datapoints which are \\nmore than a given distance away.\\n\\n@param `distance` Distance in meters\\n\\n@param `gts` Geo Time Series™ to downsample\\n\\n@param `gtsList` List of Geo Time Series™ to downsample\\n\\n@param `result` Downsampled Geo Time Series™\\n\\n@param `resultList` List of downsampled Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> distance<NUMBER>  LOCATIONOFFSET  result<GTS>\\ngtsList<LIST<GTS>> distance<NUMBER>  LOCATIONOFFSET  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONOFFSET\"},\"LOCATIONS\":{\"description\":\"The `LOCATIONS` function consumes a Geo Time Series™ from the stack, extracts the locations of a Geo Time Series™, puts them in two lists\\n(a list of latitudes and a list of longitudes) and pushes the two lists onto the stack.\\n\\n@param `gts` GTS\\n\\n@param `longitudes` List of longitudes\\n\\n@param `latitudes` List of latitudes\\n\\n\",\"signature\":\"gts<GTS>  LOCATIONS  latitudes<LIST<DOUBLE>> longitudes<LIST<DOUBLE>>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONS\"},\"LOCSTRINGS\":{\"description\":\"The `LOCSTRINGS` function extract the locations from a Geo Time Series™ and builds a list of the 64 bits hexadecimal representation of their \\n[HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` List of [HHCode](https://en.wikipedia.org/wiki/HHCode)\\n\\n\",\"signature\":\"gts<GTS>  LOCSTRINGS  result<LIST<STRING>>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCSTRINGS\"},\"LOG\":{\"description\":\"The `LOG` function consumes a floating point number x from the top of the stack and pushes back its natural logarithm, log<sub>e</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  LOG  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  LOG  lresult<LIST<DOUBLE>>\\ngts<GTS>  LOG  gtsresult<GTS>\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG\"},\"LOG10\":{\"description\":\"The `LOG10` function consumes a floating point number x from the top of the stack and pushes back its common logarithm, log<sub>10</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Common logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of common logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the common logarithm of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  LOG10  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  LOG10  lresult<LIST<DOUBLE>>\\ngts<GTS>  LOG10  gtsresult<GTS>\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG10\"},\"LOG1P\":{\"description\":\"Returns the natural logarithm of the sum of the argument and 1.\\n\\nThe `LOG1P` function consumes a number from the top of the stack and pushes back the natural logarithm for (arg + 1).\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of (value + 1)\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithm of (x + 1), for each value in the given list.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of (x + 1), for each values in the given GTS\\n\\n\",\"signature\":\"value<NUMBER>  LOG1P  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  LOG1P  lresult<LIST<DOUBLE>>\\ngts<GTS>  LOG1P  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG1P\"},\"LOGEVENT->\":{\"description\":\"Warp&nbsp;10™ runner execution logs are encrypted. See [this documentation](/content/03_Documentation/06_Operations/05_Logs/).\\n\\nThe easiest way to read logs is to copy the log output and use this function.\\n\\n\\n@param `logline` The opb64 representation of the aes encrypted log line\\n\\n@param `decodedlog` The decoded logs.\\n\\n\",\"signature\":\"logline<STRING>  LOGEVENT->  decodedlog<STRING>\",\"tags\":[\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"I3x6GKO4I_FhEV\"},\"LOGMSG\":{\"description\":\"`LOGMSG` function prints millisecond timestamp and input text on the standard output.\\n\\nThe `LOGMSG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"signature\":\"msg<STRING>  LOGMSG \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOGMSG\"},\"LOWESS\":{\"description\":\"The `LOWESS` function consumes a bandwidth (a **LONG**) from the top of the stack, then smooths a GTS or a **LIST** of GTS that are below by using\\nlocal regression.\\n\\nTo obtain a good smoothing, it is advised to choose an odd number of at least 5 as the bandwidth parameter.\\n\\n@param `bandwidth` The bandwidth parameter is the number of nearest neighbors to consider when applying the local regression.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `gtsList` List of Geo Time Series™.\\n\\n@param `lresult` List of Geo Time Series™ result.\\n\\n@param `result` Geo Time Series™ result.\\n\\n\",\"signature\":\"gts<GTS> bandwidth<LONG>  LOWESS  result<GTS>\\ngtsList<LIST<GTS>> bandwidth<LONG>  LOWESS  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOWESS\"},\"LR\":{\"description\":\"Compute the [simple linear regression](https://en.wikipedia.org/wiki/Linear_regression) parameters `alpha` (y-intercept) and `beta` (line slope) for the given numerical Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ on which to compute linear regression.\\n\\n@param `beta` The slope of the line fitted on the GTS values.\\n\\n@param `alpha` The y-intercept of the lined fitted on the GTS values.\\n\\n\",\"signature\":\"gts<GTS>  LR  alpha<DOUBLE> beta<DOUBLE>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.13\",\"OPB64name\":\"LR\"},\"LSORT\":{\"description\":\"The `LSORT` function sorts the list on the top of the stack.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `inputlist` The reference of the list to sort\\n\\n@param `sortedlist` The original list sorted, this is not a new list object\\n\\n\",\"signature\":\"inputlist<LIST>  LSORT  sortedlist<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LSORT\"},\"LTTB\":{\"description\":\"The `LTTB` function downsamples a Geo Time Series™ or list thereof using the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"signature\":\"gts<GTS> samples<LONG>  LTTB  downsampled<GTS>\\nlgts<LIST<GTS>> samples<LONG>  LTTB  ldownsampled<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"LTTB\"},\"MACRO->\":{\"description\":\"The `MACRO->` function converts a `MACRO` into a `LIST` of statements.\\n\\n@param `macro` `MACRO` to convert.\\n\\n@param `statements` List of statements from `macro`.\\n\\n\",\"signature\":\"macro<MACRO>  MACRO->  statements<LIST>\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"IJ42JZwhEV\"},\"MACROBUCKETIZER\":{\"description\":\"`MACROBUCKETIZER` converts a macro into a bucketizer which can be used with the [`BUCKETIZE`](/doc/BUCKETIZE) framework.\\n\\nFor each tick in the mapped GTS, the macro will be called with a list containing the following elements on the stack:\\n\\n```js\\n[tick_of_computation,[gts_classes],[label_bucketize],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n@param `macro` Macro used as a bucketizer\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"macro<MACRO>  MACROBUCKETIZER  result<AGGREGATOR>\",\"tags\":[\"bucketize\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROBUCKETIZER\"},\"MACROCONFIG\":{\"description\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration keys looked up are those built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIG`.\\n\\n`MACROCONFIG` will check if the keys exists, if not it will remove the part of the macro name after the last `/` and will try that new key. It will successively try all names up to the last part of the macro name.\\n\\nIf none of those keys existed, the call will end in error.\\n\\nSo for example, if `MACROCONFIG` is called from a macro `my/test/macro` to retrieve the value associated with `mykey`, it will look up the following keys in the configuration:\\n\\n```\\nmykey@my/test/macro\\nmykey@my/test\\nmykey@my\\n```\\n\\n@param `key` Configuration key to look up.\\n\\n\",\"signature\":\"key<STRING>  MACROCONFIG \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIG\"},\"MACROCONFIGDEFAULT\":{\"description\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration key looked is built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIGDEFAULT`.\\n\\n`MACROCONFIGDEFAULT` will check if the keys exists, if not it will push the provided default value onto the stack, or fail with an error if the default was `NULL`. If the key is found, the associated value is pushed on the stack.\\n\\n@param `key` Configuration key to look up.\\n\\n@param `default` Default value to use if the key was not found, or `NULL` to fail if the key is absent.\\n\\n\",\"signature\":\"key<STRING> default<STRING>  MACROCONFIGDEFAULT \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGDEFAULT\"},\"MACROCONFIGSECRET\":{\"description\":\"The `MACROCONFIGSECRET` macro consumes 2 elements on the stack, the current and new secret to be set. If no secret has been set, the function will throw an error.\\n\\nThe secret set by this function is the secret used by [`SETMACROCONFIG`](/doc/SETMACROCONFIG).\\n\\n@param `newSecret` New secret to override the current one.\\n\\n@param `oldSecret` Currently set secret.\\n\\n\",\"signature\":\"oldSecret<STRING> newSecret<STRING>  MACROCONFIGSECRET \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGSECRET\"},\"MACROFILLER\":{\"description\":\"`MACROFILLER` converts a macro into a *filler* which can be used with the [`FILL`](/doc/FILL) function.\\n\\nThe macro will find the following elements on the stack when it is called:\\n\\n```\\n6: Geo Time Series™ to fill. Both this GTS and the one above are only meant to expose the metadata\\n5: Geo Time Series™ of the *other* GTS with a value at the current tick\\n4: list of [ tick latitude longitude elevation value ] for the pre window\\n3: [ tick latitude longitude elevation value ] of the *other* Geo Time Series™\\n2: list of [ tick latitude longitude elevation value ] for the post window\\nTOP: tick which is being filled\\n```\\n\\nIt must leave on the stack a list containing the following elements, in this order:\\n\\n*tick*, *latitude* or `NaN`, *longitude* or `NaN`, *elevation* or `NaN`, *value*\\n\\n\\n@param `macro` Macro to wrap.\\n\\n@param `prewindow` Number of datapoints needed ahead of the missing datapoint.\\n\\n@param `postwindow` Number of datapoints needed after the missing datapoint.\\n\\n@param `filler` Filler instance.\\n\\n\",\"signature\":\"macro<MACRO> prewindow<LONG> postwindow<LONG>  MACROFILLER  filler<FILLER>\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"MACROFILLER\"},\"MACROFILTER\":{\"description\":\"`MACROFILTER` converts a macro into a filter which can be used with the [`FILTER`](/doc/FILTER) framework\\n\\nFor each equivalence classes in the filter set of Geo Time Series™, the macro will be called with the following elements on the stack:\\n\\n```\\n[gts], {labels_equivalence_class}\\n```\\n\\nAfter each call the macro is expected to leave a list on the stack.\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"macro<MACRO>  MACROFILTER  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROFILTER\"},\"MACROMAPPER\":{\"description\":\"`MACROMAPPER` converts a macro into a mapper which can be used with the [`MAP`](/doc/MAP) framework.\\n\\nFor each tick in the mapped Geo Time Series™, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROMAPPER` can also create a multivariate mapper, that is, a mapper that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate mapper with MAP, each input GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n\\n@param `macro` Macro to convert\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"macro<MACRO>  MACROMAPPER  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROMAPPER\"},\"MACROREDUCER\":{\"description\":\"`MACROREDUCER` converts a macro into a reducer which can be used with the [`REDUCE`](/doc/REDUCE) framework\\n\\nFor each tick in the Geo Time Series™ to reduce, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nEach list have a length of the number of GTSs in the partition. Each missing value are replaced by `null`, each missing tick by the minimum value of long and each missing latitude, longitude or elevation by NaN. The `label_maps` list as one more element at the end compared to the other lists: the common labels for the GTSs of the partition.\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROREDUCER` can also create a multivariate reducer, that is, a reducer that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate reducer with REDUCE, each input List of GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Reducer to apply\\n\\n\",\"signature\":\"macro<MACRO>  MACROREDUCER  result<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROREDUCER\"},\"MACROTTL\":{\"description\":\"In a file defining a server side macro, the `MACROTTL` function defines the time to live of the macro code. If the macro is accessed after this delay has expired and on-demand loading of macros is enabled, it will unconditionally be reloaded from disk.\\n\\nThis feature is very useful when you have macros generated dynamically on the server side which change frequently. Using `MACROTTL` you can ensure the newest code is loaded regardless of the rescan interval of the macro directory.\\n\\nIn a file defining a server side macro, the call to `MACROTTL` should appear before or after the actual macro definition but not within.\\n\\nThe time after which the macro will no longer be valid is the time of the call to `MACROTTL` plus its parameter.\\n\\n@param `ttl` The time to live to apply to the macro, in ms.\\n\\n\",\"signature\":\"ttl<LONG>  MACROTTL \",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MACROTTL\"},\"MAKEGTS\":{\"description\":\"The `MAKEGTS` function builds a Geo Time Series™ from **LIST**s.\\n\\nThe timestamp and values lists must be of the exact same size.\\nHowever, as latitudes, longitudes and elevations are optional in a Geo Time Series™, these lists can be shorter than the timestamps lists or even empty. If there are missing latitudes, longitudes and elevations, use [`NaN`](/doc/NaN).\\n\\n@param `values` Values of the GTS\\n\\n@param `elevations` Elevations of the GTS\\n\\n@param `longitudes` Longitudes of the GTS\\n\\n@param `latitudes` Latitudes of the GTS\\n\\n@param `timestamps` Timestamps of the GTS\\n\\n@param `result` Geo Time Series™\\n\\n\",\"signature\":\"timestamps<LIST> latitudes<LIST> longitudes<LIST> elevations<LIST> values<LIST>  MAKEGTS  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAKEGTS\"},\"MAN\":{\"description\":\"The `MAN` function returns the help link for a function name.\\n\\nIf the function does not exists, it returns http://www.warp10.io/\\n\\n\\n@param `function` The function name\\n\\n@param `any` Anything except a function name\\n\\n@param `url` URL of the online help\\n\\n\",\"signature\":\"function<STRING>  MAN  url<STRING>\\nany<ANY>  MAN  url<STRING>\\n MAN  url<STRING>\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.2.18\",\"OPB64name\":\"MAN\"},\"MAP\":{\"description\":\"The `MAP` framework applies a function on values of a Geo Time Series™ that fall into a sliding window.\\n\\nThe `MAP` framework is designed to use an existing MAPPER or a custom MACROMAPPER. It could also accept a macro: the current window is passed as a GTS to the macro. See examples below.\\n\\n@param `result` List of Geo Time Series™, one for each input, whose values are the results of the function application on each sliding window. If the input series is bucketized, the result series will be too unless outputTicks is non null.\\n\\n@param `gtsList` A list of Geo Time Series™, or a single Geo Time Series™\\n\\n@param `mapper` Mapper function to apply\\n\\n@param `pre` Width of the sliding window before the current tick. This parameter is interpreted as a number of ticks if its value is positive, and as a number of time units if its value is negative. A value of 0 means the sliding window does not cover the past. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the past. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `post` Width of the sliding window after the current tick. Values have the same semantics as for the `pre` parameter. A value of 0 means the sliding window does not cover the future. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the future. Defaults to 0.\\n\\n@param `occurrences` Limit the number of computations to that number. If the value is 0, compute a value for each tick of the input Geo Time Series™. If it is positive, compute that many values starting from the oldest to the most recent tick. In the other case, do that many computations in the reverse order. This is useful when you are interested in a single result, like the max or sum of all values. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `step` The step size in number of ticks. The mapper beggins at the oldest tick and goes to the tick `step` after the current one and so on. Defaults to 1.\\n\\n@param `overrideTick` If set to true, the tick value returned by the mapper is used to update the current tick, else it is ignored and the original tick is kept. Defaults to false.\\n\\n@param `outputTicks` If non null, it sets the list of ticks that is traversed to anchor the sliding windows (instead of the ticks of the input Geo Time Series™). In that case, a tick of the input Geo Time Series™ that would be equal to one of these anchor points is counted by a positive `post` if `occurences` is non-negative, or by a positive `pre` if `occurences` is negative.\\n\\n\",\"signature\":\"[ gtsList<LIST<GTS>> mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> ]  MAP  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>> mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> step<LONG> ]  MAP  result<LIST<GTS>>\\n[ gtsList<LIST<GTS>> mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> step<LONG> overrideTick<BOOLEAN> ]  MAP  result<LIST<GTS>>\\ngtsList<LIST<GTS>> { mapper<AGGREGATOR> pre<LONG> post<LONG> occurrences<LONG> step<LONG> overrideTick<BOOLEAN> outputTicks<LIST<LONG>>  } MAP  result<LIST<GTS>>\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAP\"},\"MAP->\":{\"description\":\"The `MAP->` function expands the **MAP** on top of the stack into pairs of elements followed by the number of elements extracted. If the **MAP** was \\ncreated by a call to `->MAP`, the order of the elements will be the same as prior to calling `->MAP`.\\n\\n@param `map` Map to expand\\n\\n@param `key` Key of the pair\\n\\n@param `value` Value of the pair\\n\\n@param `mapsize` The number of key value pushed on the stack.\\n\\n\",\"signature\":\"map<MAP>  MAP->  key<ANY*> value<ANY*> mapsize<LONG>\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"IJ4FAIs\"},\"MAPID\":{\"description\":\"Generates a fingerprint of a map.\\n\\n@param `input` Input map\\n\\n@param `result` Fingerprint of the map\\n\\n\",\"signature\":\"input<MAP>  MAPID  result<STRING>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAPID\"},\"MARK\":{\"description\":\"Pushes a mark onto the stack.\\n\\n@param `mark` A MARK instance.\\n\\n\",\"signature\":\" MARK  mark<MARK>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MARK\"},\"MAT->\":{\"description\":\"The `MAT->` function converts a Matrix into nested lists.\\n\\n\\n@param `input` Matrix to convert\\n\\n@param `result` Nested list of values\\n\\n\",\"signature\":\"input<MATRIX>  MAT->  [  result<LIST<LIST<DOUBLE>>>  ]\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"IJ4JAIs\"},\"MATCH\":{\"description\":\"The `MATCH` function applies a regular expression (regexp) to a string.\\n\\nIt consumes two parameters from the top of the stack: the regexp pattern and the string to test matching with.\\n\\nIf the string doesn’t match the regexp, the function return an empty list. If it matches, the function will return a list of every matching group.\\n\\nInstead of using a regular expression **STRING**, you can also use the result of [`MATCHER`](/doc/MATCHER) for improved performance.\\n\\n@param `regexp` Regular expression to apply\\n\\n@param `string` String to evaluate\\n\\n@param `result` List of every matching group.\\n\\n\",\"signature\":\"string<STRING> regexp<STRING>  MATCH  result<LIST<STRING>>\\nstring<STRING> regexp<MATCHER>  MATCH  result<LIST<STRING>>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCH\"},\"MATCHER\":{\"description\":\"The `MATCHER` function will compile a regular expression into an efficient object which can be used by [`MATCH`](/doc/MATCH).\\n\\n@param `regexp` Regular expression to compile\\n\\n@param `result` Compiled regula expression\\n\\n\",\"signature\":\"regexp<STRING>  MATCHER  result<MATCHER>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCHER\"},\"MAX\":{\"description\":\"Returns the greater of two numeric values.\\n\\nThe `MAX` function consumes two numeric parameters from the top of the stack and pushes back the greatest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The larger of p1 and p2.\\n\\n@param `sresult` The larger of the elements in the given list.\\n\\n@param `gresult` The larger of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the max between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the max between the element in the GTS and the given value.\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  MAX  result<NUMBER>\\np1<COUNTER> p2<COUNTER>  MAX  result<LONG>\\np1<COUNTER> p2<NUMBER>  MAX  result<NUMBER>\\np1<NUMBER> p2<COUNTER>  MAX  result<NUMBER>\\nnlist<LIST<NUMBER>>  MAX  sresult<NUMBER>\\nclist<LIST<COUNTER>>  MAX  sresult<LONG>\\nnlist<LIST<NUMBER>> value<NUMBER>  MAX  nresult<LIST<NUMBER>>\\nclist<LIST<COUNTER>> value<COUNTER>  MAX  nresult<LIST<LONG>>\\nclist<LIST<COUNTER>> value<NUMBER>  MAX  nresult<LIST<NUMBER>>\\ngts<GTS>  MAX  gresult<NUMBER>\\ngts<GTS> value<NUMBER>  MAX  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAX\"},\"MAXBUCKETS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXBUCKETS` function modifies the maximum number of buckets which can be created by a call to [`BUCKETIZE`](/doc/BUCKETIZE) by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXBUCKETS \",\"tags\":[\"platform\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXBUCKETS\"},\"MAXDEPTH\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXDEPTH` function modifies the maximum depth (number of levels) of the execution stack by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXDEPTH \",\"tags\":[\"platform\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXDEPTH\"},\"MAXGEOCELLS\":{\"description\":\"Modifies the maximum number of cells a **GEOSHAPE** created by [`GEO.WKT`](/doc/GEO.WKT) or [`GEO.JSON`](/doc/GEO.JSON) can have. The limit can be modified up to the configured value for `warpscript.maxgeocells.hard`.\\n\\n@param `maxcells` New limit to set.\\n\\n\",\"signature\":\"maxcells<LONG>  MAXGEOCELLS \",\"tags\":[\"platform\"],\"since\":\"1.2.11\",\"OPB64name\":\"MAXGEOCELLS\"},\"MAXGTS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard limit \\nwhich can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXGTS` function modifies the maximum number of Geo Time Series™ which can be fetched by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXGTS \",\"tags\":[\"platform\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXGTS\"},\"MAXJSON\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to\\nthe hard limit value.\\n\\nThe `MAXJSON` function modifies the maximum number of characters in a json produced by [`->JSON`](/doc/AIt9JoxD).\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXJSON \",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"MAXJSON\"},\"MAXLONG\":{\"description\":\"Pushes [Long.MAX_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MAX_VALUE) onto the stack.\\n\\n@param `result` Long.MAX_LONG\\n\\n\",\"signature\":\" MAXLONG  result<LONG>\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLONG\"},\"MAXLOOP\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard\\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe MAXLOOP function modifies the maximum number of milliseconds which can be spent in a loop setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXLOOP \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLOOP\"},\"MAXOPS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXOPS` function modifies the maximum number of operations which can be performed during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXOPS \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXOPS\"},\"MAXPIXELS\":{\"description\":\"Modifies the maximum size (in pixels) of images which can be created by [`PGraphics`](/doc/PGraphics). The limit can be modified up to the value configured in `warpscript.maxpixels.hard`.\\n\\n@param `pixels` Maximum size (in pixels).\\n\\n\",\"signature\":\"pixels<LONG>  MAXPIXELS \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXPIXELS\"},\"MAXRECURSION\":{\"description\":\"Modifies the maximum nesting depth of macro calls. The limit can be modified up to the value configured in `warpscript.maxrecursion.hard`.\\n\\n@param `depth` Maximum nesting depth.\\n\\n\",\"signature\":\"depth<LONG>  MAXRECURSION \",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MAXRECURSION\"},\"MAXSYMBOLS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a \\nhard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXSYMBOLS` function modifies the maximum number of simultaneous symbols which can be defined on the stack during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"limit<LONG>  MAXSYMBOLS \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXSYMBOLS\"},\"MAXURLFETCHCOUNT\":{\"description\":\"The `MAXURLFETCHCOUNT` function modifies the maximum number of URLs which can be fetched with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.MAXURLFETCHCOUNT.limit.hard`.\\n\\n@param `limit` The maximum number of URLs which can be fetched.\\n\\n\",\"signature\":\"limit<LONG>  MAXURLFETCHCOUNT \",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHCOUNT\"},\"MAXURLFETCHSIZE\":{\"description\":\"The `MAXURLFETCHSIZE` function modifies the maximum cumulative size of fetched payloads with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.urlfetch.maxsize.hard` and is expressed as a number of bytes.\\n\\n@param `limit` The maximum cumulative size of fetched payloads.\\n\\n\",\"signature\":\"limit<LONG>  MAXURLFETCHSIZE \",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHSIZE\"},\"MCHECKSIG\":{\"description\":\"The `MCHECKSIG` function checks if a macro signature is valid. If the macro does not contain a signature, the function returns `false` just as if the macro was signed but the signature was not valid. You can use [`MSIGCOUNT`](/doc/MSIGCOUNT) first to determine if the macro contains a signature or not.\\n\\n@param `macro` Macro whose signature must be checked.\\n\\n@param `checked` Boolean indicating if the signature could be validated.\\n\\n\",\"signature\":\"macro<MACRO>  MCHECKSIG  macro<MACRO> checked<BOOLEAN>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MCHECKSIG\"},\"MD2\":{\"description\":\"The `MD2` function digests a byte array on the stack with the cryptographic hash function [`MD2`](https://en.wikipedia.org/wiki/MD2_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  MD2  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD2\"},\"MD4\":{\"description\":\"The `MD4` function digests a byte array on the stack with the cryptographic hash function [`MD4`](https://en.wikipedia.org/wiki/MD4).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  MD4  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD4\"},\"MD5\":{\"description\":\"The `MD5` function digests a byte array on the stack with the cryptographic hash function [`MD5`](https://en.wikipedia.org/wiki/MD5).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  MD5  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"MD5\"},\"MDETACH\":{\"description\":\"The `MDETACH` function detaches a signature macro from a signed macro. The original macro is shrunk, it is not a shorter copy, you can use `+` right after the call to `MDETACH` to recreate the original macro.\\n\\nIf the input macro does not contain a signature, the result of applying `MDETACH` will be an empty macro and the original macro will not be modified.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"signature\":\"macro<MACRO>  MDETACH  macro<MACRO> sig<MACRO>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MDETACH\"},\"MERGE\":{\"description\":\"Merge several Geo Time Series™ together.\\n\\nThe `MERGE` function expects a **LIST** of Geo Time Series™ on the top of the stack. It will consume these GTS and push onto the stack a single GTS instance\\nwith all measurements found in the GTS instances present in the **LIST**. The name and labels of the resulting GTS instance are those of the first one of the\\n**LIST**.\\n\\n`MERGE` do not override values on the same timestamp, they are appenned.\\n\\n@param `gtsList` The list of Geo Time Series™\\n\\n@param `result` The merged Geo Time Series™\\n\\n\",\"signature\":\"gtsList<LIST<GTS>>  MERGE  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MERGE\"},\"META\":{\"description\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `META` is applied must have a non empty name and attributes (possibly empty).\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"signature\":\"gtsList<LIST<GTS>> writeToken<STRING>  META \",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"META\"},\"METADIFF\":{\"description\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend in an incremental manner. New attributes are added and already existing attributes are updated or removed if their value is an empty string.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `METADIFF` is applied must have a non empty name and attributes (possibly empty).\\n\\nTo be able to use `METADIFF`, you must configure *ingress.attributes.allowdelta = true*. \\n\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"signature\":\"gtsList<LIST<GTS>> writeToken<STRING>  METADIFF \",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"METADIFF\"},\"METAMATCH\":{\"description\":\"`METAMATCH` expose the [`filter.byselector`](/doc/filter.byselector) internals. It returns true if the input GTS metadata matches the given selector. Input can also be an encoder, or a list of GTS or encoders.\\n\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n\\n@param `gts` Geo Time Series™ instance to test\\n\\n@param `encoder` Encoder to test\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `match` Returns true when gts matches the selector\\n\\n@param `gtsList` List of Geo Time Series™ instances to test\\n\\n@param `encoderList` List of Geo Time Series™ instances to test\\n\\n@param `matchList` Returns true when gts or encoder of the input list matches the selector. matchList size is the same as input size, and order is preserved.\\n\\n\",\"signature\":\"gts<GTS> selector<STRING>  METAMATCH  match<BOOLEAN>\\nencoder<ENCODER> selector<STRING>  METAMATCH  match<BOOLEAN>\\ngtsList<LIST<GTS>> selector<STRING>  METAMATCH  matchList<LIST<BOOLEAN>>\\nencoderList<LIST<ENCODER>> selector<STRING>  METAMATCH  matchList<LIST<BOOLEAN>>\",\"tags\":[\"filter\"],\"since\":\"2.11\",\"OPB64name\":\"METAMATCH\"},\"METAOFF\":{\"description\":\"Disables meta operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a meta operation is attempted.\\n\\n\",\"signature\":\"message<STRING> secret<STRING>  METAOFF \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAOFF\"},\"METAON\":{\"description\":\"Enables meta operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"signature\":\"secret<STRING>  METAON \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAON\"},\"METASET\":{\"description\":\"Performs a [`FIND`](/doc/FIND), retrieving a list of Geo Time Series™ and builds a *metaset* which can be distributed to allow access to those GTS without having to give away credentials.\\n\\nMetaset support is only available if a key has been set for `warp.aes.metasets`.\\n\\n@param `ttl` Time to live of the produces metaset. It will not be usable after that much time has elapsed since the current time. The ttl is specified in time units.\\n\\n@param `maxduration` The maximum span of data which can be retrieved using this metaset, in time units.\\n\\n@param `notafter` Most recent timestamp of the data this metaset can retrieve.\\n\\n@param `notbefore` Most ancient timestamp of the data this meataset can retrieve.\\n\\n@param `labels` Map of label selectors.\\n\\n@param `class` Geo Time Series™ class selector.\\n\\n@param `token` Read token to use for retrieving the GTS.\\n\\n@param `metaset` Encrypted metaset which can be used with a [`FETCH`](/doc/FETCH).\\n\\n\",\"signature\":\"[ token<STRING> class<STRING> labels<MAP> notbefore<LONG> notafter<LONG> maxduration<LONG> ttl<LONG> ]  METASET  metaset<STRING>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"METASET\"},\"METASORT\":{\"description\":\"Sorts a list of Geo Time Series™ according to elements of their metadata. The list of elements to consider for sorting can contain label/attribute names or NULL to consider the classname. Elements will be considered in the order in which they appear in the list.\\nIf two GTSs match the same criteria, the order considered is the one given in the list of Geo Time Series™.\\n\\nIf the list of elements is empty, the sort will apply on class name then on label and last on attributes.\\n\\nWhen sorting on a label/attribute, if 2 GTS match the same criterion, the one with the smallest number of labels is the first.\\nWhen sorting on a label/attribute, the GTS who does not have the label will be considered first.\\n\\n@param `gts` List of Geo Time Series™ to sort.\\n\\n@param `elements` Metadata elements to consider for sorting.\\n\\n@param `considerAttributes` Set to true to consider attributes as labels\\n\\n@param `sorted` Sorted list of GTS.\\n\\n\",\"signature\":\"gts<LIST<GTS>> elements<LIST<STRING>>  METASORT  sorted<LIST<GTS>>\\ngts<LIST<GTS>> elements<LIST<STRING>> considerAttributes<BOOLEAN>  METASORT  sorted<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"METASORT\"},\"MFILTER\":{\"description\":\"The `MFILTER` function filters the element of a **MAP** according to the result of a macro execution on each key/value pair of the **MAP**. It produces a **MAP** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of filtered key/value pairs\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"inputmap<MAP> macro<MACRO>  MFILTER  results<MAP>\\ninputmap<MAP> macro<MACRO> index<BOOLEAN>  MFILTER  results<MAP>\",\"tags\":[\"maps\"],\"since\":\"2.9.0\",\"OPB64name\":\"MFILTER\"},\"MIN\":{\"description\":\"Returns the smaller of two numeric values.\\n\\nThe `MIN` function consumes two numeric parameters from the top of the stack and pushes back the smallest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The smaller of p1 and p2.\\n\\n@param `sresult` The smaller of the elements in the given list.\\n\\n@param `gresult` The smaller of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the min between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the min between the element in the GTS and the given value.\\n\\n\",\"signature\":\"p1<NUMBER> p2<NUMBER>  MIN  result<NUMBER>\\np1<COUNTER> p2<COUNTER>  MIN  result<LONG>\\np1<COUNTER> p2<NUMBER>  MIN  result<NUMBER>\\np1<NUMBER> p2<COUNTER>  MIN  result<NUMBER>\\nnlist<LIST<NUMBER>>  MIN  sresult<NUMBER>\\nclist<LIST<COUNTER>>  MIN  sresult<LONG>\\nnlist<LIST<NUMBER>> value<NUMBER>  MIN  nresult<LIST<NUMBER>>\\nclist<LIST<COUNTER>> value<COUNTER>  MIN  nresult<LIST<LONG>>\\nclist<LIST<COUNTER>> value<NUMBER>  MIN  nresult<LIST<NUMBER>>\\ngts<GTS>  MIN  gresult<NUMBER>\\ngts<GTS> value<NUMBER>  MIN  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MIN\"},\"MINLONG\":{\"description\":\"Pushes [Long.MIN_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MIN_VALUE) onto the stack.\\n\\n@param `result` Long.MIN_VALUE\\n\\n\",\"signature\":\" MINLONG  result<LONG>\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MINLONG\"},\"MINREV\":{\"description\":\"The `MINREV` function consumes a string representing a revision on the stack and puts back a boolean indicating if the revision of the current Warp 10™ platform is newer or equal.\\n\\n@param `revision` A string representing a revision (semantic versioning). Given a version number MAJOR.MINOR.PATCH, .MINOR or .MINOR.PATCH can be omitted.\\n\\n@param `newer` A boolean indicating wether the revision of the current Warp 10™ platform is newer or equal to the given revision.\\n\\n\",\"signature\":\"revision<STRING>  MINREV  newer<BOOLEAN>\",\"tags\":[\"platform\"],\"since\":\"1.2.23\",\"OPB64name\":\"MINREV\"},\"MMAP\":{\"description\":\"The `MMAP` function applies a macro on each key/value pair of a **MAP**, producing a **MAP** with the two elements on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it.\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"inputmap<MAP> macro<MACRO>  MMAP  results<MAP>\\ninputmap<MAP> macro<MACRO> index<BOOLEAN>  MMAP  results<MAP>\",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"MMAP\"},\"MODE\":{\"description\":\"The `MODE` function computes the mode(s) for a given Geo Time Series™ or a GTS **LIST**. Foreach Geo Time Series™ pushes back on the stack a list containing\\ntheir mode(s).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Mode of the list (the items that occurs most often)\\n\\n\",\"signature\":\"gts<GTS>  MODE  result<LIST>\\ngtsList<LIST<GTS>>  MODE  result<LIST<LIST>>\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"MODE\"},\"MONOTONIC\":{\"description\":\"Produces a new Geo Time Series™ from an input by modifying the value so the result is monotonous. This is technically applying a ratchet effect on values.\\n\\nThe `MONOTONIC` function expects a boolean on top of the stack and a Geo Time Series™ or list thereof below the boolean. The boolean indicates whether the\\nresult should be monotonically increasing (false) or decreasing (true).\\n\\n@param `trend` Whether the result should be monotonically increasing (false) or decreasing (true)\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` New Geo Time Series™\\n\\n@param `resultList` List of new Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> trend<BOOLEAN>  MONOTONIC  result<GTS>\\ngtsList<LIST<GTS>> trend<BOOLEAN>  MONOTONIC  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MONOTONIC\"},\"MOTIONSPLIT\":{\"description\":\"The `MOTIONSPLIT` function splits Geo Time Series™ instances based on several possible motion criteria. Split parameters can be combined to split on multiple criteria.\\n\\n`MOTIONSPLIT` can split on:\\n- stopped state detection\\n- moving to stopped transition\\n- time difference between two ticks (just as [`TIMESPLIT`](/doc/TIMESPLIT) does).\\n- maximal distance between two consecutive positions.\\n\\n`MOTIONSPLIT` parameters:\\n- **timesplit**: LONG value, time in platform time unit. Splits if the time difference between two consecutive ticks is strictly greater than this parameter. If defined, the split type label will be \\\"timesplit\\\".\\n- **distance.split**: DOUBLE value, distance in meter. Splits if the orthodromic distance between two consecutive locations is strictly greater than this parameter. If defined, the split type label will be \\\"distancesplit\\\".\\n- **stopped.min.time**: LONG value, time in platform time unit. This is the minimum time the consecutive locations should stay in the stopped zone radius to consider a stop state. If defined, the split type label will be \\\"stopped\\\".\\n- **stopped.max.radius**: DOUBLE value, distance in meter. As long as consecutive positions remains in the radius during stopped.min.time, `MOTIONSPLIT` detect a stopped state.\\n- **stopped.max.speed**: DOUBLE value, speed in m/s. If the speed is greater than this value while in stopped state, `MOTIONSPLIT` exits the stopped state.\\n- **stopped.max.mean.speed**: DOUBLE value, speed in m/s. Maximum mean speed in the proximity zone that prevent the split. `MOTIONSPLIT` will split only if there is a full stop during the given time and radius, and if the mean speed in the proximity zone is less than this parameter.\\n- **stopped.split**: BOOLEAN value. If true, `MOTIONSPLIT` also splits between stopped and moving sequences. If defined, the split type label will be \\\"stopped\\\" or \\\"moving\\\".\\n- **label.stopped.time**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the time in stopped state. If the split source is not a stop detection, this label won't be set.\\n- **label.split.number**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the split number, starting from 1.\\n- **label.split.type**: STRING value. If defined, `MOTIONSPLIT` will add an extra label that contains the split reason. It could be \\\"timesplit\\\", \\\"distancesplit\\\", \\\"end\\\", \\\"stopped\\\" or \\\"moving\\\".\\n\\n`MOTIONSPLIT` split type priorities:\\n- If stopped.min.time and stopped.max.radius are set, the stop detection has the first priority.\\n- If `MOTIONSPLIT` does not detect a stopped state, it looks for a distance split.\\n- If `MOTIONSPLIT` does not detect a stopped state or a distance split, it looks for a time split.\\n\\n\\n@param `parameters` List of splitting parameters. See the function description.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"signature\":\"gts<GTS> parameters<MAP>  MOTIONSPLIT  splits<LIST<GTS>>\\nlgts<LIST<GTS>> parameters<MAP>  MOTIONSPLIT  lsplits<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"MOTIONSPLIT\"},\"MRSEC\":{\"description\":\"The `MRSEC` function modifies a `MACRO` and any macro it contains, setting its *secure* flag to `true`. It is a recursive version of [`MSEC`](/doc/MSEC).\\n\\n@param `macro` `MACRO` to recursively flag as secure.\\n\\n@param `secured` The original `MACRO` now recursively marked as secure.\\n\\n\",\"signature\":\"macro<MACRO>  MRSEC  secured<MACRO>\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MRSEC\"},\"MSEC\":{\"description\":\"The `MSEC` function modifies a `MACRO`, setting its *secure* flag to `true`. Some functions behave differently in the presence of secure macros, namely:\\n\\n* `SNAPSHOT` of a secure macro does not produce the actual code of the macro but a comment indicating the macro is secure.\\n* `ASREGS` and `DEREF` cannot operate on secure macros.\\n\\nMaking a macro secure is handy when returning a macro as the result of another macro call. The returned macro cannot be altered or inspected by the calling code thus providing a level of security and enabling the return of a singleton macro.\\n\\n@param `macro` `MACRO` to flag as secure.\\n\\n@param `secured` The original `MACRO` now marked as secure.\\n\\n\",\"signature\":\"macro<MACRO>  MSEC  secured<MACRO>\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MSEC\"},\"MSGFAIL\":{\"description\":\"The `MSGFAIL` function stops the execution of WarpScript code by throwing an exception. \\n\\n@param `message` The exception message\\n\\n\",\"signature\":\"message<STRING>  MSGFAIL \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSGFAIL\"},\"MSIG\":{\"description\":\"The `MSIG` function extracts a signature macro from a signed macro. The function can also be used with 3 `STRING` parameters in which case is simply consumes those parameters and emits nothing. This latter case is meant for signature macros so such macros are valid macros which do nothing. See [`MSIGN`](/doc/MSIGN) for the format of the signature macros.\\n\\nIf the input macro does not contain a signature, the result of applying `MSIG` will be an empty macro.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"signature\":\"macro<MACRO>  MSIG  macro<MACRO> sig<MACRO>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIG\"},\"MSIGCOUNT\":{\"description\":\"The `MSIGCOUNT` function counts the number of signatures present in a macro. Note that it does not verify the said signatures.\\n\\n@param `macro` Macro from which to extract the signature count.\\n\\n@param `count` Number of signatures present in the macro.\\n\\n\",\"signature\":\"macro<MACRO>  MSIGCOUNT  count<LONG>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGCOUNT\"},\"MSIGINFO\":{\"description\":\"The `MSIGINFO` function extracts elements from a signed or signature macro. If a signature was found it outputs a map with the following keys, otherwise it outputs an empty map.\\n\\n| Key   | Description|\\n|-------|------------|\\n| `key` | ECC public key to use for signature verification. |\\n| `sig` | Byte array containing the signature. |\\n\\n@param `macro` Macro from which to extract the signature infos.\\n\\n@param `infos` Map containing the extracted informations.\\n\\n\",\"signature\":\"macro<MACRO>  MSIGINFO  macro<MACRO> infos<MAP>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGINFO\"},\"MSIGN\":{\"description\":\"The `MSIGN` function creates a cryptographic signature of a macro. The cryptographic signature is itself a macro with the following structure:\\n\\n```\\n<%\\n  'CURVE'\\n  'PUBKEY'\\n  'SIG'\\n  MSIG\\n%>\\n```\\n\\nwhere `CURVE` is the name of the [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) to use, `PUBKEY` is the hex encoded public key (`Q` parameter) which can be used to verify the signature and `SIG` is the hex encoded `SHA256WITHECSDA` signature of the `UTF-8` content of the snapshot of the macro.\\n\\nThe resulting signature macro can be concatenated at the end of the original unsigned macro to create a *signed* macro. The signature macro can then be extracted using [`MSIG`](/doc/MSIG) or [`MDETACH`](/doc/MDETACH).\\n\\n@param `privatekey` ECC private key to use for signing `macro`.\\n\\n@param `macro` Macro to sign.\\n\\n@param `sig` Signature macro.\\n\\n\",\"signature\":\"macro<MACRO> privatekey<KEY>  MSIGN  macro<MACRO> sig<MACRO>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGN\"},\"MSORT\":{\"description\":\"The function `MSORT` inspects the top of the stack. If it is a **MAP**, it sorts the **MAP** according to its keys. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\n@param `map` Map to sort\\n\\n@param `result` Sorted map\\n\\n\",\"signature\":\"map<MAP>  MSORT  result<MAP>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSORT\"},\"MSTU\":{\"description\":\"The `MSTU` function pushes onto the stack the number of platform time units in one millisecond. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one millisecond.\\n\\n\",\"signature\":\" MSTU  numberTimeUnits<LONG>\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSTU\"},\"MULTIPLYEXACT\":{\"description\":\"The `MULTIPLYEXACT` function consumes two LONGs from the top of the stack and puts back the product. If the product overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `prod` The product of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sprod` The product of all the elements of list\\n\\n@param `gprod` The product of all the elements of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lprod` List of **LONG** where each value is the product of y and an element in lx\\n\\n@param `gtsprod` GTS of **LONG** values where each value is the product of y and an element in lx\\n\\n\",\"signature\":\"x<NUMBER> y<NUMBER>  MULTIPLYEXACT  prod<LONG>\\nlist<LIST<NUMBER>>  MULTIPLYEXACT  sprod<LONG>\\nlx<LIST<NUMBER>> y<NUMBER>  MULTIPLYEXACT  lprod<LIST<LONG>>\\ngts<GTS>  MULTIPLYEXACT  gprod<LONG>\\ngtsx<GTS> y<NUMBER>  MULTIPLYEXACT  gtsprod<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"MULTIPLYEXACT\"},\"MUSIGMA\":{\"description\":\"The `MUSIGMA` function calculates the mean and the standard deviation of a Geo Time Series. It consumes two parameters from the top of the stack: a boolean \\n(to choose if [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction) should be applied on the standard deviation) and a numeric GTS, and \\nit pushes onto the stack its mean (mu) and its standard deviation (sigma).\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `sigma` Standard deviation\\n\\n@param `mu` Mean\\n\\n@param `gts` A single Geo Time Series\\n\\n\",\"signature\":\"gts<GTS> bessel<BOOLEAN>  MUSIGMA  mu<DOUBLE> sigma<DOUBLE>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MUSIGMA\"},\"MUTEX\":{\"description\":\"Attempts to hold a named lock, creating it if needed, and execute a macro while holding the lock. When the macro execution terminates, either normally or with an error, the lock is released.\\n\\n@param `mutex` Name of lock to hold.\\n\\n@param `macro` Macro to execute while holding the lock.\\n\\n\",\"signature\":\"macro<MACRO> mutex<STRING>  MUTEX \",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"MUTEX\"},\"MVELEVATIONS\":{\"description\":\"The `MVELEVATIONS` function extracts elevations from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVELEVATIONS` function will emit a list with two elements (a pair), the first element will be the elevation associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the elevations of the Multivariate value itself.\\n\\nIf a tick has no associated elevation, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted elevations.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVELEVATIONS  output<LIST>\\ninput<GTS>  MVELEVATIONS  output<LIST>\\nlinput<LIST>  MVELEVATIONS  output<LIST>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVELEVATIONS\"},\"MVERIFY\":{\"description\":\"The `MVERIFY` function checks if a macro signature is valid and throws an exception if it is not or if the macro was not signed.\\n\\n@param `macro` Macro whose signature must be verified.\\n\\n\",\"signature\":\"macro<MACRO>  MVERIFY  macro<MACRO>\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MVERIFY\"},\"MVHHCODES\":{\"description\":\"The `MVHHCODES` function extracts [`HHCodes`](https://en.wikipedia.org/wiki/HHCode) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVHHCODES` function will emit a list with two elements (a pair), the first element will be the HHCode associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the HHCodes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted HHCodes.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVHHCODES  output<LIST>\\ninput<GTS>  MVHHCODES  output<LIST>\\nlinput<LIST>  MVHHCODES  output<LIST>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVHHCODES\"},\"MVINDEXSPLIT\":{\"description\":\"The `MVINDEXSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVINDEXSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element index (first element being at index 0).\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:INDEX` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of indices or indices ranges can be specified to only produce encoders for the indices which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `indices` List of indices or indices ranges (list of two indices), used to restrict which indices to consider.\\n\\n@param `renaming` Map of index (LONG) to parameter to `RENAME`. If no entry is present for an index, `+:INDEX` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> indices<LIST>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> indices<LIST> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> indices<LIST>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> indices<LIST> renaming<MAP>  MVINDEXSPLIT  output<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTSENCODER>> indices<LIST>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTSENCODER>> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTSENCODER>> indices<LIST> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>> indices<LIST>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\\nlinput<LIST<GTS>> indices<LIST> renaming<MAP>  MVINDEXSPLIT  loutput<LIST<LIST<GTSENCODER>>>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVINDEXSPLIT\"},\"MVLOCATIONS\":{\"description\":\"The `MVLOCATIONS` function extracts location (latitude, longitude) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVLOCATIONS` function will emit a list with two elements (a pair), the first element will be the latitude and longitude (a list) associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the latitudes and longitudes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `[ NaN NaN ]` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted locations.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVLOCATIONS  output<LIST>\\ninput<GTS>  MVLOCATIONS  output<LIST>\\nlinput<LIST>  MVLOCATIONS  output<LIST>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVLOCATIONS\"},\"MVTICKS\":{\"description\":\"The `MVTICKS` function extracts ticks from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVTICKS` function will emit a list with two elements (a pair), the first element will be the tick at which the Multivariate value was encountered, the second element will be a list containing the ticks of the Multivariate value itself.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted ticks.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVTICKS  output<LIST>\\ninput<GTS>  MVTICKS  output<LIST>\\nlinput<LIST>  MVTICKS  output<LIST>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKS\"},\"MVTICKSPLIT\":{\"description\":\"The `MVTICKSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVTICKSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element timestamp.\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:TIMESTAMP` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of timestamps or timestamp ranges can be specified to only produce encoders for the timestamps which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `timestamps` List of timestamps or timestamps ranges (list of two timestamps), used to restrict which timestamps to consider.\\n\\n@param `renaming` Map of timestamp (LONG) to parameter to `RENAME`. If no entry is present for a timestamp, `+:TIMESTAMP` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> timestamps<LIST>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTSENCODER> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> timestamps<LIST>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\ninput<GTS> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  output<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>> timestamps<LIST>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTSENCODER>> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>> timestamps<LIST>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\\nlinput<LIST<GTS>> timestamps<LIST> renaming<MAP>  MVTICKSPLIT  loutput<LIST<GTSENCODER>>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKSPLIT\"},\"MVVALUES\":{\"description\":\"The `MVVALUES` function extracts values from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted values.\\n\\n\",\"signature\":\"input<GTSENCODER>  MVVALUES  output<LIST>\\ninput<GTS>  MVVALUES  output<LIST>\\nlinput<LIST>  MVVALUES  output<LIST>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVVALUES\"},\"NAME\":{\"description\":\"The `NAME` function consumes a Geo Time Series™ from the stack, extracts its class name, and pushes it onto the stack.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `encoder` Geo Time Series™ Encoder\\n\\n@param `result` Class name\\n\\n\",\"signature\":\"gts<GTS>  NAME  result<STRING>\\nencoder<GTSENCODER>  NAME  result<STRING>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NAME\"},\"NBOUNDS\":{\"description\":\"The `NBOUNDS` function computes bounds defining a specified number of intervals which have the same area under the curve of a normal distribution with a given mean and standard deviation.\\n\\n@param `n` Number of desired intervals.\\n\\n@param `sigma` Positive standard deviation to use for the normal distribution.\\n\\n@param `mu` Mean to use for the normal distribution.\\n\\n@param `bounds` List of `n`-1 bounds defining the `n` intervals.\\n\\n\",\"signature\":\"mu<NUMBER> sigma<NUMBER> n<LONG>  NBOUNDS  bounds<LIST<DOUBLE>>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NBOUNDS\"},\"NDEBUGON\":{\"description\":\"Turns on stack debugging so up to the given number of stack levels will be returned in case of error. Stack debugging is off by default.\\n\\n@param `n` Maximum number of stack levels to return in case of error.\\n\\n\",\"signature\":\"n<NUMBER>  NDEBUGON \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NDEBUGON\"},\"NEGATEEXACT\":{\"description\":\"The `NEGATEEXACT` function consumes one NUMBER from the top of the stack and puts back the negated value. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be negated\\n\\n@param `result` The negated value\\n\\n@param `lvalue` List of values to be negated\\n\\n@param `lresult` List of negated values\\n\\n@param `gts` GTS containing values to be negated\\n\\n@param `gtsresult` GTS containing negated values\\n\\n\",\"signature\":\"value<NUMBER>  NEGATEEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  NEGATEEXACT  lresult<LIST<LONG>>\\ngts<GTS>  NEGATEEXACT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEGATEEXACT\"},\"NEWENCODER\":{\"description\":\"The `NEWENCODER` function creates an empty encoder and pushes it onto the stack. An encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` A newly created empty encoder instance.\\n\\n\",\"signature\":\" NEWENCODER  encoder<GTSENCODER>\",\"tags\":[\"encoder\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"NEWENCODER\"},\"NEWGTS\":{\"description\":\"The `NEWGTS` function pushes onto the stack an empty Geo Time Series™ instance.\\n\\n@param `gts` A newly created empty GTS instance.\\n\\n\",\"signature\":\" NEWGTS  gts<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEWGTS\"},\"NEXTAFTER\":{\"description\":\"The `NEXTAFTER` function consumes two numeric parameter from the top of the stack and pushes back the **DOUBLE** adjacent to the first argument in the direction of the second argument. In other words, the result is between *from* and *to* and adjacent to *from*.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `from` Starting value\\n\\n@param `to` Direction used to calculate the adjacent value\\n\\n@param `result` Next **DOUBLE** from *from* to *to*\\n\\n@param `lfrom` List of starting values\\n\\n@param `lto` List of directions used to calculate the adjacent value\\n\\n@param `lresult` List of next **DOUBLE** from *from* to *to*\\n\\n@param `gtsfrom` Numerical GTS of starting values\\n\\n@param `gtsto` Numerical GTS of directions used to calculate the adjacent value\\n\\n@param `gtsresult` Numerical GTS of next **DOUBLE** from *from* to *to*\\n\\n\",\"signature\":\"from<NUMBER> to<NUMBER>  NEXTAFTER  result<DOUBLE>\\nfrom<NUMBER> lto<LIST<NUMBER>>  NEXTAFTER  lresult<LIST<DOUBLE>>\\nlfrom<LIST<NUMBER>> to<NUMBER>  NEXTAFTER  lresult<LIST<DOUBLE>>\\nfrom<NUMBER> gtsto<GTS>  NEXTAFTER  gtsresult<GTS>\\ngtsfrom<GTS> to<NUMBER>  NEXTAFTER  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTAFTER\"},\"NEXTDOWN\":{\"description\":\"The `NEXTDOWN` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of negative infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of negative infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of negative infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of negative infinity of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  NEXTDOWN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  NEXTDOWN  lresult<LIST<DOUBLE>>\\ngts<GTS>  NEXTDOWN  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEXTDOWN\"},\"NEXTUP\":{\"description\":\"The `NEXTUP` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of positive infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of positive infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of positive infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of positive infinity of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  NEXTUP  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  NEXTUP  lresult<LIST<DOUBLE>>\\ngts<GTS>  NEXTUP  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTUP\"},\"NOLOG\":{\"description\":\"The `NOLOG` function resets java.util.logging.LogManager.\\n\\nIt can be useful to do this during developments and tests of an extension.\\n\\nThe `NOLOG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n\",\"signature\":\" NOLOG \",\"tags\":[\"extensions\"],\"since\":\"1.2.19\",\"OPB64name\":\"NOLOG\"},\"NONEMPTY\":{\"description\":\"Filter a list of Geo Time Series™ in order to retain only those that have at least one value.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `results` Filtered list of Geo Time Series™\\n\\n\",\"signature\":\"gtsList<LIST<GTS>>  NONEMPTY  results<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NONEMPTY\"},\"NONNULL\":{\"description\":\"The `NONNULL` function consumes a list and produces a list containing only the non NULL elements of the argument list.\\n\\n@param `list` The argument list to filter\\n\\n@param `nonnulls` A new list with only those elements from `list` which are not NULL\\n\\n\",\"signature\":\"list<LIST>  NONNULL  nonnulls<LIST>\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.2.7\",\"OPB64name\":\"NONNULL\"},\"NOOP\":{\"description\":\"It does nothing.\\n\\nWhile it does not have a usefulness of its own, it can be used when generating code from within WarpScript code prior to executing it with [`EVAL`](/doc/EVAL).\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOOP\"},\"NORMALIZE\":{\"description\":\"The `NORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between 0 and 1 (i.e. it replaces X by \\n(X - min)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"signature\":\"gts<GTS>  NORMALIZE  result<GTS>\\ngtsList<LIST<GTS>>  NORMALIZE  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NORMALIZE\"},\"NOT\":{\"description\":\"Negates a boolean.\\n\\nThe `NOT` function is synonymous for [`!`](/doc/7F). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gts` A boolean Geo Time Series™\\n\\n@param `negatedgts` A boolean Geo Time Series™\\n\\n\",\"signature\":\"input<BOOLEAN>  NOT  result<BOOLEAN>\\ngts<GTS>  NOT  negatedgts<GTS>\",\"tags\":[\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOT\"},\"NOTAFTER\":{\"description\":\"Checks that the current time is not after the provided timestamp.\\n\\nThe `NOTAFTER` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not after the provided timestamp.\\nIf it is not after the WarpScript execution continues, otherwise it throws an exception.\\n\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"signature\":\"timestamp<LONG>  NOTAFTER \\ndate<STRING>  NOTAFTER \",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTAFTER\"},\"NOTBEFORE\":{\"description\":\"Checks that the current time is not before the provided timestamp.\\n\\nThe `NOTBEFORE` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not before the provided timestamp.\\nIf it is not before the WarpScript execution continues, otherwise it throws an exception.\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"signature\":\"timestamp<LONG>  NOTBEFORE \\ndate<STRING>  NOTBEFORE \",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTBEFORE\"},\"NOTIMINGS\":{\"description\":\"Use of the `NOTIMINGS` function disables the collection of timing information for each line of the input script. Use [`TIMINGS`](/doc/TIMINGS) to enable it again.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTIMINGS\"},\"NOW\":{\"description\":\"The `NOW` function pushes onto the stack the current **LONG** timestamp expressed in the platform time unit. This timestamp is the number of platform time unit elapsed since 00:00:00 on 1 January 1970 UTC minus the number of leap seconds, see [Unix time](https://en.wikipedia.org/wiki/Unix_time).\\n\\nThis function is mostly linear with time but this property is violated when the OS resynchronises its clock (ie consecutive calls to `NOW` may 'jump' or 'go backward').\\n\\n@param `timestamp` The current timestamp in platform time unit.\\n\\n\",\"signature\":\" NOW  timestamp<LONG>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOW\"},\"NPDF\":{\"description\":\"The `NPDF` function builds a function which outputs the probability of occurrence of a given value under a specified normal distribution.\\n\\nThe normal distribution is defined by its mean and standard deviation. The result of the `NPDF` function is itself a function which can be invoked via [`EVAL`](doc/EVAL).\\n\\n*NPDF* stands for Normal (Gaussian) distribution Probability Density Function.\\n\\n@param `sigma` Standard deviation of the normal distribution to consider.\\n\\n@param `mu` Mean of the normal distribution to consider.\\n\\n@param `npdf` Function which given an input number outputs the probability of its occurence under the given normal distribution.\\n\\n\",\"signature\":\"mu<NUMBER> sigma<NUMBER>  NPDF  npdf<FUNCTION>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NPDF\"},\"NPEEK\":{\"description\":\"Displays a given number of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of stack levels to display.\\n\\n\",\"signature\":\"levels<NUMBER>  NPEEK \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"NPEEK\"},\"NRETURN\":{\"description\":\"Immediately exit a certain number of macros being executed. The `NRETURN` function expects a number of levels on top of the stack.\\n\\n@param `levelnumber` Number of levels of macro to exit.\\n\\n\",\"signature\":\"levelnumber<LONG>  NRETURN \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"NRETURN\"},\"NSUMSUMSQ\":{\"description\":\"Computes the cardinality, sum of values and sum of squared values of a Geo Time Series™. Pushes those results on the stack in the order they were mentioned.\\n\\nOnly numeric series are allowed.\\n\\n@param `square` Sum of squared values\\n\\n@param `sum` Sum of values\\n\\n@param `cardinality` Values count\\n\\n@param `gts` Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  NSUMSUMSQ  cardinality<LONG> sum<DOUBLE> square<DOUBLE>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NSUMSUMSQ\"},\"NULL\":{\"description\":\"The `NULL` function pushes the symbolic value *null* onto the stack.\\n\\n@param `result` Symbolic value *null*\\n\\n\",\"signature\":\" NULL  result<NULL>\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NULL\"},\"NaN\":{\"description\":\"Pushes the double value *NaN* (Not a Number) onto the stack.\\n\\n@param `result` Value *NaN*\\n\\n\",\"signature\":\" NaN  result<DOUBLE>\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NaN\"},\"ONLYBUCKETS\":{\"description\":\"Only retains ticks from Geo Time Series™ with timestamps which are bucket ends. If an input GTS is not bucketized, a clone of the GTS will be returned.\\n\\nThe `ONLYBUCKETS` function does not remove duplicate ticks, please consider using [`DEDUP`](/doc/DEDUP) for that purpose.\\n\\n@param `gts` Single instance of Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `result` Transformed GTS.\\n\\n@param `lresult` List of transformed GTS.\\n\\n\",\"signature\":\"gts<GTS>  ONLYBUCKETS  result<GTS>\\nlgts<LIST<GTS>>  ONLYBUCKETS  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ONLYBUCKETS\"},\"OPB64->\":{\"description\":\"Decode a String in order preserving base64 into a byte array.\\n\\nBytes array cannot be represented on the stack.\\n\\n@param `input` Any valid opbbase64 string.\\n\\n@param `output` Byte array of the input decoded input.\\n\\n\",\"signature\":\"input<STRING>  OPB64->  output<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"1.0.7\",\"OPB64name\":\"Ip01CYFhEV\"},\"OPB64TOHEX\":{\"description\":\"The OPB64TOHEX function decodes the order preserving base64 string on top of the stack and immediately re-encode it in hex string.\\n\\n\\n@param `input` OPBase64 encoded string\\n\\n@param `output` hexadecimal representation\\n\\n\",\"signature\":\"input<STRING>  OPB64TOHEX  output<STRING>\",\"tags\":[\"conversion\"],\"since\":\"1.0.2\",\"OPB64name\":\"OPB64TOHEX\"},\"OPS\":{\"description\":\"Pushes onto the stack the current number of operations which were performed by the WarpScript code execution.\\n\\n@param `ops` number of operations\\n\\n\",\"signature\":\" OPS  ops<LONG>\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPS\"},\"OPTDTW\":{\"description\":\"The `OPTDTW` function finds the top subsequence matches in a sequence for a given query sequence. The function uses [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping)\\nto assess the subsequence similarity with the query.\\n\\n@param `match` Number of top matches. Use 0 as the number of matches to return to return them all.\\n\\n@param `query` Query numerical sequence, thr shortest\\n\\n@param `data` Data sequence in which to find matches\\n\\n@param `result` List of matches, each match being a pair of (index, distance).\\n\\n@param `window` Maximum index difference.\\n\\n\",\"signature\":\"data<LIST> query<LIST> match<NUMBER>  OPTDTW  result<LIST>\\ndata<LIST> query<LIST> window<NUMBER> match<NUMBER>  OPTDTW  result<LIST>\",\"tags\":[\"math\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPTDTW\"},\"OPTIMIZE\":{\"description\":\"Optimizes the memory footprint of Geo Time Series™ and GTS Encoder instances.\\n\\n@param `ratio` Ratio of memory footprint to number of values, if this ratio is not exceeded, no optimization will take place. As a result, optimization is always done when ratio <= 1 or ratio is NaN.\\n\\n@param `gts` Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `encoder` Instance of GTS Encoder to optimize.\\n\\n@param `optencoder` Optimized version of the encoder, or the original instance if no optimization occurred.\\n\\n@param `lgts` List of Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `lencoder` List of instances of GTS Encoder to optimize.\\n\\n@param `loptencoder` List of optimized version of the encoders or the original instances if no optimization occurred.\\n\\n\",\"signature\":\"gts<GTS> ratio<NUMBER>  OPTIMIZE  gts<GTS>\\nencoder<GTSENCODER> ratio<NUMBER>  OPTIMIZE  optencoder<GTSENCODER>\\nlgts<LIST<GTS>> ratio<NUMBER>  OPTIMIZE  lgts<LIST<GTS>>\\nlencoder<LIST<GTSENCODER>> ratio<NUMBER>  OPTIMIZE  loptencoder<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"OPTIMIZE\"},\"OR\":{\"description\":\"The `OR` operator is a synonymous for [`||`](/doc/U6k).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `OR` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"signature\":\"p1<BOOLEAN> p2<BOOLEAN>  OR  result<BOOLEAN>\\nl<LIST>  OR  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  OR  gtsresult<GTS>\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"OR\"},\"PACK\":{\"description\":\"The `PACK` function packs a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n@param `input` List to pack\\n\\n@param `format` Format used to pack\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"input<LIST> format<STRING>  PACK  result<BYTES>\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"PACK\"},\"PAPPLY\":{\"description\":\"The `PAPPLY` function performs operations in a way identical to the [`APPLY`](/doc/APPLY) framework but produces a map of results keyed by the label map of each equivalence class.\\n\\nAs [`APPLY`](/doc/APPLY), `PAPPLY` provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can due. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` Map of resulting GTS, one per equivalence class, keyed with the equivalence class labels.\\n\\n@param `op` Operation to perform.\\n\\n\",\"signature\":\"[ op<OPERATOR> labels<LIST> gts<LIST<GTS>+> ]  PAPPLY  result<MAP>\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"PAPPLY\"},\"PARSE\":{\"description\":\"The `PARSE` function parses an input **STRING** containing datapoints in the [Geo Time Series™ input format](/content/03_Documentation/03_Interacting_with_Warp_10/03_Ingesting_data/02_GTS_input_format) and pushes onto the stack the parsed Geo Time Series™.\\n\\n@param `data` Datapoints in the Geo Time Series™ input format\\n\\n@param `result` List of parsed Geo Time Series™\\n\\n\",\"signature\":\"data<STRING>  PARSE  result<LIST<GTS>>\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.0.11\",\"OPB64name\":\"PARSE\"},\"PARSESELECTOR\":{\"description\":\"The `PARSESELECTOR` function parses a GTS Selector (STRING) returnss the class selector and labels selectors.\\n\\nIn order for `PARSESELECTOR` to parse correctly a selector, the following characters MUST appear percent-encoded in the `STRING` to parse, the equal sign (`=`, `%3D`), the comma (`,` `%2C`) and closing curly brace (`}` `%7D`). Due to the way WarpScript parses `STRING` constants, the `%` sign MUST be percent-encoded (`%25`) in the `STRING` if it appears in WarpScript code:\\n\\nThe `STRING` `class{label=comm%2Cequal%3Dsign}` must appear in WarpScript as:\\n\\n```\\n'class{label=comm%252Cequal%253Dsign'\\n```\\n\\nCombined with `TOSELECTOR`, it can be used to build a selector from a subset of GTS.\\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature'\\n  { 'sensorId' '=01' }\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\nFETCH\\n\\n```\\nThis can be used to simplify the syntax of a FETCH or FIND request. \\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature{sensorId=01}' PARSESELECTOR\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\n\\nFETCH\\n```\\n\\n\\n\\n@param `selector` String selector.\\n\\n@param `labelselector` MAP of label selectors.\\n\\n@param `classselector` Class name selector.\\n\\n\",\"signature\":\"selector<STRING>  PARSESELECTOR  classselector<STRING> labelselector<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARSESELECTOR\"},\"PARSEVALUE\":{\"description\":\"The `PARSEVALUE` function parses a STRING representing a valid value in the Geo Time Series™ input format.\\n\\nThe underlying implementation being the internal WarpScript function, some of the returned types might not be easily handled in the rest of the calling script. Most notably, some floating point representations might lead to BigDecimal instances being produced.\\n\\n@param `input` String representation of the value to parse.\\n\\n@param `value` Parsed value, could be a STRING, LONG, DOUBLE, BIGDECIMAL, BOOLEAN or BYTES elements.\\n\\n\",\"signature\":\"input<STRING>  PARSEVALUE  value<ANY>\",\"tags\":[\"gts\"],\"since\":\"2.1.0\",\"OPB64name\":\"PARSEVALUE\"},\"PARTITION\":{\"description\":\"The `PARTITION` function splits a Geo Time Series™ list in equivalence classes based on label values.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels` plus all labels with common values among the GTS in the equivalence class.\\n\\n\",\"signature\":\"lgts<LIST<GTS>> labels<LIST<STRING>>  PARTITION  result<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARTITION\"},\"PATTERNDETECTION\":{\"description\":\"The `PATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"signature\":\"gts<GTS> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNDETECTION  result<GTS>\\nlgts<LIST<GTS>> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNDETECTION  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNDETECTION\"},\"PATTERNS\":{\"description\":\"The `PATTERNS` function extracts symbolic patterns (or motifs) from a Geo Time Series™. Those patterns are similar to [iSAX](http://www.cs.ucr.edu/~eamonn/iSAX/iSAX.html) symbols.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNS` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"signature\":\"gts<GTS> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNS  result<GTS>\\nlgts<LIST<GTS>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  PATTERNS  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNS\"},\"PEEK\":{\"description\":\"Displays the top of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\" PEEK \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEK\"},\"PEEKN\":{\"description\":\"Displays the content of the level of the stack at the given distance from the top.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `distance` Distance (in stack levels) between the top of the stack and the level to display.\\n\\n\",\"signature\":\"distance<NUMBER>  PEEKN \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEKN\"},\"PERMUTE\":{\"description\":\"Permute the dimensions of a nested LIST as if it were a tensor or a multidimensional array.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent before operating. Default to false.\\n\\n@param `pattern` The permutation pattern (a LIST of LONG).\\n\\n@param `tensor` The resulting nested LIST.\\n\\n\",\"signature\":\"tensor<LIST> pattern<LIST>  PERMUTE  tensor<LIST>\\n{ tensor<LIST> pattern<LIST> fast<BOOLEAN>  } PERMUTE  tensor<LIST>\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"PERMUTE\"},\"PFILTER\":{\"description\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `PFILTER framework allows for advanced filtering using N-ary functions \\n(functions which accept N parameters). Returned GTS are grouped by equivalence classes.\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A map keyed by the label set of each equivalence class whose values are lists of selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `PFILTER`.\\n\\n\",\"signature\":\"[ gtsList<LIST<GTS>> labels<LIST<STRING>> filter<FILTER> ]  PFILTER  result<MAP>\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"PFILTER\"},\"PGPDECRYPT\":{\"description\":\"The `PGPDECRYPT` function decrypts encryted data.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n@param `keyid` Key id of the PGP secret key to use for decryption. This can either be a LONG or a hex STRING.\\n\\n@param `keyring` PGP secret key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `encrypted` Encrypted content as `BYTES` or `STRING` (armored).\\n\\n@param `decrypted` Clear text content.\\n\\n\",\"signature\":\"encrypted<ANY> keyring<KEYRING> keyid<ANY> passphrase<STRING>  PGPDECRYPT  decrypted<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPDECRYPT\"},\"PGPENCRYPT\":{\"description\":\"The `PGPENCRYPT` function encrypts data so it can be decrypted by a given [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public key. The encryption is performed using [AES 256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) by default.\\n\\n@param `throw_keyid` Flag indicating whether or not to hide the key id of the recipient. Defaults to `true`.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `algorithm` Symmetric key algorithm to use for encryption. Possible values are `AES_128`, `AES_192`, `AES_256` (default), `BLOWFISH`, `CAMELLIA_128`, `CAMELLIA_192`, `CAMELLIA_256`, `CAST5`, `DES`, `IDEA`, `SAFER`, `TRIPLE_DES`, `TWOFISH`.\\n\\n@param `recipient` Recipient PGP public key or key id (LONG or hex STRING).\\n\\n@param `keyring` PGP key ring containing the key id specified in `recipient`. May not be set when `recipient` is a PGP public key.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to encrypt. `STRING` content will be encoded using `UTF-8` prior to encryption.\\n\\n@param `encrypted` `BYTES` or `STRING` (when `armor` is `true`) encrypted content.\\n\\n\",\"signature\":\"content<ANY> { date<LONG> keyring<KEYRING> recipient<ANY> algorithm<STRING> armor<BOOLEAN> throw_keyid<BOOLEAN>  } PGPENCRYPT  encrypted<ANY>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPENCRYPT\"},\"PGPINFO\":{\"description\":\"The `PGPINFO` function outputs informations about the keys contained in a PGP key ring previously extracted by [`PGPRING`](/doc/PGPRING).\\n\\nIt outputs a MAP keyed by key id and with values which are MAPs containing the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `keyid` | Uppercase 64 bits hecadecimal key id. |\\n| `fingerprint` | Lowercase hexadecimal full key fingerprint. |\\n| `uid` | List of uids associated with the key. Each uid is a byte array (`BYTES`). |\\n| `bits` | Key strength in bits. |\\n| `algorithm` | Algorithm used by the key, can be one of `RSA_GENERAL`, `RSA_SIGN`, `RSA_ENCRYPT`, `ELGAMAL_GENERAL`, `ELGAMAL_ENCRYPT`, `DSA`, `ECDH`, `ECDSA`, `DIFFIE_HELLMAN`, `EDDSA`, and `UNKNOWN_xx` for yet unsupported algorithms.|\\n| `master` | `BOOLEAN` indicating whether or not the key is a master key. |\\n| `signing` | `BOOLEAN` indicating if the key can be used for signing. |\\n| `encryption` | `BOOLEAN` indicating if the key can be used for encryption. |\\n| `expiry` | Timestamp at which the key expires, in platform time units since the Unix Epoch. 0 means no expiration. |\\n| `pubkey` | PGP public key with this key id. |\\n| `attributes` | List of key attributes, each attribute is a byte array. The only supported attribute at the moment is JPEG images. |\\n\\n@param `ring` PGP public or private key ring as extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `infos` Details of the keys present in the ring or key.\\n\\n@param `key` PGP public key.\\n\\n\",\"signature\":\"ring<ANY>  PGPINFO  infos<MAP>\\nkey<KEY>  PGPINFO  infos<MAP>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPINFO\"},\"PGPPRIVATE\":{\"description\":\"The `PGPPRIVATE` function outputs the list of key ids for secret keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP secret key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP secret keys present in the key ring.\\n\\n\",\"signature\":\"keyring<KEYRING>  PGPPRIVATE  keyids<LIST<STRING>>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPRIVATE\"},\"PGPPUBLIC\":{\"description\":\"The `PGPPUBLIC` function outputs the list of key ids for public keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret or public key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP public keys present in the key ring.\\n\\n\",\"signature\":\"keyring<KEYRING>  PGPPUBLIC  keyids<LIST<STRING>>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPUBLIC\"},\"PGPRING\":{\"description\":\"The `PGPRING` function parses a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public or secret key ring block and extracts the various key rings it contains. The function returns a list of key ring objects.\\n\\n@param `block` PGP public or private key ring block as produced by `gpg --export` or `gpg --export-secret-[sub]keys`.\\n\\n@param `armored` PGP public key ring block as produced by `gpg --export*` with the `--armor` option.\\n\\n@param `keyrings` LIST of key rings found in `block`.\\n\\n@param `keyring` PGP public or secret key ring as produced by `PGPRING`.\\n\\n@param `encoded` Encoded form of the input key ring.\\n\\n\",\"signature\":\"block<BYTES>  PGPRING  keyrings<LIST<KEYRING>>\\narmored<STRING>  PGPRING  keyrings<LIST<KEYRING>>\\nkeyring<KEYRING>  PGPRING  encoded<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPRING\"},\"PGPSIGN\":{\"description\":\"The `PGPSIGN` function signs some content with a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `digest` Digest algorithm to use for the signature. Possible values are `SHA1`, `SHA224`, `SHA256`, `SHA384`, `SHA512` (default), `SHA3-224`, `SHA3-256`, `SHA3-384`, `SHA3-512`, `RIPEMD160`, `RMD160`, `MD2`, `MD4`, `TIGER`, `HAVAL`, `SM3`, `MD5`.\\n\\n@param `keyring` PGP secret key ring as generated by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the key present in `keyring` to use for signing.\\n\\n@param `detached` Should the signature be a deatched one (default) or not.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to sign. `STRING` content will be encoded using `UTF-8` prior to signature.\\n\\n@param `signature` `STRING` or `BYTES` signature.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n\",\"signature\":\"content<ANY> { keyring<KEYRING> keyid<ANY> passphrase<STRING> digest<STRING> armor<BOOLEAN> detached<BOOLEAN>  } PGPSIGN  signature<ANY>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPSIGN\"},\"PGPVERIFY\":{\"description\":\"The `PGPVERIFY` function verifies a PGP signature.\\n\\n@param `key` PGP public key to use for verifying the signature.\\n\\n@param `keyring` PGP secret or public key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the public key to use for verifying the signature. LONG or hex STRING.\\n\\n@param `detached` Flag indicating whether the signature is detached or not.\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content, when `detached` is `true`.\\n\\n@param `verified` Verification result.\\n\\n@param `signed` Extracted signed content, when `detached` is `false`.\\n\\n\",\"signature\":\"content<ANY> signature<ANY> key<KEY> detached<BOOLEAN>  PGPVERIFY  verified<BOOLEAN>\\nsignature<ANY> key<KEY> detached<BOOLEAN>  PGPVERIFY  signed<BYTES> verified<BOOLEAN>\\ncontent<ANY> signature<ANY> keyring<KEYRING> keyid<ANY> detached<BOOLEAN>  PGPVERIFY  verified<BOOLEAN>\\nsignature<ANY> keyring<KEYRING> keyid<ANY> detached<BOOLEAN>  PGPVERIFY  signed<BYTES> verified<BOOLEAN>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPVERIFY\"},\"PGraphics\":{\"description\":\"Warp 10 includes a large subset of the [Processing](http://www.processing.org) drawing library. You can create and manipulate images, then push a base64 encoded png onto the stack.\\n\\n+ Step 1: create a processing graphic object with `PGraphics` function.\\n+ Step 2: manipulate this object with Processing functions.\\n+ Step 3: render the processing graphic with `Pencode` function.\\n\\nDocumentation of every function has a link to original Processing website. Original website includes more examples for each function.\\n\\nProcessing functions offers a lot of different signatures for colors. The most efficient is to keep the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n\\nUp to Warp 10 1.2.18, antialiasing was not available. It is now available, by appending a digit to the **imgtype** string argument. The maximum anti-aliasing level is determined by the hardware of the machine that is running the software, so 2D4 and 2D8 mode will not work with every computer.\\n\\n+ \\\"2D\\\": no antialiasing\\n+ \\\"2D2\\\": bilinear smoothing\\n+ \\\"2D3\\\": bicubic smoothing\\n+ \\\"2D4\\\": 4x antialiasing\\n+ \\\"2D8\\\": 8x antialiasing\\n\\n\\nYou can adjust the maximal number of pixel allowed in Warp 10 configuration file.\\n\\n@param `imgtype` '2D', '3D', or '2Dx', where x is the level of anti aliasing (2, 3, 4, or 8).\\n\\n@param `width` Pixel width of the image.\\n\\n@param `height` Pixel height of the image.\\n\\n@param `pg` Processing graphic object.\\n\\n\",\"signature\":\"width<LONG> height<LONG> imgtype<STRING>  PGraphics  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PGraphics\"},\"PI\":{\"description\":\"Alias of [pi](/doc/R5Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"signature\":\" PI  pi<DOUBLE>\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"J3Z\"},\"PICK\":{\"description\":\"The `PICK` function copies on top of the stack the element at level N. Parameter N is consumed off the top of the stack when `PICK` is called.\\n\\n@param `level` Level of the stack\\n\\n@param `result` What is on stack at *level*\\n\\n\",\"signature\":\"level<NUMBER>  PICK  result<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"PICK\"},\"PICKLE->\":{\"description\":\"The `PICKLE->` function decodes some Pickle encoded content contained in a byte array.\\nThe conversion is done using [Pyrolite v4](https://github.com/irmen/pickle).\\n\\nIt can read all pickle protocol versions (0 to 4, so this includes\\nthe latest additions made in Python 3.4).\\n\\n```python\\n>>> myobject={ 'apple':3.5,'banana':18 }\\n>>> pickle.dumps(myobject).encode(\\\"hex\\\")\\n'286470300a53276170706c65270a70310a46332e350a73532762616e616e61270a70320a4931380a732e'\\n```\\n\\n@param `input` Byte array of a pickle encoded content\\n\\n@param `output` Warp 10 object\\n\\n\",\"signature\":\"input<BYTES>  PICKLE->  output<ANY>\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"J3_2Hol4AIs\"},\"PIGSCHEMA\":{\"description\":\"The `PIGSCHEMA` function produces on top of the stack a STRING representing the [Pig](https://en.wikipedia.org/wiki/Pig_(programming_tool)) schema definition for the current stack content.\\n\\n@param `elt` Stack content.\\n\\n@param `schema` Schema for the current stack, usable when working with WarpScript in Pig.\\n\\n\",\"signature\":\"elt<ANY*>  PIGSCHEMA  elt<ANY*> schema<STRING>\",\"tags\":[\"pig\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"PIGSCHEMA\"},\"PIVOT\":{\"description\":\"The `PIVOT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick of GTS from the first list, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n1// C3{C1=C} 2\\n2// C4{C2=F} 30\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n4// C3{} 5\\n4// C4{} 50\\n```\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"signature\":\"input<LIST<GTS>> pivot<LIST<GTS>>  PIVOT  result<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOT\"},\"PIVOTSTRICT\":{\"description\":\"The `PIVOTSTRICT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™ in a way similar to what [`PIVOT`](/doc/PIVOT) does.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick common to Geo Time Series™ of both lists, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOTSTRICT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n```\\n\\nOnly ticks 0 and 3 appear in the result as those are the only ticks present in both `C1` and `C2`.\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"signature\":\"input<LIST<GTS>> pivot<LIST<GTS>>  PIVOTSTRICT  result<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOTSTRICT\"},\"POLYFIT\":{\"description\":\"Creates a polynomial of the specified degree which fits the provided Geo Time Series.\\n\\nThe ticks or buckets ids can be considered.\\n\\n@param `buckets` Flag indicating whether to consider the ticks (`false`) or the bucket ids (`true`). If `buckets` is missing the ticks are considered.\\n\\n@param `degree` Degree of the polynomial to generate.\\n\\n@param `gts` Numerical Geo Time Series to fit. Must be bucketized if `buckets` is `true`.\\n\\n@param `coeffs` List of the coefficients of the generated polynomial function.\\n\\n\",\"signature\":\"gts<GTS> degree<LONG> buckets<BOOLEAN>  POLYFIT  coeffs<LIST<DOUBLE>>\\ngts<GTS> degree<LONG>  POLYFIT  coeffs<LIST<DOUBLE>>\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFIT\"},\"POLYFUNC\":{\"description\":\"Creates a WarpScript function which computes a polynomial function of the given coefficients.\\n\\nThe resulting WarpScript function can be applied to a Geo Time Series, a GTS Encoder, a numerical value or a list thereof.\\n\\nWhen applied to a Geo Time Series, the bucket id can be considered instead of the tick by adding a `BOOLEAN` parameter to the call.\\n\\n@param `coeffs` List of polynomial coefficients.\\n\\n@param `func` Generated WarpScript function.\\n\\n\",\"signature\":\"coeffs<LIST<DOUBLE>>  POLYFUNC  func<FUNC>\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFUNC\"},\"POPR\":{\"description\":\"Pops a value from the top of the stack and stores it into the designated register.\\n\\nThe `POPR` function is really a family of functions named `POPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"signature\":\"value<ANY>  POPR \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"POPR\"},\"PREDUCE\":{\"description\":\"Behaves as [`REDUCE`](/doc/REDUCE) but produces a map of results keyed by the label map of each equivalence class.\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` Map keyed by the label map of each equivalence class and whose values are the Geo Time Series™ produced for each class.\\n\\n\",\"signature\":\"[ gts<LIST<GTS>+> labels<LIST<STRING>> reducer<AGGREGATOR> ]  PREDUCE  result<MAP>\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.5\",\"OPB64name\":\"PREDUCE\"},\"PRNG\":{\"description\":\"The `PRNG` function initializes the stack's seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator). This PRNG can later be used by the [`SRAND`](/doc/SRAND) function to produce random numbers in a deterministic way (!).\\n\\n@param `seed` The seed to use for initializing the PRNG.\\n\\n\",\"signature\":\"seed<LONG>  PRNG \",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"PRNG\"},\"PROB\":{\"description\":\"Computes probability for each value of the input Geo Time Series™.\\n\\nThe function `PROB` consumes a GTS or a list of the GTS from the top of the stack. It pushes back the probability for each value.\\n\\nThe probabilities are computed using the value histogram.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `gtslist` The input list of Geo Time Series™\\n\\n@param `result` The Geo Time Series™ wit probability for each value\\n\\n@param `resultList` The List of Geo Time Series™ with probability for each value\\n\\n\",\"signature\":\"gts<GTS>  PROB  result<GTS>\\ngtslist<LIST<GTS>>  PROB  resultList<LIST<GTS>>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.6\",\"OPB64name\":\"PROB\"},\"PROBABILITY\":{\"description\":\"Pushes on the stack a function which computes probabilities according to a provided value histogram.\\n\\nTo use the function pushed by `PROBABILITY` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function expects a value on top of the stack and will output the probability of occurrence of this value.\\n\\n\",\"signature\":\"valueHistogram<MAP>  PROBABILITY  result<STRING>\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"PROBABILITY\"},\"PSTACK\":{\"description\":\"When in interactive (REPL) mode, prints the content of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PSTACK\"},\"PUSHR\":{\"description\":\"Pushes onto the stack the value currently contained in the designated register.\\n\\nThe `PUSHR` function is really a family of functions named `PUSHRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"signature\":\" PUSHR  value<ANY>\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PUSHR\"},\"PUT\":{\"description\":\"The `PUT` function inserts a new key-value pair in a map.\\nIf the key already exists in the input MAP, the value is replaced by the new one.\\n\\n`PUT` function puts the reference of the MAP on top of the stack.\\n\\n@param `newkey` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `newvalue` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `inputmap` reference to the map to be modified\\n\\n@param `outputmap` copy of input map reference. Useful to chain other instructions on the same map.\\n\\n\",\"signature\":\"inputmap<MAP> newvalue<ANY> newkey<ANY>  PUT  outputmap<MAP>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"PUT\"},\"Palpha\":{\"description\":\"Extracts the alpha value from a color.\\n\\nThe `Palpha` function is easy to use and understand, but it is slower than bit shifting... \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/alpha_.html)\\n\\n@param `color` Any value of the color datatype\\n\\n@param `alpha` Alpha component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> color<NUMBER>  Palpha  pg<PGRAPHICS> alpha<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Palpha\"},\"Parc\":{\"description\":\"Draws an arc to the screen. Arcs are drawn along the outer edge of an ellipse defined by the **a**, **b**, **c**, and **d** parameters. The origin of the arc's ellipse may be changed with the [`PellipseMode`](/doc/PellipseMode) function. Use the **start** and **stop** parameters to specify the angles (in radians) at which to draw the arc.\\n\\n\\n\\nThere are three ways to draw an arc; the rendering technique used is defined by the optional seventh parameter. The three options, depicted in the examples, are PIE, OPEN, and CHORD. The default mode is the OPEN stroke with a PIE fill.\\n\\n\\n\\nIn some cases, the `Parc` function isn't accurate enough for smooth drawing. For example, the shape may jitter on screen when rotating slowly. If you're having an issue with how arcs are rendered, you'll need to draw the arc yourself with [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) or a **PShape**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/arc_.html)\\n\\n@param `b` y-coordinate of the arc's ellipse\\n\\n@param `a` x-coordinate of the arc's ellipse\\n\\n@param `c` width of the arc's ellipse by default\\n\\n@param `d` height of the arc's ellipse by default\\n\\n@param `start` angle to start the arc, specified in radians\\n\\n@param `stop` angle to stop the arc, specified in radians\\n\\n@param `mode` closing mode. either PIE, OPEN, or CHORD\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> start<DOUBLE> stop<DOUBLE>  Parc  pg<PGRAPHICS>\\npg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> start<DOUBLE> stop<DOUBLE> mode<STRING>  Parc  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Parc\"},\"Pbackground\":{\"description\":\"The `Pbackground` function sets the color used for the background of the processing graphics object. \\n\\nAn image object can also be used as the background for a sketch, although the image's width and height must match that of the processing object. Images used with `Pbackground` will ignore the current [`Ptint`](/doc/Ptint) setting. \\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pbackground` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/background_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `rgb` any rgb color value.\\n\\n@param `alpha` opacity of the background. 0 = transparent, 255 = opaque.\\n\\n@param `gray` a value between white (255) and black (0)\\n\\n@param `image` PImage to set as background (must be same size as pg)\\n\\n@param `v1` red or hue value (depending on the current color mode)\\n\\n@param `v2` green or saturation value (depending on the current color mode)\\n\\n@param `v3` blue or brightness value (depending on the current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> argb<LONG>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> image<PIMAGE>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> rgb<LONG> alpha<NUMBER>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE> alpha<NUMBER>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Pbackground  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Pbackground  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbackground\"},\"PbeginContour\":{\"description\":\"Use the `PbeginContour` and [`PendContour`](/doc/PendContour) function to create negative shapes within shapes such as the center of the letter 'O'. `PbeginContour` begins recording vertices for the shape and [`PendContour`](/doc/PendContour) stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\n\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a `PbeginContour`/[`PendContour`](/doc/PendContour) pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PbeginContour  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginContour\"},\"PbeginShape\":{\"description\":\"Using the `PbeginShape` and [`PendShape`](/doc/PendShape) functions allow creating more complex forms. `PbeginShape` begins recording vertices for a shape and [`PendShape`](/doc/PendShape) stops recording. \\n\\nThe value of the **kind** parameter tells it which types of shapes to create from the provided vertices. The parameters available for beginShape() are POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, and QUAD_STRIP. After calling the `PbeginShape` function, a series of [`Pvertex`](/doc/Pvertex) commands must follow. To stop drawing the shape, call [`PendShape`](/doc/PendShape). The [`Pvertex`](/doc/Pvertex) function with two parameters specifies a position in 2D. Each shape will be outlined with the current stroke color and filled with the fill color. \\n\\n\\nTransformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within `PbeginShape`. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within `PbeginShape`. \\n\\n\\nThe P2D and P3D renderers allow [`Pstroke`](/doc/Pstroke) and [`Pfill`](/doc/Pfill) to be altered on a per-vertex group basis. Settings such as [`PstrokeWeight`](/doc/PstrokeWeight), [`PstrokeCap`](/doc/PstrokeCap), and [`PstrokeJoin`](/doc/PstrokeJoin) cannot be changed while inside a `PbeginShape`/[`PendShape`](/doc/PendShape) block with any renderer.\\n\\nUp to Warp 10 1.2.18, `PbeginShape` could be called without the **kind** parameter. It defaults to POLYGON.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginShape_.html)\\n\\n@param `kind` Either POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> kind<STRING>  PbeginShape  pg<PGRAPHICS>\\npg<PGRAPHICS>  PbeginShape  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginShape\"},\"Pbezier\":{\"description\":\"Draws a Bezier curve on the screen. These curves are defined by a series of anchor and control points. The first two parameters specify the first anchor point and the last two parameters specify the other anchor point. The middle parameters specify the control points which define the shape of the curve. Bezier curves were developed by French engineer Pierre Bezier. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezier_.html)\\n\\n@param `x1` coordinates for the first anchor point\\n\\n@param `y1` coordinates for the first anchor point\\n\\n@param `z1` coordinates for the first anchor point\\n\\n@param `x2` coordinates for the first control point\\n\\n@param `y2` coordinates for the first control point\\n\\n@param `z2` coordinates for the first control point\\n\\n@param `x3` coordinates for the second control point\\n\\n@param `y3` coordinates for the second control point\\n\\n@param `z3` coordinates for the second control point\\n\\n@param `x4` coordinates for the second anchor point\\n\\n@param `y4` coordinates for the second anchor point\\n\\n@param `z4` coordinates for the second anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  Pbezier  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> z1<DOUBLE> x2<DOUBLE> y2<DOUBLE> z2<DOUBLE> x3<DOUBLE> y3<DOUBLE> z3<DOUBLE> x4<DOUBLE> y4<DOUBLE> z4<DOUBLE>  Pbezier  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbezier\"},\"PbezierDetail\":{\"description\":\"Sets the resolution at which Beziers display. The default value is 20. This function is only useful when using the **P3D** renderer; the default **P2D** renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierDetail_.html)\\n\\n@param `detail` resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> detail<NUMBER>  PbezierDetail  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierDetail\"},\"PbezierPoint\":{\"description\":\"Evaluates the Bezier at point t for points a, b, c, d. The parameter t varies between 0 and 1, a and d are points on the curve, and b and c are the control points. This can be done once with the x coordinates and a second time with the y coordinates to get the location of a bezier curve at t.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierPoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PbezierPoint  pg<PGRAPHICS> out<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierPoint\"},\"PbezierTangent\":{\"description\":\"Calculates the tangent of a point on a Bezier curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PbezierTangent  pg<PGRAPHICS> out<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierTangent\"},\"PbezierVertex\":{\"description\":\"Specifies vertex coordinates for Bezier curves. Each call to `PbezierVertex` defines the position of two control points and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PbezierVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only with POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierVertex_.html)\\n\\n@param `x2` The x-coordinate of the 1st control point\\n\\n@param `y2` The y-coordinate of the 1st control point\\n\\n@param `x3` The x-coordinate of the 2nd control point\\n\\n@param `y3` The y-coordinate of the 2nd control point\\n\\n@param `x4` The x-coordinate of the anchor point\\n\\n@param `y4` The y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  PbezierVertex  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierVertex\"},\"Pblend\":{\"description\":\"Blends a region of pixels from one image into another (or in itself again) with full alpha channel support.\\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels in the destination image (B):\\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - Multiply the colors, result will always be darker.\\n+ SCREEN - Opposite multiply, uses inverse values of the colors.\\n+ OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values,and screens light values.\\n+ HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.\\n+ SOFT_LIGHT - Mix of DARKEST and LIGHTEST. Works like OVERLAY, but not as harsh.\\n+ DODGE - Lightens light tones and increases contrast, ignores darks.Called \\\"Color Dodge\\\" in Illustrator and Photoshop.\\n+ BURN - Darker areas are applied, increasing contrast, ignores lights.Called \\\"Color Burn\\\" in Illustrator and Photoshop.\\n\\nAll modes use the alpha information (highest byte) of source image pixels as the blending factor. If the source and destination regions are different sizes, the image will be automatically resized to match the destination size. If the **src** parameter is not used, the display window is used as the source image.\\n\\n[Link to original Processing doc](https://processing.org/reference/blend_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `mode` Either BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> src<PIMAGE> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG> mode<STRING>  Pblend  pg<PGRAPHICS>\\npg<PGRAPHICS> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG> mode<STRING>  Pblend  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblend\"},\"PblendMode\":{\"description\":\"Blends the pixels in the display window according to a defined mode. \\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels already in the display window (B). \\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B. This is the default blending mode.\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - multiply the colors, result will always be darker.\\n+ SCREEN - opposite multiply, uses inverse values of the colors.\\n+ REPLACE - the pixels entirely replace the others and don't utilize alpha (transparency) values\\n\\nA pixel's final color is the result of applying one of the above blend modes with each channel of (A) and (B) independently. For example, red is compared with red, green with green, and blue with blue.\\n\\nWe recommend using `PblendMode` and not the previous [`Pblend`](/doc/Pblend) function. However, unlike [`Pblend`](/doc/Pblend), the `PblendMode` function does not support the following: HARD_LIGHT, SOFT_LIGHT, OVERLAY, DODGE, BURN. On older hardware, the LIGHTEST, DARKEST, and DIFFERENCE modes might not be available as well. \\n\\n[Link to original Processing doc](https://processing.org/reference/blendMode_.html)\\n\\n@param `mode` The blending mode to use\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PblendMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PblendMode\"},\"Pblue\":{\"description\":\"Extracts the blue value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pblue` function is easy to use and understand, but it is slower than bit masking. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/blue_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `blue` Blue component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> rgb<NUMBER>  Pblue  pg<PGRAPHICS> blue<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblue\"},\"Pbox\":{\"description\":\"A box is an extruded rectangle. A box with equal dimensions on all sides is a cube.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/box_.html)\\n\\n@param `size` dimension of the box in all dimensions (creates a cube)\\n\\n@param `w` dimension of the box in the x-dimension\\n\\n@param `h` dimension of the box in the y-dimension\\n\\n@param `d` dimension of the box in the z-dimension\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> size<NUMBER>  Pbox  pg<PGRAPHICS>\\npg<PGRAPHICS> w<NUMBER> h<NUMBER> d<NUMBER>  Pbox  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbox\"},\"Pbrightness\":{\"description\":\"Extracts the brightness value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/brightness_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `brightness` Brightness component of input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> rgb<NUMBER>  Pbrightness  pg<PGRAPHICS> brightness<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbrightness\"},\"Pclear\":{\"description\":\"Clears the pixels. This function clears everything in a **PGraphics** object to make all of the pixels 100% transparent.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clear_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  Pclear  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclear\"},\"Pclip\":{\"description\":\"Limits the rendering to the boundaries of a rectangle defined by the parameters. The boundaries are drawn based on the state of the [`PimageMode`](/doc/PimageMode) function, either CORNER, CORNERS, or CENTER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clip_.html)\\n\\n@param `a` x-coordinate of the rectangle, by default\\n\\n@param `b` y-coordinate of the rectangle, by default\\n\\n@param `c` width of the rectangle, by default\\n\\n@param `d` height of the rectangle, by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Pclip  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclip\"},\"Pcolor\":{\"description\":\"`Pcolor` creates colors for storing in ARGB LONG datatype.\\n\\n+ RGB: The most efficient is to skip Pcolor function, using the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n+ HSB: For Hue Saturation Brightness to RGB conversion, use [`PcolorMode`](/doc/PcolorMode) to specify HSB, then use Pcolor to convert to ARGB.\\n\\nThe parameters are interpreted as RGB or HSB values depending on the current [`PcolorMode`](/doc/PcolorMode). The default mode is RGB values from 0 to 255.\\n\\nNote that if only one value is provided to `Pcolor`, it will be interpreted as a grayscale value. Add a second value, and it will be used for alpha transparency. When three values are specified, they are interpreted as either RGB or HSB values. Adding a fourth value applies alpha transparency.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/color_.html)\\n\\n@param `gray` int: number specifying value between white and black\\n\\n@param `alpha` float, or int: relative to current color range\\n\\n@param `v1` float, or int: red or hue values relative to the current color range\\n\\n@param `v2` float, or int: green or saturation values relative to the current color range\\n\\n@param `v3` float, or int: blue or brightness values relative to the current color range\\n\\n@param `color` ARGB color.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> gray<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> gray<NUMBER> alpha<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Pcolor  pg<PGRAPHICS> color<LONG>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcolor\"},\"PcolorMode\":{\"description\":\"Changes the way Processing interprets color data. By default, the parameters for [`Pfill`](/doc/Pfill), [`Pstroke`](/doc/Pstroke), [`Pbackground`](/doc/Pbackground), and [`Pcolor`](/doc/Pcolor) are defined by values between 0 and 255 using the RGB color model. The `PcolorMode` function is used to change the numerical range used for specifying colors and to switch color systems. For example, calling **colorMode(RGB, 1.0)** will specify that values are specified between 0 and 1. The limits for defining colors are altered by setting the parameters **max**, **max1**, **max2**, **max3**, and **maxA**.\\n\\nWhen using max different from default values, do not work with grayscale.\\n\\nAfter changing the range of values for colors with code like **colorMode(HSB, 360, 100, 100)**, those ranges remain in use until they are explicitly changed again. For example, after running **colorMode(HSB, 360, 100, 100)** and then changing back to **colorMode(RGB)**, the range for R will be 0 to 360 and the range for G and B will be 0 to 100. To avoid this, be explicit about the ranges when changing the color mode. For instance, instead of **colorMode(RGB)**, write **colorMode(RGB, 255, 255, 255)**. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/colorMode_.html)\\n\\n@param `mode` Either 'RGB' or 'HSB', corresponding to Red/Green/Blue and Hue/Saturation/Brightness\\n\\n@param `max` range for all color elements\\n\\n@param `max1` range for the red or hue depending on the current color mode\\n\\n@param `max2` range for the green or saturation depending on the current color mode\\n\\n@param `max3` range for the blue or brightness depending on the current color mode\\n\\n@param `maxA` range for the alpha\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PcolorMode  pg<PGRAPHICS>\\npg<PGRAPHICS> mode<STRING> max<DOUBLE>  PcolorMode  pg<PGRAPHICS>\\npg<PGRAPHICS> mode<STRING> max1<DOUBLE> max2<DOUBLE> max3<DOUBLE>  PcolorMode  pg<PGRAPHICS>\\npg<PGRAPHICS> mode<STRING> max1<DOUBLE> max2<DOUBLE> max3<DOUBLE> maxA<DOUBLE>  PcolorMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcolorMode\"},\"Pconstrain\":{\"description\":\"Constrains a value to not exceed a maximum and minimum value. Also known as clamping a value. \\n\\nIt could be done with warpscript MIN MAX functions, see example.\\n\\n[Link to original Processing doc](https://processing.org/reference/constrain_.html)\\n\\n@param `x` The value to clamp.\\n\\n@param `low` Minimum limit.\\n\\n@param `high` Maximum limit.\\n\\n@param `clamped` Clamped value of x in [low high] range.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x<DOUBLE> low<DOUBLE> high<DOUBLE>  Pconstrain  pg<PGRAPHICS> clamped<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pconstrain\"},\"Pcopy\":{\"description\":\"Copies a region of pixels from the display window to another area of the display window and copies a region of pixels from an image used as the **src** parameter into the display window. If the source and destination regions are not the same size, it will automatically resize the source pixels to fit the specified target region. No alpha information is used in the process, however if the source image has an alpha channel set, it will be copied as well.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/copy_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `img` PIMAGE object, copy of pg\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> src<PIMAGE> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG>  Pcopy  pg<PGRAPHICS>\\npg<PGRAPHICS> sx<LONG> sy<LONG> sw<LONG> sh<LONG> dx<LONG> dy<LONG> dw<LONG> dh<LONG>  Pcopy  pg<PGRAPHICS>\\npg<PGRAPHICS>  Pcopy  pg<PGRAPHICS> img<PIMAGE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcopy\"},\"PcreateFont\":{\"description\":\"Dynamically converts a font to the format used by Processing from a font that is installed on the computer.  Not all fonts can be used and some might work with one operating system and not others.\\n\\nThe **size** parameter states the font size you want to generate. The **smooth** parameter specifies if the font should be antialiased or not.\\n\\nSince the 2.5.0 version, the name of the font can be a URI to a OpenType or Type1 font which will be resolved by a macro defined by the `processing.font.resolver` configuration.\\n\\n[Link to original Processing doc](https://processing.org/reference/createFont_.html)\\n\\n@param `name` Name of the font to load or URI from where to load the font.\\n\\n@param `size` Point size of the font\\n\\n@param `smooth` True for an antialiased font, false for aliased\\n\\n@param `charset` subset of ascii characters to be generated.\\n\\n@param `font` Processing font object compatible with PtextFont.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> name<STRING>  PcreateFont  pg<PGRAPHICS> font<PFONT>\\npg<PGRAPHICS> name<STRING> size<NUMBER>  PcreateFont  pg<PGRAPHICS> font<PFONT>\\npg<PGRAPHICS> name<STRING> size<NUMBER> smooth<BOOLEAN>  PcreateFont  pg<PGRAPHICS> font<PFONT>\\npg<PGRAPHICS> name<STRING> size<NUMBER> smooth<BOOLEAN> charset<STRING>  PcreateFont  pg<PGRAPHICS> font<PFONT>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcreateFont\"},\"Pcurve\":{\"description\":\"Draws a curved line on the screen. The first and second parameters specify the beginning control point and the last two parameters specify the ending control point. The middle parameters specify the start and stop of the curve. Longer curves can be created by putting a series of `Pcurve` functions together or using [`PcurveVertex`](/doc/PcurveVertex). An additional function called [`PcurveTightness`](/doc/PcurveTightness) provides control for the visual quality of the curve. The `Pcurve` function is an implementation of Catmull-Rom splines. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n[Link to original Processing doc](https://processing.org/reference/curve_.html)\\n\\n@param `x1` float: coordinates for the beginning control point\\n\\n@param `y1` float: coordinates for the beginning control point\\n\\n@param `x2` float: coordinates for the first point\\n\\n@param `y2` float: coordinates for the first point\\n\\n@param `x3` float: coordinates for the second point\\n\\n@param `y3` float: coordinates for the second point\\n\\n@param `x4` float: coordinates for the ending control point\\n\\n@param `y4` float: coordinates for the ending control point\\n\\n@param `z1` float: coordinates for the beginning control point\\n\\n@param `z2` float: coordinates for the first point\\n\\n@param `z3` float: coordinates for the second point\\n\\n@param `z4` float: coordinates for the ending control point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  Pcurve  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> z1<DOUBLE> x2<DOUBLE> y2<DOUBLE> z2<DOUBLE> x3<DOUBLE> y3<DOUBLE> z3<DOUBLE> x4<DOUBLE> y4<DOUBLE> z4<DOUBLE>  Pcurve  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcurve\"},\"PcurveDetail\":{\"description\":\"Sets the resolution at which curves display. The default value is 20. This function is only useful when using the P3D renderer as the default P2D renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveDetail_.html)\\n\\n@param `detail` Resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> detail<NUMBER>  PcurveDetail  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveDetail\"},\"PcurvePoint\":{\"description\":\"Evaluates the curve at point **t** for points **a**, **b**, **c**, **d**. The parameter **t** may range from 0 (the start of the curve) and 1 (the end of the curve). **a** and **d** are points on the curve, and **b** and **c** are the control points. This can be used once with the **x** coordinates and a second time with the **y** coordinates to get the location of a curve at **t**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curvePoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of second point on the curve\\n\\n@param `c` coordinate of third point on the curve\\n\\n@param `d` coordinate of fourth point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PcurvePoint  pg<PGRAPHICS> out<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurvePoint\"},\"PcurveTangent\":{\"description\":\"Calculates the tangent of a point on a curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE> t<DOUBLE>  PcurveTangent  pg<PGRAPHICS> out<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTangent\"},\"PcurveTightness\":{\"description\":\"Modifies the quality of forms created with [`Pcurve`](/doc/Pcurve) and [`PcurveVertex`](/doc/PcurveVertex). The parameter **tightness** determines how the curve fits to the vertex points. The value 0.0 is the default value for **tightness** (this value defines the curves to be Catmull-Rom splines) and the value 1.0 connects all the points with straight lines. Values within the range -5.0 and 5.0 will deform the curves but will leave them recognizable and as values increase in magnitude, they will continue to deform.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTightness_.html)\\n\\n@param `tightness` Amount of deformation from the original vertices\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> tightness<NUMBER>  PcurveTightness  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTightness\"},\"PcurveVertex\":{\"description\":\"Specifies vertex coordinates for curves. This function may only be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). The first and last points in a series of `PcurveVertex` lines will be used to guide the beginning and end of a the curve. A minimum of four points is required to draw a tiny curve between the second and third points. Adding a fifth point with `PcurveVertex` will draw the curve between the second, third, and fourth points. The `PcurveVertex` function is an implementation of Catmull-Rom splines. \\n\\n[Link to original Processing doc](https://processing.org/reference/curveVertex_.html)\\n\\n@param `x` The x-coordinate of the vertex\\n\\n@param `y` The y-coordinate of the vertex\\n\\n@param `z` The z-coordinate of the vertex\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  PcurveVertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  PcurveVertex  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveVertex\"},\"Pdecode\":{\"description\":\"`Pdecode` takes the image representation on the stack and pushes a Pimage object on the stack. This object can only be used as an input for [`Pset`](/doc/Pset), [`Pimage`](/doc/Pimage), [`Pbackground`](/doc/Pbackground).\\n\\nInput string must start with the header `data:image/png;base64,`.\\n\\nSupported input types: PNG, GIF, JPG.\\n\\n@param `img` Processing Pimage object.\\n\\n@param `rawimg` Image bytes.\\n\\n@param `b64img` Base64 encoded image string\\n\\n\",\"signature\":\"b64img<STRING>  Pdecode  img<PIMAGE>\\nrawimg<BYTES>  Pdecode  img<PIMAGE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdecode\"},\"Pdist\":{\"description\":\"Calculates the distance between two points, in 2D or 3D space.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/dist_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> z1<DOUBLE> x2<DOUBLE> y2<DOUBLE> z2<DOUBLE>  Pdist  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE>  Pdist  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdist\"},\"Pellipse\":{\"description\":\"Draws an ellipse (oval) to the screen. An ellipse with equal width and height is a circle. By default, the first two parameters set the location, and the third and fourth parameters set the shape's width and height. The origin may be changed with the [`PellipseMode`](/doc/PellipseMode) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipse_.html)\\n\\n@param `a` float: x-coordinate of the ellipse\\n\\n@param `b` float: y-coordinate of the ellipse\\n\\n@param `c` float: width of the ellipse by default\\n\\n@param `d` float: height of the ellipse by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Pellipse  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pellipse\"},\"PellipseMode\":{\"description\":\"Modifies the location from which ellipses are drawn by changing the way in which parameters given to [`Pellipse`](/doc/Pellipse) are intepreted.\\n\\nThe default mode is **ellipseMode(CENTER)**, which interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(RADIUS)** also uses the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, but uses the third and fourth parameters to specify half of the shapes's width and height.\\n\\n**ellipseMode(CORNER)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(CORNERS)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the location of one corner of the ellipse's bounding box, and the third and fourth parameters as the location of the opposite corner.\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipseMode_.html)\\n\\n@param `mode` Either CENTER, RADIUS, CORNER, or CORNERS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PellipseMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PellipseMode\"},\"Pencode\":{\"description\":\"`Pencode` function takes a processing graphic object on the top of the stack, render it to a png file, encode it in base64, prefix the result with the standard png header \\\"data:image/png;base64,\\\".\\n\\nSince the 2.7.3 version, this function can be called on a **PIMAGE** instance.\\n\\nThe resulting string is ready to use in an html document.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing image object.\\n\\n@param `b64img` Base64 encoded image string, ready to use in an html page.\\n\\n@param `metadata` Map of metadata to add to the PNG. Accepted keys are 'tEXt', 'zTXt' and 'iTXt', while values are lists of maps with 'keyword' and 'text' keys.\\n\\n\",\"signature\":\"pg<PGRAPHICS>  Pencode  b64img<STRING>\\npg<PGRAPHICS> metadata<MAP>  Pencode  b64img<STRING>\\nimg<PIMAGE>  Pencode  b64img<STRING>\\nimg<PIMAGE> metadata<MAP>  Pencode  b64img<STRING>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pencode\"},\"PendContour\":{\"description\":\"Use the [`PbeginContour`](/doc/PbeginContour) and `PendContour` function to create negative shapes within shapes such as the center of the letter 'O'. [`PbeginContour`](/doc/PbeginContour) begins recording vertices for the shape and `PendContour` stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a [`PbeginContour`](/doc/PbeginContour)/`PendContour` pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n[Link to original Processing doc](https://processing.org/reference/endContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PendContour  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendContour\"},\"PendShape\":{\"description\":\"The `PendShape` function is the companion to [`PbeginShape`](/doc/PbeginShape) and may only be called after [`PbeginShape`](/doc/PbeginShape). When `Pendshape` is called, all of image data defined since the previous call to [`PbeginShape`](/doc/PbeginShape) is written into the image buffer. The constant CLOSE as the value for the MODE parameter to close the shape (to connect the beginning and the end). \\n\\nUp to Warp 10 1.2.18, `PendShape` could be called without the **mode** parameter. It defaults to OPEN.\\n\\n[Link to original Processing doc](https://processing.org/reference/endShape_.html)\\n\\n@param `mode` Use CLOSE to close the shape, OPEN otherwise.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PendShape  pg<PGRAPHICS>\\npg<PGRAPHICS>  PendShape  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendShape\"},\"Pfill\":{\"description\":\"Sets the color used to fill shapes. For example, if you run **fill(204, 102, 0)**, all subsequent shapes will be filled with orange. This color is either specified in terms of the RGB or HSB color depending on the current [`PcolorMode`](/doc/PcolorMode). The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\nThe value for the \\\"gray\\\" parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\nTo change the color of an image or a texture, use [`Ptint`](/doc/Ptint).\\n\\n[Link to original Processing doc](https://processing.org/reference/fill_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> argb<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> argb<LONG> alpha<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<LONG> v2<LONG> v3<LONG>  Pfill  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<LONG> v2<LONG> v3<LONG> alpha<LONG>  Pfill  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pfill\"},\"Pfilter\":{\"description\":\"Filters the display window using a preset filter or with a custom shader. Using a shader with `Pfilter` is much faster than without. Shaders require the P2D or P3D renderer in size().\\n\\n\\nThe presets options are:\\n\\n+ **THRESHOLD** Converts the image to black and white pixels depending if they are above or below the threshold defined by the level parameter. The parameter must be between 0.0 (black) and 1.0 (white). If no level is specified, 0.5 is used.\\n+ **GRAY** Converts any colors in the image to grayscale equivalents. No parameter is used.\\n+ **OPAQUE** Sets the alpha channel to entirely opaque. No parameter is used.\\n+ **INVERT** Sets each pixel to its inverse value. No parameter is used.\\n+ **POSTERIZE** Limits each channel of the image to the number of colors specified as the parameter. The parameter can be set to values between 2 and 255, but results are most noticeable in the lower ranges.\\n+ **BLUR** Executes a Guassian blur with the level parameter specifying the extent of the blurring. If no parameter is used, the blur is equivalent to Guassian blur of radius 1. Larger values increase the blur.\\n+ **ERODE** Reduces the light areas. No parameter is used.\\n+ **DILATE** Increases the light areas. No parameter is used.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/filter_.html)\\n\\n@param `kind` Either THRESHOLD, GRAY, OPAQUE, INVERT, POSTERIZE, BLUR, ERODE, or DILATE\\n\\n@param `param` unique for each, see above\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> kind<STRING>  Pfilter  pg<PGRAPHICS>\\npg<PGRAPHICS> kind<STRING> param<DOUBLE>  Pfilter  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.2.17\",\"OPB64name\":\"J5OdQ6G_RV\"},\"Pget\":{\"description\":\"Reads the color of any pixel or grabs a section of an image. If no parameters are specified, the entire image is returned (same as `Pcopy`). Use the **x** and **y** parameters to get the value of one pixel. Get a section of the display window by specifying additional **w** and **h** parameters. When getting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\nIf the pixel requested is outside of the image window, black is returned. The numbers returned are scaled according to the current color ranges, but only RGB values are returned by this function. For example, even though you may have drawn a shape with **colorMode(HSB)**, the numbers returned will be in RGB format.\\n\\nGetting the color of a single pixel with **get(x, y)** is easy, but not as fast as grabbing the data directly from [`Ppixels`](/doc/Ppixels).\\n\\n[Link to original Processing doc](https://processing.org/reference/get_.html)\\n\\n@param `x` int: x-coordinate of the pixel\\n\\n@param `y` int: y-coordinate of the pixel\\n\\n@param `w` int: width of pixel rectangle to get\\n\\n@param `h` int: height of pixel rectangle to get\\n\\n@param `img` PIMAGE object\\n\\n@param `color` Color of the pixel, 32bits ARGB format.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  Pget  pg<PGRAPHICS> img<PIMAGE>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER>  Pget  pg<PGRAPHICS> color<LONG>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> w<NUMBER> h<NUMBER>  Pget  pg<PGRAPHICS> img<PIMAGE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pget\"},\"Pgreen\":{\"description\":\"Extracts the green value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pgreen` function is easy to use and understand, but it is slower than bit shifting. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/green_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `green` Green component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> rgb<NUMBER>  Pgreen  pg<PGRAPHICS> green<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pgreen\"},\"Phue\":{\"description\":\"Extracts the hue value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/hue_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `hue` Hue component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> rgb<NUMBER>  Phue  pg<PGRAPHICS> hue<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Phue\"},\"Pimage\":{\"description\":\"The `Pimage` function draws a Pimage (see [`Pdecode`](/doc/Pdecode)) on a PGraphic object.\\n\\nThe **img** parameter specifies the image to display and by default the **a** and **b** parameters define the location of its upper-left corner. The image is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PimageMode`](/doc/PimageMode) function can be used to change the way these parameters draw the image.\\n\\nThe color of an image may be modified with the [`Ptint`](/doc/Ptint) function. This function will maintain transparency for GIF and PNG images.\\n\\n[Link to original Processing doc](https://processing.org/reference/image_.html)\\n\\n@param `img` PImage: the image to display\\n\\n@param `a` float: x-coordinate of the image by default\\n\\n@param `b` float: y-coordinate of the image by default\\n\\n@param `c` float: width to display the image by default\\n\\n@param `d` float: height to display the image by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> img<PIMAGE> a<NUMBER> b<NUMBER>  Pimage  pg<PGRAPHICS>\\npg<PGRAPHICS> img<PIMAGE> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Pimage  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pimage\"},\"PimageMode\":{\"description\":\"Modifies the location from which images are drawn by changing the way in which parameters given to [`Pimage`](/doc/Pimage) are intepreted.\\n\\nThe default mode is **imageMode(CORNER)**, which interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the upper-left corner of the image. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n**imageMode(CENTER)** interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the image's center point. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/imageMode_.html)\\n\\n@param `mode` could be CORNER or CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PimageMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PimageMode\"},\"Plerp\":{\"description\":\"Calculates a number between two numbers at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 equal to the first point, 0.1 is very near the first point, 0.5 is half-way in between, etc. The lerp function is convenient for creating motion along a straight path and for drawing dotted lines, or any linear interpolation.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerp_.html)\\n\\n@param `start` first value\\n\\n@param `stop` second value\\n\\n@param `amt` float between 0.0 and 1.0\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> start<NUMBER> stop<NUMBER> amt<NUMBER>  Plerp  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Plerp\"},\"PlerpColor\":{\"description\":\"Calculates a color between two colors at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 is equal to the first point, 0.1 is very near the first point, 0.5 is halfway in between, etc. \\n\\nAn amount below 0 will be treated as 0. Likewise, amounts above 1 will be capped at 1. This is different from the behavior of `Plerp`, but necessary because otherwise numbers outside the range will produce strange and unexpected colors.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerpColor_.html)\\n\\n@param `c1` interpolate from this color\\n\\n@param `c2` interpolate to this color\\n\\n@param `amt` between 0.0 and 1.0\\n\\n@param `outcolor` the interpolated result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> c1<NUMBER> c2<NUMBER> amt<NUMBER>  PlerpColor  pg<PGRAPHICS> outcolor<LONG>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PlerpColor\"},\"Pline\":{\"description\":\"Draws a line (a direct path between two points) to the screen. The version of `Pline` with four parameters draws the line in 2D.  To color a line, use the [`Pstroke`](/doc/Pstroke) function. A line cannot be filled, therefore the [`Pfill`](/doc/Pfill) function will not affect the color of a line. 2D lines are drawn with a width of one pixel by default, but this can be changed with the [`PstrokeWeight`](/doc/PstrokeWeight) function. The version with six parameters allows the line to be placed anywhere within XYZ space. Drawing this shape in 3D with the **z** parameter requires the P3D parameter.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/line_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x1<NUMBER> y1<NUMBER> x2<NUMBER> y2<NUMBER>  Pline  pg<PGRAPHICS>\\npg<PGRAPHICS> x1<NUMBER> y1<NUMBER> z1<NUMBER> x2<NUMBER> y2<NUMBER> z2<NUMBER>  Pline  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pline\"},\"PloadShape\":{\"description\":\"`PloadShape` can load a [SVG image](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) and return a PSHAPE object. WarpScript does not support [OBJ files](https://en.wikipedia.org/wiki/Wavefront_.obj_file) yet. \\n\\nThis feature is experimental, some files may render empty. \\n\\n@param `svg` A one line or a multiline SVG string.\\n\\n@param `Pshape` A PSHAPE object which can be used with Pshape.\\n\\n\",\"signature\":\"svg<STRING>  PloadShape  Pshape<PSHAPE>\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"PloadShape\"},\"Pmag\":{\"description\":\"Calculates the magnitude (or length) of a vector. A vector is a direction in space commonly used in computer graphics and linear algebra. Because it has no \\\"start\\\" position, the magnitude of a vector can be thought of as the distance from the coordinate 0,0 to its x,y value. Therefore, `Pmag` is a shortcut for writing **0 0 x y Pdist**. It is exactly the same as warpscript function [`HYPOT`](/doc/HYPOT).\\n\\n3D is not yet supported.\\n\\n[Link to original Processing doc](https://processing.org/reference/mag_.html)\\n\\n@param `a` first value\\n\\n@param `b` second value\\n\\n@param `mag` result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER>  Pmag  pg<PGRAPHICS> mag<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmag\"},\"Pmap\":{\"description\":\"Re-maps a number from one range to another.\\n\\nIn the first example, the number 25 is converted from a value in the range of 0 to 100 into a value that ranges from the left edge of the window (0) to the right edge (width).\\n\\n\\nAs shown in the second example, numbers outside of the range are not clamped to the minimum and maximum parameters values, because out-of-range values are often intentional and useful.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/map_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start1` lower bound of the value's current range\\n\\n@param `stop1` upper bound of the value's current range\\n\\n@param `start2` lower bound of the value's target range\\n\\n@param `stop2` upper bound of the value's target range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> value<DOUBLE> start1<DOUBLE> stop1<DOUBLE> start2<DOUBLE> stop2<DOUBLE>  Pmap  pg<PGRAPHICS> output<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmap\"},\"Pmask\":{\"description\":\"The `Pmask` function copies the blue channel of an image to the alpha channel of an other.\\n\\nAs **PGRAPHICS** intances are alse **PIMAGE** instances, you can use this function with **PGRAPHICS**.\\n\\n@param `orginal_img` PImage to be masked\\n\\n@param `mask_image` Pimage to serve as mask\\n\\n@param `masked_image` Masked Pimage\\n\\n@param `orginal_grp` PGraphics to be masked\\n\\n@param `mask_grp` PGraphics to serve as mask\\n\\n@param `masked_grp` Masked PGraphics\\n\\n\",\"signature\":\"orginal_img<PIMAGE> mask_image<PIMAGE>  Pmask  masked_image<PIMAGE>\\norginal_grp<PGRAPHICS> mask_image<PIMAGE>  Pmask  masked_grp<PGRAPHICS>\\norginal_img<PIMAGE> mask_grp<PGRAPHICS>  Pmask  masked_image<PIMAGE>\\norginal_grp<PGRAPHICS> mask_grp<PGRAPHICS>  Pmask  masked_grp<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"2.7.0\",\"OPB64name\":\"Pmask\"},\"PnoClip\":{\"description\":\"Disables the clipping previously started by the [`Pclip`](/doc/Pclip) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noClip_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PnoClip  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoClip\"},\"PnoFill\":{\"description\":\"Disables filling geometry. If both [`PnoStroke`](/doc/PnoStroke) and `PnoFill` are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noFill_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PnoFill  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoFill\"},\"PnoStroke\":{\"description\":\"Disables drawing the stroke (outline). If both `PnoStroke` and [`PnoFill`](/doc/PnoFill) are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noStroke_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PnoStroke  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoStroke\"},\"PnoTint\":{\"description\":\"Removes the current fill value for displaying images and reverts to displaying images with their original hues.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noTint_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PnoTint  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoTint\"},\"Pnorm\":{\"description\":\"Normalizes a number from another range into a value between 0 and 1. Identical to `value low high 0 1 Pmap`.\\n\\nNumbers outside of the range are not clamped to 0 and 1, because out-of-range values are often intentional and useful. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/norm_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start` lower bound of the value's current range\\n\\n@param `stop` upper bound of the value's current range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> value<NUMBER> start<NUMBER> stop<NUMBER>  Pnorm  pg<PGRAPHICS> output<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pnorm\"},\"Ppixels\":{\"description\":\"Returns an array containing the values for all the pixels in the display window. These values are of the color datatype. This array is the size of the display window. For example, if the image is 100x100 pixels, there will be 10000 values and if the window is 200x300 pixels, there will be 60000 values. After **pixels** has been modified, the [`PupdatePixels`](/doc/PupdatePixels) function must be run to update the content of the display window.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pixels.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  Ppixels  pg<PGRAPHICS> pixels<LIST<LONG>>\\nimg<PIMAGE>  Ppixels  pixels<LIST<LONG>>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppixels\"},\"Ppoint\":{\"description\":\"Draws a point, a coordinate in space at the dimension of one pixel. The first parameter is the horizontal value for the point, the second value is the vertical value for the point.\\n\\nUse [`Pstroke`](/doc/Pstroke) to set the color of a `Ppoint`.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/point_.html)\\n\\n@param `x` x-coordinate of the point\\n\\n@param `y` y-coordinate of the point\\n\\n@param `z` z-coordinate of the point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  Ppoint  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  Ppoint  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppoint\"},\"PpopMatrix\":{\"description\":\"Pops the current transformation matrix off the matrix stack. Understanding pushing and popping requires understanding the concept of a matrix stack. The [`PpushMatrix`](/doc/PpushMatrix) function saves the current coordinate system to the stack and `PpopMatrix` restores the prior coordinate system. [`PpushMatrix`](/doc/PpushMatrix) and `PpopMatrix` are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PpopMatrix  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopMatrix\"},\"PpopStyle\":{\"description\":\"The [`PpushStyle`](/doc/PpushStyle) function saves the current style settings and `PpopStyle` restores the prior settings; these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with [`PpushStyle`](/doc/PpushStyle), it builds on the current style information. The [`PpushStyle`](/doc/PpushStyle) and `PpopStyle` functions can be nested to provide more control (see example for a demonstration.)\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PpopStyle  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopStyle\"},\"PpushMatrix\":{\"description\":\"Pushes the current transformation matrix onto the matrix stack. Understanding `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) requires understanding the concept of a matrix stack. The `PpushMatrix` function saves the current coordinate system to the stack and [`PpopMatrix`](/doc/PpopMatrix) restores the prior coordinate system. `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PpushMatrix  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushMatrix\"},\"PpushStyle\":{\"description\":\"The `PpushStyle` function saves the current style settings and [`PpopStyle`](/doc/PpopStyle) restores the prior settings. Note that these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with `PpushStyle`, it builds on the current style information. The `PpushStyle` and [`PpopStyle`](/doc/PpopStyle) functions can be nested to provide more control. (See example for a demonstration.)\\n\\n\\nThe style information controlled by the following functions are included in the style:fill, stroke, tint, strokeWeight, strokeCap, strokeJoin, imageMode, rectMode, ellipseMode, shapeMode, colorMode, textAlign, textFont, textMode, textSize, textLeading, emissive, specular, shininess, ambient.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PpushStyle  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushStyle\"},\"Pquad\":{\"description\":\"A quad is a quadrilateral, a four sided polygon. It is similar to a rectangle, but the angles between its edges are not constrained to ninety degrees. The first pair of parameters (x1,y1) sets the first vertex and the subsequent pairs should proceed clockwise or counter-clockwise around the defined shape.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quad_.html)\\n\\n@param `x1` float: x-coordinate of the first corner\\n\\n@param `y1` float: y-coordinate of the first corner\\n\\n@param `x2` float: x-coordinate of the second corner\\n\\n@param `y2` float: y-coordinate of the second corner\\n\\n@param `x3` float: x-coordinate of the third corner\\n\\n@param `y3` float: y-coordinate of the third corner\\n\\n@param `x4` float: x-coordinate of the fourth corner\\n\\n@param `y4` float: y-coordinate of the fourth corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE> x4<DOUBLE> y4<DOUBLE>  Pquad  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pquad\"},\"PquadraticVertex\":{\"description\":\"Specifies vertex coordinates for quadratic Bezier curves. Each call to `PquadraticVertex` defines the position of one control point and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PquadraticVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when there is no MODE parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quadraticVertex_.html)\\n\\n@param `cx` the x-coordinate of the control point\\n\\n@param `cy` the y-coordinate of the control point\\n\\n@param `x3` the x-coordinate of the anchor point\\n\\n@param `y3` the y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> cx<DOUBLE> cy<DOUBLE> x3<DOUBLE> y3<DOUBLE>  PquadraticVertex  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PquadraticVertex\"},\"Prect\":{\"description\":\"Draws a rectangle to the screen. A rectangle is a four-sided shape with every angle at ninety degrees. By default, the first two parameters set the location of the upper-left corner, the third sets the width, and the fourth sets the height. The way these parameters are interpreted, however, may be changed with the [`PrectMode`](/doc/PrectMode) function.\\n\\n\\n\\nTo draw a rounded rectangle, add a fifth parameter, which is used as the radius value for all four corners.\\n\\n\\n\\nTo use a different radius value for each corner, include eight parameters. When using eight parameters, the latter four set the radius of the arc at each corner separately, starting with the top-left corner and moving clockwise around the rectangle.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rect_.html)\\n\\n@param `a` float: x-coordinate of the rectangle by default\\n\\n@param `b` float: y-coordinate of the rectangle by default\\n\\n@param `c` float: width of the rectangle by default\\n\\n@param `d` float: height of the rectangle by default\\n\\n@param `r` float: radii for all four corners\\n\\n@param `tl` float: radius for top-left corner\\n\\n@param `tr` float: radius for top-right corner\\n\\n@param `br` float: radius for bottom-right corner\\n\\n@param `bl` float: radius for bottom-left corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER>  Prect  pg<PGRAPHICS>\\npg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER> r<NUMBER>  Prect  pg<PGRAPHICS>\\npg<PGRAPHICS> a<NUMBER> b<NUMBER> c<NUMBER> d<NUMBER> tl<NUMBER> tr<NUMBER> br<NUMBER> bl<NUMBER>  Prect  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Prect\"},\"PrectMode\":{\"description\":\"Modifies the location from which rectangles are drawn by changing the way in which parameters given to [`Prect`](/doc/Prect) are intepreted.\\n\\nThe default mode is **CORNER**, which interprets the first two parameters of [`Prect`](/doc/Prect) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**CORNERS** interprets the first two parameters of [`Prect`](/doc/Prect) as the location of one corner, and the third and fourth parameters as the location of the opposite corner.\\n\\n**CENTER** interprets the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**RADIUS** also uses the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, but uses the third and fourth parameters to specify half of the shape's width and height.\\n\\nThe parameter must be written in ALL CAPS because Processing is a case-sensitive language.\\n\\n[Link to original Processing doc](https://processing.org/reference/rectMode_.html)\\n\\n@param `mode` either CORNER, CORNERS, CENTER, or RADIUS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PrectMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PrectMode\"},\"Pred\":{\"description\":\"Extracts the red value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pred` function is easy to use and understand, but it is slower than bit shifting. \\n\\n[Link to original Processing doc](https://processing.org/reference/red_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `red` Red component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> rgb<NUMBER>  Pred  pg<PGRAPHICS> red<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pred\"},\"PresetMatrix\":{\"description\":\"Replaces the current matrix with the identity matrix. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/resetMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PresetMatrix  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PresetMatrix\"},\"Presize\":{\"description\":\"The `Presize` function takes a **PIMAGE**, a width and a height and resizes the **PIMAGE**. This resizing does bilinear interpolation, which results in a smoother image than using [`Pimage`](/doc/Pimage) to resize.\\n\\n@param `height` New height of the image.\\n\\n@param `width` New width of the image.\\n\\n@param `img` Image to be resized\\n\\n@param `resized` Resized image.\\n\\n\",\"signature\":\"img<PIMAGE> width<LONG> height<LONG>  Presize  resized<PIMAGE>\",\"tags\":[\"processing\"],\"since\":\"2.7.3\",\"OPB64name\":\"Presize\"},\"Protate\":{\"description\":\"Rotates the amount specified by the **angle** parameter. Angles must be specified in radians (values from **0** to **2 PI**). \\n\\nThe coordinates are always rotated around their relative position to the origin. Positive numbers rotate objects in a clockwise direction and negative numbers rotate in the couterclockwise direction. Transformations apply to everything that happens afterward, and subsequent calls to the function compound the effect. For example, calling `pi 2.0 / Protate` once and then calling `pi 2.0 / Protate` a second time is the same as a single `pi Protate`. \\n \\n\\nTechnically, `Protate` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rotate_.html)\\n\\n@param `angle` angle of rotation specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> angle<NUMBER>  Protate  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Protate\"},\"Psaturation\":{\"description\":\"Extracts the saturation value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/saturation_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `saturation` Saturation component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> rgb<NUMBER>  Psaturation  pg<PGRAPHICS> saturation<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psaturation\"},\"Pscale\":{\"description\":\"Increases or decreases the size of a shape by expanding and contracting vertices. Objects always scale from their relative origin to the coordinate system. Scale values are specified as decimal percentages. For example, the function call `2.0 Pscale` increases the dimension of a shape by 200%.\\n\\n\\n\\nTransformations apply to everything that happens after and subsequent calls to the function multiply the effect. For example, calling `2.0 Pscale` and then `1.5 Pscale` is the same as `3.0 Pscale`. This function can be further controlled with [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/scale_.html)\\n\\n@param `s` percentage to scale the object\\n\\n@param `x` percentage to scale the object in the x-axis\\n\\n@param `y` percentage to scale the object in the y-axis\\n\\n@param `z` percentage to scale the object in the z-axis\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> s<NUMBER>  Pscale  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER>  Pscale  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  Pscale  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pscale\"},\"Pset\":{\"description\":\"Changes the color of any pixel, or writes an image directly to the display window.\\n\\n\\n\\nThe **x** and **y** parameters specify the pixel to change and the **c** parameter specifies the color value. The **c** parameter is interpreted according to the current color mode.  (The default color mode is RGB values from 0 to 255.)  When setting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\n\\n\\nSetting the color of a single pixel with **set(x, y)** is easy, but not as fast as putting the data directly into the list of pixels returned by  [`Ppixels`](/doc/Ppixels).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/set_.html)\\n\\n@param `x` X-coordinate of the pixel\\n\\n@param `y` Y-coordinate of the pixel\\n\\n@param `c` Any value of the color datatype\\n\\n@param `img` Image to copy into the original image\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER> c<NUMBER>  Pset  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> img<PIMAGE>  Pset  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pset\"},\"Pshape\":{\"description\":\"Draws shapes to the display window. Shapes must be loaded with [`PloadShape`](/doc/PloadShape). Processing currently works with SVG, OBJ, and custom-created shapes. WrapScript only support SVG. The **shape** parameter specifies the shape to display and the coordinate parameters define the location of the shape from its upper-left corner. The shape is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PshapeMode`](/doc/PshapeMode) function can be used to change the way these parameters are interpreted.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shape_.html)\\n\\n@param `shape` the shape to display\\n\\n@param `x` x-coordinate of the shape\\n\\n@param `y` y-coordinate of the shape\\n\\n@param `a` x-coordinate of the shape\\n\\n@param `b` y-coordinate of the shape\\n\\n@param `c` width to display the shape\\n\\n@param `d` height to display the shape\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> shape<PSHAPE>  Pshape  pg<PGRAPHICS>\\npg<PGRAPHICS> shape<PSHAPE> x<DOUBLE> y<DOUBLE>  Pshape  pg<PGRAPHICS>\\npg<PGRAPHICS> shape<PSHAPE> a<DOUBLE> b<DOUBLE> c<DOUBLE> d<DOUBLE>  Pshape  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"Pshape\"},\"PshapeMode\":{\"description\":\"Modifies the location from which shapes draw. The default mode is **shapeMode(CORNER)**, which specifies the location to be the upper left corner of the shape and uses the third and fourth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. The syntax **shapeMode(CORNERS)** uses the first and second parameters of [`Pshape`](/doc/Pshape) to set the location of one corner and uses the third and fourth parameters to set the opposite corner. The syntax **shapeMode(CENTER)** draws the shape from its center point and uses the third and forth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shapeMode_.html)\\n\\n@param `mode` int: either CORNER, CORNERS, CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PshapeMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshapeMode\"},\"PshearX\":{\"description\":\"Shears a shape around the x-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearX` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearX_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> angle<NUMBER>  PshearX  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearX\"},\"PshearY\":{\"description\":\"Shears a shape around the y-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearY` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearY_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> angle<NUMBER>  PshearY  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearY\"},\"Psize\":{\"description\":\"The `Psize` function returns the pixel `width` and `height` of a Pimage or PGraphics object.\\n\\n@param `img` PImage instance to measure.\\n\\n@param `pg` PGraphics instance to measure.\\n\\n@param `height` Object height in pixels.\\n\\n@param `width` Object height in pixels.\\n\\n\",\"signature\":\"img<PIMAGE>  Psize  width<LONG> height<LONG>\\npg<PGRAPHICS>  Psize  width<LONG> height<LONG>\",\"tags\":[\"processing\"],\"since\":\"2.6.0\",\"OPB64name\":\"Psize\"},\"Psphere\":{\"description\":\"A sphere is a hollow ball made from tessellated triangles.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphere_.html)\\n\\n@param `r` the radius of the sphere\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> r<NUMBER>  Psphere  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psphere\"},\"PsphereDetail\":{\"description\":\"Controls the detail used to render a sphere by adjusting the number of vertices of the sphere mesh. The default resolution is 30, which creates a fairly detailed sphere definition with vertices every 360/30 = 12 degrees. If you are going to render a great number of spheres per frame, it is advised to reduce the level of detail using this function. The setting stays active until `PsphereDetail` is called again with a new parameter and so should **not** be called prior to every [`Psphere`](/doc/Psphere) statement, unless you wish to render spheres with different settings, e.g. using less detail for smaller spheres or ones further away from the camera. To control the detail of the horizontal and vertical resolution independently, use the version of the functions with two parameters.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphereDetail_.html)\\n\\n@param `res` int: number of segments (minimum 3) used per full circle revolution\\n\\n@param `ures` int: number of segments used longitudinally per full circle revolutoin\\n\\n@param `vres` int: number of segments used latitudinally from top to bottom\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> res<NUMBER>  PsphereDetail  pg<PGRAPHICS>\\npg<PGRAPHICS> ures<NUMBER> vres<NUMBER>  PsphereDetail  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PsphereDetail\"},\"Pstroke\":{\"description\":\"Sets the color used to draw lines and borders around shapes. This color is either specified in terms of the RGB or HSB color depending on the current **colorMode** The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/stroke_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> argb<LONG>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> argb<LONG> alpha<DOUBLE>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<DOUBLE> alpha<DOUBLE>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Pstroke  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Pstroke  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pstroke\"},\"PstrokeCap\":{\"description\":\"Sets the style for rendering line endings. These ends are either squared, extended, or rounded, each of which specified with the corresponding parameters: SQUARE, PROJECT, and ROUND. The default cap is ROUND.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeCap_.html)\\n\\n@param `cap` Either SQUARE, PROJECT, or ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> cap<STRING>  PstrokeCap  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeCap\"},\"PstrokeJoin\":{\"description\":\"Sets the style of the joints which connect line segments. These joints are either mitered, beveled, or rounded and specified with the corresponding parameters MITER, BEVEL, and ROUND. The default joint is MITER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeJoin_.html)\\n\\n@param `join` Either MITER, BEVEL, ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> join<STRING>  PstrokeJoin  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeJoin\"},\"PstrokeWeight\":{\"description\":\"Sets the width of the stroke used for lines, points, and the border around shapes. All widths are set in units of pixels.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight. See [`Ppoint`](/doc/Ppoint) example.\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeWeight_.html)\\n\\n@param `weight` The weight (in pixels) of the stroke.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> weight<NUMBER>  PstrokeWeight  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeWeight\"},\"Ptext\":{\"description\":\"Draws text to the screen. Displays the information specified in the first parameter on the screen in the position specified by the additional parameters. A default font will be used unless a font is set with the [`PtextFont`](/doc/PtextFont) function and a default size will be used unless a font is set with [`PtextSize`](/doc/PtextSize). Change the color of the text with the [`Pfill`](/doc/Pfill) function. The text displays in relation to the [`PtextAlign`](/doc/PtextAlign) function, which gives the option to draw to the left, right, and center of the coordinates.\\n\\n\\n\\nThe **x2** and **y2** parameters define a rectangular area to display within and may only be used with string data. When these parameters are specified, they are interpreted based on the current [`PrectMode`](/doc/PrectMode) setting. Text that does not fit completely within the rectangle specified will not be drawn to the screen.\\n\\n\\n\\nNote that Processing now lets you call `Ptext` without first specifying a PFont with [`PtextFont`](/doc/PtextFont). In that case, a generic sans-serif font will be used instead.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/text_.html)\\n\\n@param `s` the string to be displayed\\n\\n@param `x` by default, x-coordinate of text\\n\\n@param `y` by default, y-coordinate of text\\n\\n@param `x1` by default, the x-coordinate of text, see PrectMode for more info\\n\\n@param `y1` by default, the y-coordinate of text, see PrectMode for more info\\n\\n@param `x2` by default, the width of the text box, see PrectMode for more info\\n\\n@param `y2` by default, the height of the text box, see PrectMode for more info\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> s<STRING> x<DOUBLE> y<DOUBLE>  Ptext  pg<PGRAPHICS>\\npg<PGRAPHICS> s<STRING> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE>  Ptext  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptext\"},\"PtextAlign\":{\"description\":\"Sets the current alignment for drawing text. The parameters LEFT, CENTER, and RIGHT set the display characteristics of the letters in relation to the values for the **x** and **y** parameters of the [`Ptext`](/doc/Ptext) function.\\n\\n\\n\\nAn optional second parameter can be used to vertically align the text. BASELINE is the default, and the vertical alignment will be reset to BASELINE if the second parameter is not used. The TOP and CENTER parameters are straightforward. The BOTTOM parameter offsets the line based on the current [`PtextDescent`](/doc/PtextDescent). For multiple lines, the final line will be aligned to the bottom, with the previous lines appearing above it.\\n\\n\\n\\nWhen using [`Ptext`](/doc/Ptext) with width and height parameters, BASELINE is ignored, and treated as TOP. (Otherwise, text would by default draw outside the box, since BASELINE is the default setting. BASELINE is not a useful drawing mode for text drawn in a rectangle.)\\n\\n\\n\\nThe vertical alignment is based on the value of [`PtextAscent`](/doc/PtextAscent), which many fonts do not specify correctly. It may be necessary to use a hack and offset by a few pixels by hand so that the offset looks correct. To do this as less of a hack, use some percentage of [`PtextAscent`](/doc/PtextAscent) or [`PtextDescent`](/doc/PtextDescent) so that the hack works even if you change the size of the font.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAlign_.html)\\n\\n@param `alignX` Horizontal alignment, either LEFT, CENTER, or RIGHT\\n\\n@param `alignY` Vertical alignment, either TOP, BOTTOM, CENTER, or BASELINE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> alignX<STRING>  PtextAlign  pg<PGRAPHICS>\\npg<PGRAPHICS> alignX<STRING> alignY<STRING>  PtextAlign  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAlign\"},\"PtextAscent\":{\"description\":\"Returns ascent of the current font at its current size. This information is useful for determining the height of the font above the baseline. For example, adding the `PtextAscent` and [`PtextDescent`](/doc/PtextDescent) values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAscent_.html)\\n\\n@param `ascent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PtextAscent  pg<PGRAPHICS> ascent<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAscent\"},\"PtextDescent\":{\"description\":\"Returns descent of the current font at its current size. This information is useful for determining the height of the font below the baseline. For example, adding the [`PtextAscent`](/doc/PtextAscent) and `PtextDescent` values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textDescent_.html)\\n\\n@param `descent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PtextDescent  pg<PGRAPHICS> descent<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextDescent\"},\"PtextFont\":{\"description\":\"Sets the current font that will be drawn with the [`Ptext`](/doc/Ptext) function. Fonts must be created for Processing with [`PcreateFont`](/doc/PcreateFont) before they can be used. The font set through `PtextFont` will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textFont_.html)\\n\\n@param `font` Any variable of the type PFont\\n\\n@param `size` the size of the letters in pixel.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> font<PFONT>  PtextFont  pg<PGRAPHICS>\\npg<PGRAPHICS> font<PFONT> size<NUMBER>  PtextFont  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextFont\"},\"PtextLeading\":{\"description\":\"Sets the spacing between lines of text in units of pixels. This setting will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.  Note, however, that the leading is reset by [`PtextSize`](/doc/PtextSize). For example, if the leading is set to 20 with `20 PtextLeading`, then if `48 PtextSize` is run at a later point, the leading will be reset to the default for the text size of 48.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textLeading_.html)\\n\\n@param `leading` The size in pixels for spacing between lines\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> leading<NUMBER>  PtextLeading  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextLeading\"},\"PtextMode\":{\"description\":\"Sets the way text draws to the screen, either as texture maps or as vector geometry. The default **textMode(MODEL)**, uses textures to render the fonts. The **textMode(SHAPE)** mode draws text using the glyph outlines of individual characters rather than as textures. This mode is only supported with the **PDF** and **P3D** renderer settings. With the **PDF** renderer, you must call **textMode(SHAPE)** before any other drawing occurs. If the outlines are not available, then **textMode(SHAPE)** will be ignored and **textMode(MODEL)** will be used instead.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textMode_.html)\\n\\n@param `mode` int: either MODEL or SHAPE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> mode<STRING>  PtextMode  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextMode\"},\"PtextSize\":{\"description\":\"Sets the current font size. This size will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function. Font size is measured in units of pixels.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textSize_.html)\\n\\n@param `size` float: the size of the letters in units of pixels\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> size<NUMBER>  PtextSize  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextSize\"},\"PtextWidth\":{\"description\":\"Calculates and returns the width of any character or text string.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textWidth_.html)\\n\\n@param `str` The String of characters to measure\\n\\n@param `w` The width of the input string\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> str<STRING>  PtextWidth  pg<PGRAPHICS> w<DOUBLE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextWidth\"},\"Ptint\":{\"description\":\"Sets the fill value for displaying images. Images can be tinted to specified colors or made transparent by including an alpha value.\\n\\n\\n\\nTo apply transparency to an image without affecting its color, use white as the tint color and specify an alpha value. For instance, **tint(255, 128)** will make an image 50pc transparent (assuming the default alpha range of 0-255, which can be changed with [`PcolorMode`](/doc/PcolorMode)).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/tint_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `alpha` opacity of the image\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> argb<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> gray<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> argb<NUMBER> alpha<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER>  Ptint  pg<PGRAPHICS>\\npg<PGRAPHICS> v1<NUMBER> v2<NUMBER> v3<NUMBER> alpha<NUMBER>  Ptint  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptint\"},\"PtoImage\":{\"description\":\"The `PtoImage` function transforms a `PGRAPHICS` to a `PIMAGE`.\\n\\nThe `PGRAPHICS` can still be used after the transformation as this function copies the pixel values. This is equivalent to `Pencode Pdecode` but it is a lot faster.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing Pimage object.\\n\\n\",\"signature\":\"pg<PGRAPHICS>  PtoImage  img<PIMAGE>\",\"tags\":[\"processing\"],\"since\":\"2.1.0\",\"OPB64name\":\"PtoImage\"},\"Ptranslate\":{\"description\":\"Specifies an amount to displace objects within the display window. The **x** parameter specifies left/right translation, the **y** parameter specifies up/down translation.\\n\\n\\n\\nTransformations are cumulative and apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling **50 0 Ptranslate** and then **20 0 Ptranslate** is the same as **70 0 Ptranslate**. This function can be further controlled by using [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/translate_.html)\\n\\n@param `x` left/right translation\\n\\n@param `y` up/down translation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  Ptranslate  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptranslate\"},\"Ptriangle\":{\"description\":\"A triangle is a plane created by connecting three points. The first two arguments specify the first point, the middle two arguments specify the second point, and the last two arguments specify the third point. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/triangle_.html)\\n\\n@param `x1` float: x-coordinate of the first point\\n\\n@param `y1` float: y-coordinate of the first point\\n\\n@param `x2` float: x-coordinate of the second point\\n\\n@param `y2` float: y-coordinate of the second point\\n\\n@param `x3` float: x-coordinate of the third point\\n\\n@param `y3` float: y-coordinate of the third point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x1<DOUBLE> y1<DOUBLE> x2<DOUBLE> y2<DOUBLE> x3<DOUBLE> y3<DOUBLE>  Ptriangle  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptriangle\"},\"PupdatePixels\":{\"description\":\"Updates the display window with the data in the **pixels[]** array. Use in conjunction with [`Ppixels`](/doc/Ppixels). If you are only reading pixels from the array, there's no need to call `PupdatePixels` - updating is only necessary to apply changes.\\n\\n[Link to original Processing doc](https://processing.org/reference/updatePixels_.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"signature\":\"pg<PGRAPHICS> pixels<LIST<LONG>>  PupdatePixels  pg<PGRAPHICS>\\nimg<PIMAGE> pixels<LIST<LONG>>  PupdatePixels  img<PIMAGE>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PupdatePixels\"},\"Pvertex\":{\"description\":\"All shapes are constructed by connecting a series of vertices. `Pvertex` is used to specify the vertex coordinates for points, lines, triangles, quads, and polygons. It is used exclusively within the [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/vertex_.html)\\n\\n@param `x` x-coordinate of the vertex\\n\\n@param `y` y-coordinate of the vertex\\n\\n@param `z` float: z-coordinate of the vertex\\n\\n@param `u` float: horizontal coordinate for the texture mapping\\n\\n@param `v` float: vertical coordinate for the texture mapping\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"pg<PGRAPHICS> x<NUMBER> y<NUMBER>  Pvertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER>  Pvertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> u<NUMBER> v<NUMBER>  Pvertex  pg<PGRAPHICS>\\npg<PGRAPHICS> x<NUMBER> y<NUMBER> z<NUMBER> u<NUMBER> v<NUMBER>  Pvertex  pg<PGRAPHICS>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pvertex\"},\"Q->\":{\"description\":\"The `Q->` function consumes on the stack a [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long and push back the quaternion into\\n4 doubles (w, x, y, z, with z being on top).\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `input` Quaternion representation\\n\\n\",\"signature\":\"input<LONG>  Q->  w<DOUBLE> x<DOUBLE> y<DOUBLE> z<DOUBLE>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"JHoy\"},\"QCONJUGATE\":{\"description\":\"The `QCONJUGATE` function performs a [conjugation](https://en.wikipedia.org/wiki/Quaternion#Conjugation,_the_norm,_and_reciprocal) of a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the quaternion conjugate into a long.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `result` The conjugated quaternion\\n\\n\",\"signature\":\"quaternion<LONG>  QCONJUGATE  result<LONG>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QCONJUGATE\"},\"QDIVIDE\":{\"description\":\"The `QDIVIDE` function divides a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of dividing them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from division *q* by *r*\\n\\n\",\"signature\":\"q<LONG> r<LONG>  QDIVIDE  result<LONG>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QDIVIDE\"},\"QMULTIPLY\":{\"description\":\"The `QMULTIPLY` function multiplies a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of multiplying them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from multiplication *q* by *r*\\n\\n\",\"signature\":\"q<LONG> r<LONG>  QMULTIPLY  result<LONG>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QMULTIPLY\"},\"QROTATE\":{\"description\":\"Rotates a vector by a [quaternion](https://en.wikipedia.org/wiki/Quaternion).\\n\\nThe `QROTATE` function consumes on the top of the stack three doubles representing a vector(x, y, z) and a long representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the vector rotated into 3 doubles (x, y, z with z being on top).\\n\\n@param `quaternion` The quaternion used to rotate the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"signature\":\"x<DOUBLE> y<DOUBLE> z<DOUBLE> quaternion<LONG>  QROTATE  x<DOUBLE> y<DOUBLE> z<DOUBLE>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATE\"},\"QROTATION\":{\"description\":\"The `QROTATION` extracts the axis and angle of the rotation represented by the [quaternion](https://en.wikipedia.org/wiki/Quaternion) on the stack.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `angle` The angle of rotation\\n\\n@param `x` The X axis\\n\\n@param `y` The Y axis\\n\\n@param `z` The Z axis\\n\\n\",\"signature\":\"quaternion<LONG>  QROTATION  x<DOUBLE> y<DOUBLE> z<DOUBLE> angle<DOUBLE>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATION\"},\"QUANTIZE\":{\"description\":\"The `QUANTIZE` function produces a quantized version of a Geo Time Series™ by replacing each value with a value from a finite list according to the interval the original value falls in. This function only works on numeric Geo Time Series™.\\nThis function can help to \\\"discretify\\\" data before calling [`VALUEHISTOGRAM`](/doc/VALUEHISTOGRAM).\\nThe list of intervals is defined as: [-∞,bounds<sub>0</sub>], (bounds<sub>0</sub>,bounds_<sub>1</sub>], (bounds<sub>1</sub>,bounds<sub>2</sub>], ..., (bounds<sub>n-1</sub>,+∞]\\n\\n@param `values` List of `n+1` values, one for each interval defined by `bounds`. If empty, the list `[ `0` `1` ... `n+1` ]` will be used.\\n\\n@param `bounds` Sorted list of `n` finite bounds defining `n+1` intervals.\\n\\n@param `gts` Geo Time Series™ to quantize.\\n\\n@param `qgts` Quantized GTS.\\n\\n@param `lgts` List of Geo Time Series™ to quantize.\\n\\n@param `lqgts` List of quantized GTS.\\n\\n\",\"signature\":\"gts<GTS> bounds<LIST<DOUBLE>> values<LIST>  QUANTIZE  qgts<GTS>\\nlgts<LIST<GTS>> bounds<LIST<DOUBLE>> values<LIST>  QUANTIZE  lqgts<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"QUANTIZE\"},\"RAND\":{\"description\":\"The `RAND` function pushes onto the stack a random floating point number between 0.0 (inclusive) and 1.0 (exlusive) generated by the default random generator.\\n\\nThis generation is cryptographically secure.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"signature\":\" RAND  num<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RAND\"},\"RANDOM\":{\"description\":\"The `RANDOM` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThis function is very similar to [SRAND](/doc/SRAND) except the seed is choosen pseudorandomly when the function is first called. Subsequent calls use the same generator.\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"signature\":\" RANDOM  num<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"RANDOM\"},\"RANDPDF\":{\"description\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe result if a function pushed onto the stack. This function does not have any arguments.\\n\\nTo use the function pushed by `RANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"signature\":\"valueHistogram<MAP>  RANDPDF  result<STRING>\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.7\",\"OPB64name\":\"RANDPDF\"},\"RANGE\":{\"description\":\"`RANGE` pushes onto the stack a list of integers in the given range [start included, end excluded[. If start is not in the parameter list, start=0.\\n\\n`RANGE` also accepts a step parameter in the parameter list.\\n\\n\\n@param `start` The start of range, default is 0\\n\\n@param `end` The end of range\\n\\n@param `step` The step between integers, default is 1\\n\\n@param `output` The list of every integers in the range [start end[\\n\\n\",\"signature\":\"[ end<LONG> ]  RANGE  output<LIST<LONG>>\\n[ start<LONG> end<LONG> ]  RANGE  output<LIST<LONG>>\\n[ start<LONG> end<LONG> step<LONG> ]  RANGE  output<LIST<LONG>>\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGE\"},\"RANGECOMPACT\":{\"description\":\"The `RANGECOMPACT` simplifies a Geo Time Series™ by simplifying ranges of identical values (with identical latitude, longitude and elevation), retaining only the first and last ticks of each range.\\n\\n@param `gts` Geo Time Series™ to compact.\\n\\n@param `compacted` Compacted GTS.\\n\\n@param `lgts` List of Geo Time Series™ to compact.\\n\\n@param `lcompacted` List of compacted GTS.\\n\\n\",\"signature\":\"gts<GTS>  RANGECOMPACT  compacted<GTS>\\nlgts<LIST<GTS>>  RANGECOMPACT  lcompacted<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGECOMPACT\"},\"RAWDTW\":{\"description\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe computation is performed on the raw Geo Time Series™, no transformation is applied to them.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"signature\":\"gts1<GTS> gts2<GTS> threshold<DOUBLE>  RAWDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> characteristic<STRING>  RAWDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> distance<STRING> characteristic<STRING>  RAWDTW  dtw<DOUBLE>\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"RAWDTW\"},\"REDEFS\":{\"description\":\"The `REDEFS` function allows or disallows execution of redefined functions.\\n\\n@param `flag` Shall we allow or disallow the execution of redefined functions.\\n\\n\",\"signature\":\"flag<BOOLEAN>  REDEFS \",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REDEFS\"},\"REDUCE\":{\"description\":\"The `REDUCE` framework groups Geo Time Series™ by equivalence classes based on label values and applies a function on each equivalence class of Geo Time Series™, considering the values of each tick and producing one GTS per equivalence class.\\n\\nAs the selected reducer function is applied tick by tick, it is usually wise to [`BUCKETIZE`](/doc/BUCKETIZE) the GTS first with a common value of `lastbucket`.\\n\\nThe labels whose values are common to all the GTS in an equivalence class will be retained.\\n\\nIf all the inputs are bucketized with the same bucket span and bucket end, the output of reduce will be bucketized too. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) if needed after `REDUCE`.\\n\\nSince 2.1 you can make REDUCE override the GTSs ticks. This usage in mainly to be used in conjuction with [`MACROREDUCER`](/doc/MACROREDUCER).\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` List of resulting Geo Time Series™.\\n\\n@param `overrideTick` Boolean, if true allows the reducer to modify the ticks of the GTSs. If not set, the reducer cannot modify the ticks.\\n\\n\",\"signature\":\"[ gts<LIST<GTS>+> labels<LIST<STRING>> reducer<AGGREGATOR> ]  REDUCE  result<LIST<GTS>>\\n[ gts<LIST<GTS>+> labels<LIST<STRING>> reducer<AGGREGATOR> overrideTick<BOOLEAN> ]  REDUCE  result<LIST<GTS>>\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"REDUCE\"},\"RELABEL\":{\"description\":\"Modifies the labels of a Geo Time Series™. The `RELABEL` function expects a parameter MAP whose entries are labels to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `RELABEL` function will use the rest of the MAP as the actual labels to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing labels.\\n\\nAn entry with an empty STRING value or a NULL value will have the effect of removing the label from the GTS' labels.        \\n\\n@param `labels` Parameter map of label names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `encoder` Encoder to relabel\\n\\n@param `lencoder` List of encoders to relabel\\n\\n\",\"signature\":\"gts<GTS> labels<MAP>  RELABEL  gts<GTS>\\nlgts<LIST<GTS>> labels<MAP>  RELABEL  lgts<LIST<GTS>>\\nencoder<GTSENCODER> labels<MAP>  RELABEL  encoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> labels<MAP>  RELABEL  lencoder<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RELABEL\"},\"REMOVE\":{\"description\":\"Removes an entry from a MAP or from a LIST.\\n\\nThe `REMOVE` function consumes a list (or a map) and a index (or a key), then remove the entry.\\nIt lets the input on the stack and puts the removed item on top of the stack. \\nAs a result, the input map or list is modified and the map or list left on top of the stack is *not* a copy. \\n\\nIf the index is out of bound, the returned value is `NULL` and the list or array is unmodified.\\nIf the key does not exist in the map, it returns null as the removed entry.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **GTS**.\\n\\nSince 2.7, `REMOVE` can be called on a **GTS**.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `inputmap` The reference to the map to be modified\\n\\n@param `index` The index of the list, 0 for the first item\\n\\n@param `inputlist` The reference to the list to be modified\\n\\n@param `removeditem` Depending on map or list content, could be any type\\n\\n@param `outputmap` The input map modified\\n\\n@param `outputlist` The input list modified\\n\\n@param `pointindex` Index of the point in the GTS, 0-indexed, handles negative indexing.\\n\\n@param `inputgts` The GTS to remove the point from.\\n\\n@param `removedpoint` The removed point. List of timestamp, latitude, longitude, elevation and value.\\n\\n@param `outputgts` The acopy of the original GTS with the requested point removed.\\n\\n\",\"signature\":\"inputlist<LIST> index<LONG>  REMOVE  outputlist<LIST> removeditem<ANY>\\ninputmap<MAP> key<ANY>  REMOVE  outputmap<MAP> removeditem<ANY>\\ninputgts<GTS> pointindex<LONG>  REMOVE  outputgts<GTS> removedpoint<LIST>\",\"tags\":[\"maps\",\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"REMOVE\"},\"REMOVETICK\":{\"description\":\"The `REMOVETICK` function transforms a Geo Time Series™ by removing all occurrences of a tick or ticks.\\n\\n@param `tick` Tick (timestamp) to remove.\\n\\n@param `lticks` List or Set of ticks to remove.\\n\\n@param `gts` Geo Time Series™ to transform.\\n\\n@param `pruned` Tranformed Geo Time Series™.\\n\\n\",\"signature\":\"gts<GTS> tick<LONG>  REMOVETICK  pruned<GTS>\\ngts<GTS> lticks<LIST<LONG>>  REMOVETICK  pruned<GTS>\\ngts<GTS> lticks<SET<LONG>>  REMOVETICK  pruned<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.2.19\",\"OPB64name\":\"REMOVETICK\"},\"RENAME\":{\"description\":\"The `RENAME` function changes the name of a Geo Time Series™, an Encoder or a list thereof. This operation may be required prior to using some functions. If the name starts with '+', the specified name will be appended to the current name of the GTS or Encoder.\\n\\nIf you want to rename a Geo Time Series™ or an Encoder so its name starts with a '+', you must first set its name to the empty string then use rename with the desired name prefixed with an additional '+'.\\n\\n@param `gts` Geo Time Series™ instance to rename.\\n\\n@param `lgts` List of Geo Time Series™ instances to rename.\\n\\n@param `encoder` Encoder to rename.\\n\\n@param `lencoder` Encoder to rename.\\n\\n@param `name` New name to give to the GTS.\\n\\n\",\"signature\":\"gts<GTS> name<STRING>  RENAME  gts<GTS>\\nlgts<LIST<GTS>> name<STRING>  RENAME  lgts<LIST<GTS>>\\nencoder<GTSENCODER> name<STRING>  RENAME  encoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> name<STRING>  RENAME  lencoder<LIST<GTSENCODER>>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"RENAME\"},\"REOPTALT\":{\"description\":\"Produces a **R**egular **E**xpression **OPT**imized for **ALT**ernation from a list of STRINGs. Large alternations in regular expressions can lead to excessive backtracking and poor matching performance. In order to mitigate this, the `REOPTALT` function will produce a regular expression from a list of STRINGs which reduces the backtracking thus leading to better matching performance.\\n\\n@param `alternatives` List of STRINGs which should be used in the alternation.\\n\\n@param `regexp` Regular expression\\n\\n\",\"signature\":\"alternatives<LIST<STRING>>  REOPTALT  regexp<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.2.16\",\"OPB64name\":\"REOPTALT\"},\"REPLACE\":{\"description\":\"Replaces the first occurrence of a pattern by its substitution.\\n\\nThe `REPLACE` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with the replaced value if it was found\\n\\n\",\"signature\":\"original<ANY> pattern<ANY> replacement<ANY>  REPLACE  result<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACE\"},\"REPLACEALL\":{\"description\":\"Replaces all occurrence of a pattern by its substitution.\\n\\nThe `REPLACEALL` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with all occurrences of pattern replaced by its value\\n\\n\",\"signature\":\"original<ANY> pattern<ANY> replacement<ANY>  REPLACEALL  result<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACEALL\"},\"REPORT\":{\"description\":\"The `REPORT` function pushes onto the stack a STRING containing configuration and usage informations which can be useful when investigating issues.\\n\\n@param `secret` Secret configured for using the `REPORT` function.\\n\\n@param `report` Actual report.\\n\\n\",\"signature\":\"secret<STRING>  REPORT  report<STRING>\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"REPORT\"},\"RESET\":{\"description\":\"The `RESET` function resets the stack to the given depth, discarding any items above those 'depth' items.\\n\\n@param `depth` Depth at which the stack should be reset.\\n\\n\",\"signature\":\"depth<LONG>  RESET \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESET\"},\"RESETS\":{\"description\":\"The `RESETS` functions transforms a numerical Geo Time Series™, shifting values so no offset (*i.e.* a decrease or increase of values) appears after the operation.\\n\\nThe parameter to `RESETS` determines if the Geo Time Series should be considered as decreasing instead of increasing.\\n\\n@param `decreasingGTS` Flag set to `true` to indicate the GTS is decreasing.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `lgts` List of Geo Time Series™ or list thereof to transform.\\n\\n@param `result` GTS with resets compensated.\\n\\n@param `lresult` List of GTS with resets compensated.\\n\\n\",\"signature\":\"gts<GTS> decreasingGTS<BOOLEAN>  RESETS  result<GTS>\\nlgts<LIST<GTS>> decreasingGTS<BOOLEAN>  RESETS  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESETS\"},\"RESHAPE\":{\"description\":\"The `RESHAPE` function modifies the shape of a list.\\n\\nThe new shape is specified using a list of dimensions, the first being the outer dimension. Such a shape can be produced by `SHAPE`.\\n\\nNote that the number of elements in the array must be compatible with the requested shape, i.e. the product of the dimensions must match the number of elements in the input list.\\n\\n@param `input` List to reshape.\\n\\n@param `shape` Shape specification, list of dimensions, the first element being the outer list.\\n\\n@param `output` Reshaped list.\\n\\n\",\"signature\":\"input<LIST> shape<LIST<LONG>>  RESHAPE  output<LIST>\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"RESHAPE\"},\"RESTORE\":{\"description\":\"The `RESTORE` function resets the stack's symbol table to the state recorded in the context passed as parameter.\\n\\n@param `context` Stack context produced by [`SAVE`](doc/SAVE).\\n\\n\",\"signature\":\"context<CONTEXT>  RESTORE \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESTORE\"},\"RETHROW\":{\"description\":\"Inside the *catch* or *finally* macro of a [`TRY`](/doc/TRY), rethrows the last thrown error. If no error was previously thrown, `RETHROW` does nothing.\\n\\n\",\"signature\":\" RETHROW \",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"RETHROW\"},\"RETURN\":{\"description\":\"Returns immediately from the currently executing macro. If called outside a macro, `RETURN` will stop the execution of the current script, behaving like [`STOP`](/doc/STOP).\\n\\n\",\"signature\":\" RETURN \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"RETURN\"},\"REV\":{\"description\":\"The `REV` function pushes onto the stack the revision of the Warp 10 instance.`\\n\\n@param `revision` Revision of the Warp 10 platform.\\n\\n\",\"signature\":\" REV  revision<STRING>\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"REV\"},\"REVBITS\":{\"description\":\"Reverses the order of the bits of a LONG value.\\n\\n@param `long` LONG value from which to revert the bits.\\n\\n@param `gnol` LONG value whose bits are in reverse order compared to those of `long`.\\n\\n\",\"signature\":\"long<LONG>  REVBITS  gnol<LONG>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVBITS\"},\"REVERSE\":{\"description\":\"Reverses the order of the elements of the list or the string.\\n\\nThe `REVERSE` function inverts the order of the elements of the list or the string on the top of the stack.\\nBeware, `REVERSE` do not create a new object. Use [`CLONEREVERSE`](/doc/CLONEREVERSE) if you want to keep input.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n\\n@param `originalList` The list to reverse\\n\\n@param `originalString` The string to reverse\\n\\n@param `reversedObj` The original object with the elements in reverse order\\n\\n\",\"signature\":\"originalList<LIST>  REVERSE  reversedObj<LIST>\\noriginalString<STRING>  REVERSE  reversedObj<STRING>\\noriginalString<BYTES>  REVERSE  reversedObj<BYTES>\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVERSE\"},\"REXEC\":{\"description\":\"The `REXEC` function executes some WarpScript code on a remote Warp 10 instance. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"signature\":\"warpscript<STRING> endpoint<STRING>  REXEC  stack<ANY*>\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.0.8\",\"OPB64name\":\"REXEC\"},\"REXECZ\":{\"description\":\"The `REXECZ` function executes some WarpScript code on a remote Warp 10 instance just like [`REXEC`](/doc/REXEC) does, but compresses the WarpScript code prior to sending it. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"signature\":\"warpscript<STRING> endpoint<STRING>  REXECZ  stack<ANY*>\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REXECZ\"},\"RINT\":{\"description\":\"The `RINT` function consumes a numeric parameter from the top of the stack and pushes back the DOUBLE the closest to the parameter and equal to a mathematical integer.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `result` Closest floating-point value to a that is equal to a mathematical integer.\\n\\n@param `lvalue` List of Numeric values.\\n\\n@param `lresult` List of closest floating-point values to a that is equal to a mathematical integer.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are closest floating-point values of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  RINT  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  RINT  lresult<LIST<DOUBLE>>\\ngts<GTS>  RINT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RINT\"},\"RIPEMD128\":{\"description\":\"The `RIPEMD128` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-128](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  RIPEMD128  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD128\"},\"RIPEMD160\":{\"description\":\"The `RIPEMD160` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-160](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  RIPEMD160  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD160\"},\"RIPEMD256\":{\"description\":\"The `RIPEMD256` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-256](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  RIPEMD256  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD256\"},\"RIPEMD320\":{\"description\":\"The `RIPEMD320` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-320](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  RIPEMD320  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD320\"},\"RLOWESS\":{\"description\":\"The `RLOWESS` function applies an iterative smoothing program on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is done via locally weighted regression, and is robust to outliers.\\n\\n> ### REFERENCE\\n>\\n> **Cleveland, W. S.** (1979) Robust locally weighted regression and smoothing scatter plots. J. American Statistical Association 74, 829–836.\\n>\\n> **Cleveland, W. S.** (1981) LOWESS: A program for smoothing scatter plots by robust locally weighted regression. The American Statistician 35, 54.\\n\\n@param `p` The degree for the polynomial fit of the regression\\n\\n@param `d` The delta radius (in time units) within which the local regression is computed only once (other points are interpolated). For very large datasets, it can be wise to set `d` > 0 to speed up the computations.\\n\\n@param `r` The number of robustifying iterations. The higher the value of `r`, the better the program is robust to outliers.\\n\\n@param `q` The bandwidth of the local regression. To obtain a good smoothing, it is advised to choose an odd number of at least 5.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> q<LONG> r<LONG> d<LONG> p<LONG>  RLOWESS  result<GTS>\\ngtsList<LIST<GTS>> q<LONG> r<LONG> d<LONG> p<LONG>  RLOWESS  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RLOWESS\"},\"RLP->\":{\"description\":\"The `RLP->` function decodes a byte array containing [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoded content.\\n\\nNote that numbers are decoded as their byte representation, not actual `LONG`s.\\n\\n@param `encoded` RLP encoded content to decode.\\n\\n@param `decoded` Result of decoding.\\n\\n\",\"signature\":\"encoded<BYTES>  RLP->  decoded<ANY>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"JZlFAIs\"},\"ROLL\":{\"description\":\"`ROLL` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element at level *N* to the top of the stack and moving the other elements up one level.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"signature\":\"eltN<ANY> elt2<ANY> elt1<ANY> N<LONG>  ROLL  elt2<ANY> elt1<ANY> eltN<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLL\"},\"ROLLD\":{\"description\":\"`ROLLD` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element on top of the stack to level *N* and moving the other *N-1* elements down the stack.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"signature\":\"eltN<ANY> elt2<ANY> elt1<ANY> N<LONG>  ROLLD  elt1<ANY> eltN<ANY> elt2<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLLD\"},\"ROT\":{\"description\":\"`ROT` cycles through the 3 topmost elements of the stack by moving the element at level 3 to the top of the stack and pushing the other 2 elements up the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n@param `level3` The element at the third level of the stack prior to the function execution\\n\\n\",\"signature\":\"level3<ANY> level2<ANY> top<ANY>  ROT  level2<ANY> top<ANY> level3<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROT\"},\"ROTATIONQ\":{\"description\":\"The `ROTATIONQ` function consumes on the stack 4 doubles representing a rotation vector and pushes back [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long.\\n\\n@param `quaternion` The quaternion representation\\n\\n@param `angle` The angle of the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"signature\":\"x<DOUBLE> y<DOUBLE> z<DOUBLE> angle<DOUBLE>  ROTATIONQ  quaternion<QUATERNION>\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROTATIONQ\"},\"ROUND\":{\"description\":\"The `ROUND` function consumes a numeric parameter from the top of the stack and pushes back the long number the closest to the parameter.\\n\\n@param `input` Input to round.\\n\\n@param `output` Input rounded to the nearest Long.\\n\\n\",\"signature\":\"input<NUMBER>  ROUND  output<LONG>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROUND\"},\"RSADECRYPT\":{\"description\":\"Decrypts content encrypted with an RSA key.\\n\\n@param `key` RSA key to use for decryption (a public key if content was encrypted with a private key, a private key otherwise).\\n\\n@param `cipher` Encrypted data.\\n\\n@param `data` Cleartext data.\\n\\n\",\"signature\":\"cipher<BYTES> key<KEY>  RSADECRYPT  data<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSADECRYPT\"},\"RSAENCRYPT\":{\"description\":\"Encrypts a byte array using an RSA key (either public or private).\\n\\n@param `key` Instance of the RSA private or public key to use for encryption.\\n\\n@param `data` Data to encrypt.\\n\\n@param `encrypted` Ciphered version of `data`.\\n\\n\",\"signature\":\"data<BYTES> key<KEY>  RSAENCRYPT  encrypted<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAENCRYPT\"},\"RSAGEN\":{\"description\":\"Generates an RSA public key pair.\\n\\n@param `keylen` Key length in bits.\\n\\n@param `publicExponent` RSA public exponent, typically 65537.\\n\\n@param `pubkeyparams` Parameters of the generated RSA public key. Can be converted to a public key using [`RSAPUBLIC`](/doc/RSAPUBLIC).\\n\\n@param `privkeyparams` Parameters of the generated RSA privsate key. Can be converted to a private key using [`RSAPRIVATE`](/doc/RSAPRIVATE)\\n\\n\",\"signature\":\"publicExponent<LONG> keylen<LONG>  RSAGEN  privkeyparams<MAP> pubkeyparams<MAP>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAGEN\"},\"RSAPRIVATE\":{\"description\":\"Creates an RSA private key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `privkeyparams` Map of private key parameters.\\n\\n@param `privkey` RSA private key instance.\\n\\n\",\"signature\":\"privkeyparams<MAP>  RSAPRIVATE  privkey<KEY>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPRIVATE\"},\"RSAPUBLIC\":{\"description\":\"Creates an RSA public key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `pubkeyparams` Map of public key parameters.\\n\\n@param `pubkey` RSA public key instance.\\n\\n\",\"signature\":\"pubkeyparams<MAP>  RSAPUBLIC  pubkey<KEY>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPUBLIC\"},\"RSASIGN\":{\"description\":\"Signs a byte array with an RSA private key.\\n\\n@param `privkey` RSA private key to use for signing.\\n\\n@param `alg` Name of algorithm to use for computing the data fingerprint. Supported algorithms are those provided by [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `data` Data to sign.\\n\\n@param `signature` Computed signature.\\n\\n\",\"signature\":\"data<BYTES> alg<STRING> privkey<KEY>  RSASIGN  signature<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSASIGN\"},\"RSAVERIFY\":{\"description\":\"The `RSAVERIFY` function verify a signature generated with [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) cryptosystem and a hash algorithm.\\n\\nAlgorithms are those supported by [BouncyCastle](http://stackoverflow.com/questions/8778531/bouncycastle-does-not-find-algorithms-that-it-provides).\\n\\n@param `pubkey` RSA public key to use for verifying the signature.\\n\\n@param `alg` Algorithm used for generating the signature. See [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content.\\n\\n@param `verified` Status of the signature verification.\\n\\n\",\"signature\":\"content<BYTES> signature<BYTES> alg<STRING> pubkey<KEY>  RSAVERIFY  verified<BOOLEAN>\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAVERIFY\"},\"RSORT\":{\"description\":\"Sort Geo Time Series™ values (and associated locations/elevations) by reverse order of their ticks (i.e. most recent ticks first).\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  RSORT  result<GTS>\\ngtsList<LIST<GTS>>  RSORT  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RSORT\"},\"RTFM\":{\"description\":\"The `RTFM` function pushes onto the stack the URL of the Warp 10 documentation, so whenever you are lost you can rapidly retrieve the URL you need to get back on track!\\n\\n@param `url` URL of the Warp 10 documentation.\\n\\n\",\"signature\":\" RTFM  url<STRING>\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.0.7\",\"OPB64name\":\"RTFM\"},\"RUN\":{\"description\":\"The `RUN` function attempts to execute the macro whose name is on top of the stack. It is equivalent to `@macro` if called with `macro` on top of the stack.\\n\\n@param `macroName` Name of macro to execute, without a leading '@'\\n\\n@param `macroRegister` Register number in which the macro is stored, without a leading '@'\\n\\n\",\"signature\":\"macroName<STRING>  RUN \\nmacroRegister<LONG>  RUN \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"RUN\"},\"RUNNERAT\":{\"description\":\"`RUNNERAT` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds, starting at the Warp 10 instance start. \\n`RUNNERAT` allow to dynamically schedule the next run to an absolute timestamp before the period defined in the path. Combined with `RUNNERIN`, `RUNNERAT` can be used to schedule the next run to an absolute timestamp whatever the period defined in the path. See examples below.\\n\\n`RUNNERAT` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERAT to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond offset to now allowed for `RUNNERAT`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `t` reschedule timestamp in platform time unit. Next iteration will be at scheduled at t.\\n\\n\",\"signature\":\"t<LONG>  RUNNERAT \",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERAT\"},\"RUNNERIN\":{\"description\":\"`RUNNERIN` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds. \\n`RUNNERIN` allow to dynamically schedule the next run, overriding the period defined in the path. See also `RUNNERAT` to schedule next run at an absolute time.\\n\\n`RUNNERIN` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERIN to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond allowed for `RUNNERIN`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `p` reschedule period in platform time unit. Next iteration will be at scheduled at runnerstart + p\\n\\n\",\"signature\":\"p<LONG>  RUNNERIN \",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERIN\"},\"RUNNERNONCE\":{\"description\":\"The `RUNNERNONCE` function decrypts the content of a runner *nonce* as generated when a script is executed by a Warp 10 runner instance.\\n\\nWhen a script is executed by a runner instance, the following symbols are defined when the script is invoked:\\n\\n| Symbol | Description |\\n| --- | --- |\\n| `runner.periodicity` | Periodicity at which the script is supposed to run, in ms. |\\n| `runner.path` | Path of the script. |\\n| `runner.scheduledat` | Time at which the current execution was scheduled, in ms since the [UNIX Epoch](). |\\n| `runner.nonce` | Encrypted time of execution, in time units since the [UNIX Epoch](). |\\n\\nNote that if the runner pre-shared key is not configured via `runner.psk`, the `RUNNERNONCE` function will push `NULL` onto the stack. Note that in this case, the `runner.nonce` symbol will not be defined.\\n\\n@param `nonce` Runner *nonce* as stored in `runner.nonce`.\\n\\n@param `time` Time retrieved from the *nonce*.\\n\\n\",\"signature\":\"nonce<STRING>  RUNNERNONCE  time<LONG>\",\"tags\":[\"stack\"],\"since\":\"1.2.7\",\"OPB64name\":\"RUNNERNONCE\"},\"RUNR\":{\"description\":\"Run the macro currently contained in the designated register.\\n\\nThe `RUNR` function is really a family of functions named `RUNRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n\",\"signature\":\" RUNR \",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"RUNR\"},\"RVALUESORT\":{\"description\":\"Sort Geo Time Series™ values (and associated locations/elevations) by by reverse order of their values.\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  RVALUESORT  result<GTS>\\ngtsList<LIST<GTS>>  RVALUESORT  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RVALUESORT\"},\"SAVE\":{\"description\":\"The `SAVE` function pushes onto the stack a *context* object which contains all the symbols currently defined in the current stack. This context can be passed as a parameter to the [`RESTORE`](doc/RESTORE) function to later reset the symbol table to the state store in the context. Any symbol created after the context was saved and before it is restored will be discarded when `RESTORE` is called.\\n\\n@param `context` Stack context, suitable as a parameter to [`RESTORE`](doc/RESTORE).\\n\\n\",\"signature\":\" SAVE  context<CONTEXT>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SAVE\"},\"SCALB\":{\"description\":\"The `SCALB` function consumes a scale factor *scaleFactor* and a numeric parameter *d* and pushes back <math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>d</mi><mo>&#xD7;</mo><msup><mn>2</mn><mi>scaleFactor</mi></msup></math>. The scale factor must fit into an INT.\\n\\n@param `scaleFactor` The scaling factor, must fit into an INT\\n\\n@param `d` The value to be scaled\\n\\n@param `result` The scaled value\\n\\n\",\"signature\":\"d<NUMBER> scaleFactor<LONG>  SCALB  result<TYPE>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SCALB\"},\"SECTION\":{\"description\":\"The `SECTION` function modifies the value of the *section* attribute of the stack. This value appears in the error messages and can therefore help you debug your WarpScript code. Typically, the `SECTION` function is used to separate your code in different logical units.\\n\\n@param `section` Name to assign to the *section* attribute.\\n\\n\",\"signature\":\"section<STRING>  SECTION \",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"SECTION\"},\"SECURE\":{\"description\":\"The `SECURE` function encrypts a STRING representing a WarpScript code fragment using the platform's secure script cryptographic key and the current secret set via [`SECUREKEY`](doc/SECUREKEY).\\n\\nSecure scripts can also be created using the `<S .... S>` syntax.\\n\\n@param `script` Cleartext version of the WarpScript fragment to encrypt.\\n\\n@param `encrypted` Encrypted secure script.\\n\\n\",\"signature\":\"script<STRING>  SECURE  encrypted<STRING>\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"SECURE\"},\"SECUREKEY\":{\"description\":\"The `SECUREKEY` function sets the secret which will be used to decrypt further secure scripts.\\n\\nSecure scripts are WarpScript fragments which are encrypted with a cryptographic key specific to the platform they were created on. They can be executed on a platform configured with the same cryptographic key.\\n\\n@param `key` Secret to use for unlocking the cleartext versions of future secure scripts.\\n\\n\",\"signature\":\"key<STRING>  SECUREKEY \",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SECUREKEY\"},\"SENSISION.DUMP\":{\"description\":\"The `SENSISION.DUMP` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) metrics in the JVM.\\n\\nThe STRING produced by `SENSISION.DUMP` can be parsed using `PARSE`.\\n\\n@param `valueTimestamp` Flag indicating whether to dump the Geo Time Series™ with the timestamp of last updates or the timestamp at which the value is read.\\n\\n@param `dump` Latest values of all Geo Time Series™ known to Sensision in Geo Time Series™ output input.\\n\\n\",\"signature\":\"valueTimestamp<BOOLEAN>  SENSISION.DUMP  dump<STRING>\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMP\"},\"SENSISION.DUMPEVENTS\":{\"description\":\"The `SENSISION.DUMPEVENTS` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) events in the events history.\\n\\nThe STRING produced by `SENSISION.DUMPEVENTS` can be parsed using `PARSE`.\\n\\nNote that if the system property `sensision.events.history` is not set to a value greater than 0, the function will always return an empty STRING.\\n\\nThe Sensision event history is a circular buffer.\\n\\n@param `dump` Latest values of all events in the Sensision event history.\\n\\n\",\"signature\":\" SENSISION.DUMPEVENTS  dump<STRING>\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMPEVENTS\"},\"SENSISION.EVENT\":{\"description\":\"The `SENSISION.EVENT` function creates a [Sensision](https://github.com/senx/sensision) event.\\n\\n@param `class` Name of the class of the Sensision event to emit.\\n\\n@param `labels` Map of label names to values, both STRINGs of the Sensision event.\\n\\n@param `value` Value associated with the event.\\n\\n@param `ts` Optional timestamp for the event (in Sensision time units), if omitted, the current timestamp will be used.\\n\\n\",\"signature\":\"[ class<STRING> labels<MAP> value<LONG> ]  SENSISION.EVENT \\n[ class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.EVENT \\n[ class<STRING> labels<MAP> value<STRING> ]  SENSISION.EVENT \\n[ class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<LONG> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<STRING> ]  SENSISION.EVENT \\n[ ts<LONG> class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.EVENT \",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.EVENT\"},\"SENSISION.GET\":{\"description\":\"The `SENSISION.GET` function reads the current value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to read.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to read.\\n\\n@param `selector` Geo Time Series™ selector (`class{labels}`) of the Sensision metric to read.\\n\\n@param `gts` A Geo Time Series™ containing the current value of the Sensision metric. If the metric does not exist, the resulting GTS will be empty.\\n\\n\",\"signature\":\"selector<STRING>  SENSISION.GET  gts<GTS>\\nclass<STRING> labels<MAP>  SENSISION.GET  gts<GTS>\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.GET\"},\"SENSISION.SET\":{\"description\":\"The `SENSISION.SET` function sets a value for a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `value` Value to assign to the Sensision metric.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"signature\":\"[ class<STRING> labels<MAP> value<LONG> ]  SENSISION.SET \\n[ class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.SET \\n[ class<STRING> labels<MAP> value<STRING> ]  SENSISION.SET \\n[ class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<LONG> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<DOUBLE> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<STRING> ]  SENSISION.SET \\n[ ttl<LONG> class<STRING> labels<MAP> value<BOOLEAN> ]  SENSISION.SET \",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.SET\"},\"SENSISION.UPDATE\":{\"description\":\"The `SENSISION.UPDATE` function updates the numerical value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `delta` Delta to add to the current value of the Sensision metric. If the metric does not exist it will be created with this value.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"signature\":\"[ class<STRING> labels<MAP> delta<LONG> ]  SENSISION.UPDATE \\n[ class<STRING> labels<MAP> delta<DOUBLE> ]  SENSISION.UPDATE \\n[ class<STRING> labels<MAP> delta<LONG> ttl<LONG> ]  SENSISION.UPDATE \\n[ class<STRING> labels<MAP> delta<DOUBLE> ttl<LONG> ]  SENSISION.UPDATE \",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.UPDATE\"},\"SET\":{\"description\":\"The `SET` function replaces item at specified index in a list.\\nIf the index is greater than the size of the list, it will raise an error.\\n\\nWhen used on a **BYTE ARRAY**, SET replaces the byte by the byte value. The byte value, signed or not, must be in the range of [-128,255].\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, SET can set an element in a nested list. In this case, the index is a list.\\n\\n@param `index` The index in the list, 0 for the first item.\\n\\n@param `inputlist` The input list to modified.\\n\\n@param `outputlist` The input list modified,  this is not a new list object.\\n\\n@param `item` The item to update in the inputlist at index, could be any type.\\n\\n@param `array` Byte array to which write a byte.\\n\\n@param `bytevalue` The value of the byte, signed or unsigned (from -128 to 255).\\n\\n@param `outputarray` The input byte array modified, this is not a new byte array.\\n\\n\",\"signature\":\"inputlist<LIST> item<ANY> index<LONG>  SET  outputlist<LIST>\\ninputlist<LIST> item<ANY> index<LIST>  SET  outputlist<LIST>\\narray<BYTES> bytevalue<LONG> index<LONG>  SET  outputarray<LIST>\",\"tags\":[\"lists\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SET\"},\"SET->\":{\"description\":\"The `SET->` function converts the set on top of the stack into a **LIST**.\\n\\n@param `input` Input set.\\n\\n@param `output` A list containing input elements.\\n\\n\",\"signature\":\"input<SET>  SET->  output<LIST>\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"JoKJAIs\"},\"SETATTRIBUTES\":{\"description\":\"Modifies the attributes of a Geo Time Series™, an encoder or a list thereof. The `SETATTRIBUTES` function expects a parameter MAP whose entries are attributes to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `SETATTRIBUTES` function will use the rest of the MAP as the actual attributes to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing attributes.\\n\\nAn entry with an empty STRING value will have the effect of removing the attribute from the attributes of the GTSs or encoders.   \\n\\n@param `attributes` Parameter map of attributes names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lencoder` List of Encoders.\\n\\n@param `encoder` Encoder to relabel\\n\\n\",\"signature\":\"gts<GTS> attributes<MAP>  SETATTRIBUTES  gts<GTS>\\nlgts<LIST<GTS>> attributes<MAP>  SETATTRIBUTES  lgts<LIST<GTS>>\\nencoder<GTSENCODER> attributes<MAP>  SETATTRIBUTES  encoder<GTSENCODER>\\nlencoder<LIST<GTS>> attributes<MAP>  SETATTRIBUTES  lencoder<LIST<GTS>>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETATTRIBUTES\"},\"SETMACROCONFIG\":{\"description\":\"The `SETMACROCONFIG` function allows you to set or modify the value of a configuration key accessible via the [`MACROCONFIG`](/doc/MACROCONFIG) or [`MACROCONFIGDEFAULT`](/doc/MACROCONFIGDEFAULT) functions or via the runner script variable expansion.\\n\\nThis function can only be used if the `warpscript.macroconfig.secret` is set in the Warp 10™ configuration.\\n\\nThe configuration keys which can be set using `SETMACROCONFIG` must have the format `key@path/tomacro` or `key@/path/to/runner/script`.\\n\\nSetting the value of a configuration key to `NULL` has the effect of removing the configuration key altogether.\\n\\n@param `key` Configuration key to set.\\n\\n@param `secret` Macro config secret.\\n\\n@param `value` String value to set for the key or `NULL`.\\n\\n\",\"signature\":\"value<STRING> key<STRING> secret<STRING>  SETMACROCONFIG \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"SETMACROCONFIG\"},\"SETVALUE\":{\"description\":\"The `SETVALUE` function adds a value to a GTS or override an existing value. If the tick already exists, this function will overwrite the first one it encounters in the GTS. If the tick does not exist, it is appended. \\nThe [`ADDVALUE`](/doc/ADDVALUE) function adds a value to a GTS but do not override an existing value.\\n\\nThe `SETVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `SETVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, using [`GET`](/doc/GET) for instance.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Serie\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `elevation` Elevation or NaN\\n\\n@param `result` modified Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<STRING>  SETVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<BOOLEAN>  SETVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<DOUBLE>  SETVALUE  result<GTS>\\ngts<GTS> tick<LONG> latitude<DOUBLE> longitude<DOUBLE> elevation<LONG> value<LONG>  SETVALUE  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETVALUE\"},\"SHA1\":{\"description\":\"The `SHA1` function digests a byte array on the stack with the cryptographic hash function [SHA-1](https://en.wikipedia.org/wiki/SHA-1).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA1  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1\"},\"SHA1HMAC\":{\"description\":\"The `SHA1HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-1](https://en.wikipedia.org/wiki/SHA-1) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"signature\":\"message<BYTES> secret<BYTES>  SHA1HMAC  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1HMAC\"},\"SHA224\":{\"description\":\"The `SHA224` function digests a byte array on the stack with the cryptographic hash function [SHA-224](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA224  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA224\"},\"SHA256\":{\"description\":\"The `SHA256` function digests a byte array on the stack with the cryptographic hash function [SHA-256](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA256  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256\"},\"SHA256HMAC\":{\"description\":\"The `SHA256HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-256](https://en.wikipedia.org/wiki/SHA-2) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"signature\":\"message<BYTES> secret<BYTES>  SHA256HMAC  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256HMAC\"},\"SHA3.224\":{\"description\":\"The `SHA3.224` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA3.224  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.224\"},\"SHA3.256\":{\"description\":\"The `SHA3.256` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA3.256  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.256\"},\"SHA3.384\":{\"description\":\"The `SHA3.384` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA3.384  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.384\"},\"SHA3.512\":{\"description\":\"The `SHA3.512` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA3.512  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.512\"},\"SHA384\":{\"description\":\"The `SHA384` function digests a byte array on the stack with the cryptographic hash function [SHA-384](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA384  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA384\"},\"SHA512\":{\"description\":\"The `SHA512` function digests a byte array on the stack with the cryptographic hash function [SHA-512](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  SHA512  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA512\"},\"SHAPE\":{\"description\":\"Return the shape of an input list if it could be a tensor (or multidimensional array), or raise an Exception.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent and it returns a shape based on the first nested lists at each level. Default to false.\\n\\n@param `list` The input list.\\n\\n@param `shape` The shape of the input list.\\n\\n\",\"signature\":\"list<LIST>  SHAPE  shape<LIST>\\nlist<LIST> fast<BOOLEAN>  SHAPE  shape<LIST>\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHAPE\"},\"SHMDEFINED\":{\"description\":\"The `SHMDEFINED` function checks whether a shared symbol exists in shared memory, *i.e.* in a memory location independent of a given execution context. It return true if it exists, false otherwise.\\n\\nAs unused symbols can be removed from shared memory because of the `shm.ttl` configuration, a call to `SHMDEFINED` ensures that, within the same [`MUTEX`](/doc/MUTEX) call, a call to [`SHMLOAD`](/doc/SHMLOAD) on the same symbol name will not fail.\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `exists` Whether `symbol` exists or not.\\n\\n\",\"signature\":\"symbol<STRING>  SHMDEFINED  exists<BOOLEAN>\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"SHMDEFINED\"},\"SHMLOAD\":{\"description\":\"The `SHMLOAD` function loads data previously stored by [`SHMSTORE`](/doc/SHMSTORE) in shared memory, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the requested shared symbol is not known or if the calling script does not currently hold the mutex associated with the symbol.\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `object` Object currently stored under `symbol`.\\n\\n\",\"signature\":\"symbol<STRING>  SHMLOAD  object<ANY>\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMLOAD\"},\"SHMSTORE\":{\"description\":\"The `SHMSTORE` function stores an object in a named shared memory location, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the calling script is not currently holding a mutex (in a call to [`MUTEX`](/doc/MUTEX)). The call will have no effect if the named memory location was already set by a previous call to `SHMSTORE`.\\n\\nIn order to overwrite a shared memory location, its content must first be cleared by storing [`NULL`](/doc/NULL).\\n\\nIf the calling script currently holds a mutex, this mutex will be associated with the shared memory location, the same mutex will have to be held when retrieving the content of the memory location via [`SHMLOAD`](/doc/SHMLOAD).\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to store.\\n\\n@param `object` Object to store under `symbol` or `NULL` to clear its content.\\n\\n\",\"signature\":\"object<ANY> symbol<STRING>  SHMSTORE \",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMSTORE\"},\"SHOW\":{\"description\":\"The `SHOW` function makes visible some levels of the stack which were previously hidden by a call to [`HIDE`](/doc/HIDE).\\n\\nThe levels made visible are the ones closest to the top of the stack. Depending on the `levels` parameter to the call to `SHOW`, the revealed levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there are at most a certain number ((*abs(`levels`)*) with `levels` < 0) of visible levels after the call.\\n\\nWhen called with `NULL` as parameter, `SHOW` wil reveal all levels currently hidden.\\n\\n@param `levels` Number of levels to reveal, or `NULL` to reveal them all.\\n\\n\",\"signature\":\"levels<LONG>  SHOW \",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"SHOW\"},\"SHRINK\":{\"description\":\"Shrink the number of values of a Geo Time Series™ to `size`. The oldest values are kept if `size` is non negative. The earliest ones are kept in the other case.\\n\\nThis function has the side effect of sorting the Geo Time Series™. If the Geo Time Series™ has fewer than `size` values the function raises an error.\\n\\n@param `size` Size used to shrink the Geo Time Series™\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `result` A shrinked Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> size<LONG>  SHRINK  result<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SHRINK\"},\"SHUFFLE\":{\"description\":\"The `SHUFFLE` function shuffles a list.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `input` The reference of the list to shuffle\\n\\n@param `shuffled` The original list shuffled, this is not a new list object\\n\\n\",\"signature\":\"input<LIST>  SHUFFLE  shuffled<LIST>\",\"tags\":[\"lists\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHUFFLE\"},\"SIGNUM\":{\"description\":\"The `SIGNUM` function consumes a numeric parameter from the top of the stack and pushes back its signum.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Signum, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of signum for each given value, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are signum of the given GTS values, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n\",\"signature\":\"value<NUMBER>  SIGNUM  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SIGNUM  lresult<LIST<DOUBLE>>\\ngts<GTS>  SIGNUM  gtsresult<GTS>\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIGNUM\"},\"SIN\":{\"description\":\"The `SIN` function consumes a floating point number from the top of the stack and pushes back its sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Sine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the sine of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  SIN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SIN  lresult<LIST<DOUBLE>>\\ngts<GTS>  SIN  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIN\"},\"SINGLEEXPONENTIALSMOOTHING\":{\"description\":\"The `SINGLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Simple Exponential Smoothing](https://www.otexts.org/fpp/7/1) formula.\\n\\nIt consumes two parameters from the top of the stack:\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** is pushed onto the stack.\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The smoothed Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> alpha<DOUBLE>  SINGLEEXPONENTIALSMOOTHING  result<GTS>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINGLEEXPONENTIALSMOOTHING\"},\"SINH\":{\"description\":\"The `SINH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic sine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic sine of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  SINH  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SINH  lresult<LIST<DOUBLE>>\\ngts<GTS>  SINH  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINH\"},\"SIZE\":{\"description\":\"Returns the size of the input parameter.\\n\\nThe `SIZE` function computes the size of a LIST, MAP, GTS or ENCODER (number of values), STRING, byte array MACRO (number of statements)  or GEOSHAPE (number of cells).\\n\\n@param `input` The input parameter\\n\\n@param `size` The size of the input parameter\\n\\n\",\"signature\":\"input<LIST>  SIZE  size<LONG>\\ninput<MAP>  SIZE  size<LONG>\\ninput<GTS>  SIZE  size<LONG>\\ninput<STRING>  SIZE  size<LONG>\\ninput<BYTES>  SIZE  size<LONG>\\ninput<GEOSHAPE>  SIZE  size<LONG>\\ninput<GTSENCODER>  SIZE  size<LONG>\\ninput<SET>  SIZE  size<LONG>\\ninput<MACRO>  SIZE  size<LONG>\",\"tags\":[\"strings\",\"lists\",\"maps\",\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIZE\"},\"SKEWNESS\":{\"description\":\"The `SKEWNESS` function computes the [skewness](https://en.wikipedia.org/wiki/Skewness) of a Geo Time Series™.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the skewness.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `skewness` Computed skewness of the Geo Time Series™ instance.\\n\\n@param `lskewness` List of computed skewness of the Geo Time Series™ instances.\\n\\n\",\"signature\":\"gts<GTS> bessel<BOOLEAN>  SKEWNESS  skewness<DOUBLE>\\nlgts<LIST<GTS>> bessel<BOOLEAN>  SKEWNESS  lskewness<LIST<DOUBLE>>\",\"tags\":[\"statistics\",\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"SKEWNESS\"},\"SMARTPARSE\":{\"description\":\"The `SMARTPARSE` function parses STRING values, either from a single STRING parameter or from STRING Geo Time Series™, and produces a number of GTS from the parsed data.\\n\\nThe parsing is done according to a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) which contains [named capturing groups](https://www.regular-expressions.info/named.html) with the Java/.NET syntax, *i.e.* `(?<name>...)`.\\n\\nThe captured group is interpreted differently based on the syntax of the name.\\n\\n| Syntax | Interpretation |\\n| --- | --- |\\n| Lxxx | Captured content is used as the value of label `xxx` |\\n| TU | Captured group is interpreted as a timestamp in unit `U` from the [UNIX Epoch](https://en.wikipedia.org/wiki/Unix_time) origin. Valid values for U are `s`, `ms`, `us`, `ns` |\\n| lat | Captured group is interpreted as the latitude if another group named `lon` is also present |\\n| lon | Captured group is interpreted as the longitude if another group named `lat` is also present |\\n| elevU | Captured group is interpreted as the elevation in unit `U`, where `U` can be `m`, `cm`, `mm`, `ft`, `km`, `mi`, `nm` (Nautical Mile). The value is parsed as a DOUBLE and converted to a LONG in `mm` |\\n| VTxxx | Captured group is interpreted as a value for a GTS with class `xxx`. The type of the value is determined by the value of `T` which can be `B`(oolean) `S`(tring) `L`(ong) or `D`(ouble) |\\n\\nThis function is ideally suited for parsing log messages and producing Geo Time Series™ from their content.\\n\\n@param `regexp` Regular expression to use for parsing. See the function description for the syntax to use.\\n\\n@param `string` String to parse\\n\\n@param `results` List of Geo Time Series™ created from the parsed data.\\n\\n@param `lresults` List of list of GTS created from the parsed data.\\n\\n@param `gts` STRING valued Geo Time Series™ whose values are to be parsed.\\n\\n@param `lgts` List of STRING valued GTS whose values are to be parsed.\\n\\n\",\"signature\":\"string<STRING> regexp<STRING>  SMARTPARSE  results<LIST<GTS>>\\ngts<GTS> regexp<STRING>  SMARTPARSE  results<LIST<GTS>>\\nlgts<LIST<GTS>> regexp<STRING>  SMARTPARSE  lresults<LIST<LIST<GTS>>>\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.2.13\",\"OPB64name\":\"SMARTPARSE\"},\"SNAPSHOT\":{\"description\":\"The `SNAPSHOT` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOT` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOT  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.0.6\",\"OPB64name\":\"SNAPSHOT\"},\"SNAPSHOTALL\":{\"description\":\"The `SNAPSHOTALL` functions acts similarly as [`SNAPSHOT`](/doc/SNAPSHOT) and produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTALL` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOTALL  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALL\"},\"SNAPSHOTALLTOMARK\":{\"description\":\"The `SNAPSHOTALLTOMARK` functions acts similarly as [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) and produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTALLTOMARK` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"mark<MARK> stack<ANY*>  SNAPSHOTALLTOMARK  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALLTOMARK\"},\"SNAPSHOTCOPY\":{\"description\":\"The `SNAPSHOTCOPY` function behaves like [`SNAPSHOT`](/doc/SNAPSHOT) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPY` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOTCOPY  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPY\"},\"SNAPSHOTCOPYALL\":{\"description\":\"The `SNAPSHOTCOPYALL` function behaves like [`SNAPSHOTALL`](/doc/SNAPSHOTALL) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOTCOPYALL  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALL\"},\"SNAPSHOTCOPYALLTOMARK\":{\"description\":\"The `SNAPSHOTCOPYALLTOMARK` function behaves like [`SNAPSHOTALLTOMARK`](/doc/SNAPSHOTALLTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOTCOPYALLTOMARK  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALLTOMARK\"},\"SNAPSHOTCOPYN\":{\"description\":\"Performs a [`SNAPSHOTCOPY`](/doc/SNAPSHOTCOPY) on the top *N* elements of the stack.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*> n<LONG>  SNAPSHOTCOPYN  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTCOPYN\"},\"SNAPSHOTCOPYTOMARK\":{\"description\":\"The `SNAPSHOTCOPYTOMARK` function behaves like [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOTCOPYTOMARK  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYTOMARK\"},\"SNAPSHOTN\":{\"description\":\"Produces a WarpScript code fragment which will regenerate the *N* top levels of the stack. The content of those levels is consumed off the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*> n<LONG>  SNAPSHOTN  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTN\"},\"SNAPSHOTREADABLE\":{\"description\":\"The `SNAPSHOTREADABLE` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTREADABLE` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTREADABLE` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\nThis is similar to the [`SNAPSHOT`](/doc/SNAPSHOT) function but the output is easier to read for a human.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"stack<ANY*>  SNAPSHOTREADABLE  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"SNAPSHOTREADABLE\"},\"SNAPSHOTTOMARK\":{\"description\":\"The `SNAPSHOTTOMARK` functions produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTTOMARK` was called.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"mark<MARK> stack<ANY*>  SNAPSHOTTOMARK  snapshot<STRING>\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTTOMARK\"},\"SORT\":{\"description\":\"Sorts a Geo Time Series™ or each GTS of a list of GTS in ascending tick order.\\n\\n@param `gts` Single Geo Time Series™ instance to sort.\\n\\n@param `sgts` Sorted Geo Time Series™, this is the same instance as `gts`.\\n\\n@param `lgts` List of Geo Time Series™ instances to sort.\\n\\n@param `slist` List of sorted Geo Time Series™. Each instance is the same as the input one.\\n\\n\",\"signature\":\"gts<GTS>  SORT  sgts<GTS>\\nlgts<LIST<GTS>>  SORT  slist<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SORT\"},\"SORTBY\":{\"description\":\"The `SORTBY` function sorts a **LIST** or a **MAP** according to a value returned by a macro. The macro must return a value of the same type (LONG, DOUBLE or STRING) for each element.\\n\\nOnly **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nBefore release `1.2.22`, the `SORTBY` function could only sort lists of Geo Time Series™.\\n\\nBefore release `2.7.0`, the `SORTBY` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for sorting, consumes a list element off the stack and produces a LONG, DOUBLE or STRING value.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"signature\":\"list<LIST> macro<MACRO>  SORTBY  lsorted<LIST>\\nmap<MAP> macro<MACRO>  SORTBY  msorted<MAP>\",\"tags\":[\"lists\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"SORTBY\"},\"SORTWITH\":{\"description\":\"The `SORTWITH` function sorts a **LIST** or a **MAP** according to a value returned by a comparison macro. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nIn used a on **LIST**, the comparison macro is given 2 elements of the **LIST** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest element in the stack is respectively strictly less than, equal to or strictly more than than the element on the stack.\\n\\nIn used a on **MAP**, the comparison macro is given 2 entries (key deepest, value shallowest) of the **MAP** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest entry in the stack is respectively strictly less than, equal to or strictly more than than the shallowest entry on the stack.\\n\\nBefore release `2.7.0`, the `SORTWITH` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for comparison, must consume two elements of the stack and produces a LONG.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"signature\":\"list<LIST> macro<MACRO>  SORTWITH  lsorted<LIST>\\nmap<MAP> macro<MACRO>  SORTWITH  msorted<MAP>\",\"tags\":[\"lists\",\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"SORTWITH\"},\"SPLIT\":{\"description\":\"The SPLIT function split a string in segments given a delimiter.\\n\\n\\nIt consumes two parameters from the top of the stack: the delimiter and the string to test matching with. The delimiter must be a string of length 1, i.e. only one character.\\n\\n\\nThe function will return a list with all the segments. If delimiter is not found, the output list contains the input string.\\n\\n@param `delimiter` One character delimiter.\\n\\n@param `s` The string to split\\n\\n@param `limit` The maximum size of the resulting **LIST**, must be positive. The last entry will contain all input beyond the last matched delimiter\\n\\n@param `result` List of strings.\\n\\n\",\"signature\":\"s<STRING> delimiter<STRING>  SPLIT  result<LIST<STRING>>\\ns<STRING> delimiter<STRING> limit<LONG>  SPLIT  result<LIST<STRING>>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"SPLIT\"},\"SQRT\":{\"description\":\"The `SQRT` function consumes a numeric parameter from the top of the stack and pushes back its square root.\\n\\nFor negative numbers, SQRT returns NaN.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Square root of the given value, NaN if it is negative.\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of square root of each given value, NaN if it is negative.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the square root of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  SQRT  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  SQRT  lresult<LIST<DOUBLE>>\\ngts<GTS>  SQRT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SQRT\"},\"SRAND\":{\"description\":\"The `SRAND` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThe seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"signature\":\" SRAND  num<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"SRAND\"},\"SRANDPDF\":{\"description\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe randomization is seeded. The seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThe result is a function. This function does not have any arguments.\\n\\nTo use the function pushed by `SRANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"signature\":\"valueHistogram<MAP>  SRANDPDF  result<STRING>\",\"tags\":[\"math\",\"statistics\"],\"since\":\"2.2.1\",\"OPB64name\":\"SRANDPDF\"},\"SSSS->\":{\"description\":\"The `SSSS->` retrieves a secret from `K` splits generated using `->SSSS`.\\n\\nNote that no check is performed to ensure that the retrieved secret is the expected one.\\n\\n@param `secret` Reconstructed secret.\\n\\n@param `splits` List of splits to use for reconstruction.\\n\\n\",\"signature\":\"splits<LIST<BYTES>>  SSSS->  secret<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"JpCIJmoy\"},\"SSTFIND\":{\"description\":\"Identifies Geo Time Series™ which MAY have data within a given key range, assuming those keys are bounds of an SST file.\\n\\nThis function is key to identifying which SST files should be purged using `SSTPURGE`.\\n\\nIf no token and selectors are specified in the parameter list of `SSTFIND`, all Geo Time Series™ will be considered, otherwise, only those matching the entered criteria will be used.\\n\\nThe return value of the `SSTFIND` function is a list of lists, each inner list containing 3 fields, `gts`, `mints`, `maxts`.\\n\\nThe `gts` field is either an actual empty Geo Time Series™, but with all metadata set, or `null`. If `gts` is not null, it means that the Geo Time Series™ **may** have data in the file given because its internal id falls within the key range. If `gts` is `null`, it means there is a Geo Time Series™ that may exist in the file but whose metadata (class and labels) were not matched by the provided selectors. This is a helpful hint to indicate that there may be some data in the file which belong to series you were not initially interested in.\\n\\nThe values of `mints` and `maxts` indicate between which timestamps `gts` may have datapoints. If the id of `gts` is not matched by either the smallest or largest key of the range, both `mints` and `maxts` will have extreme values (respectively `MINLONG` and `MAXLONG`). If the `gts` id matches one of the bounds, the `mints` and/or `maxts` fields will have more meaningful values.\\n\\nKeys of datapoints start with `0x52' (`R`), keys for metadata start with `0x4d` (`M`).\\n\\nWhen `SSTFIND` is called with metadata keys, the fields `mints` and `maxts` will be set to `null`.\\n\\nIf `SSTFIND` is called with keys for both metadata and data, an error is raised indicating that `SSTFIND` cannot determine what lies inside *hydrid* files.\\n\\nKeys invalid for both metadata and data will also lead to an *invalid key range* error.\\n\\n@param `secret` LevelDB secret.\\n\\n@param `smallestkey` Hex encoded lower key of the range to check.\\n\\n@param `largeskey` Hex encoded higher key of the range to check.\\n\\n@param `token` Warp 10™ read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Selector to use for identifying classes of Geo Time Series™.\\n\\n@param `labelsSelectors` Map of label selectors for matching Geo Time Series™.\\n\\n@param `report` Report about the Geo Time Series™ which may have data or metadata within the provided key range.\\n\\n\",\"signature\":\"[ secret<STRING> largeskey<STRING> smallestkey<STRING> ]  SSTFIND  report<LIST>\\n[ secret<STRING> largeskey<STRING> smallestkey<STRING> labelsSelectors<MAP> classSelector<STRING> token<STRING> ]  SSTFIND  report<LIST>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTFIND\"},\"SSTINFO\":{\"description\":\"Retrieves informations about a LevelDB SST file.\\n\\nThe `infos` map returned by `SSTINFO` contains the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| size | Size of SST file in bytes |\\n| creationTime | Creation time of the SST file in platform's time units. Note that on some architectures this information might be inaccurate due to limitations of the filesystem interaction by the JVM. |\\n\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `id` LevelDB SST file id.\\n\\n@param `infos` Map of retrieved informations.\\n\\n\",\"signature\":\"id<LONG> secret<STRING>  SSTINFO  infos<MAP>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTINFO\"},\"SSTPURGE\":{\"description\":\"Attempts to purge a set of SST Files. A `.sst` file will be deleted only if it is at the deepest level of the LevelDB file organization.\\n\\nDuring file deletion, the underlying LevelDB database is closed and therefore all operations which interact with the DB will be blocked until the deletion has finished.\\n\\nEven though the LevelDB database is closed for updates and reads, it is not safe to manipulate its files as the deletion process actually modifies some of them.\\n\\nThe maximum number of SST files which can be deleted in a single call to `SSTPURGE` is set using the `leveldb.maxpurge` configuration key, it defaults to 1000.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `ids` List of file ids to delete.\\n\\n@param `ldeleted` List of ids of files which were deleted from the LevelDB database.\\n\\n\",\"signature\":\"ids<LIST<LONG>> secret<STRING>  SSTPURGE  ldeleted<LIST<LONG>>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTPURGE\"},\"SSTREPORT\":{\"description\":\"Builds a report on the content of the various SST (Sorted String Table) files of the LevelDB database backing the Warp 10™ storage engine.\\n\\nThe function returns a map containing the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `maxlevel` | Deepest level of SST files |\\n| `manifest` | Name of `MANIFEST` file used for building the report |\\n| `sst` | List of SST file descriptors |\\n\\nEach SST file descriptor is a list containing the following elements:\\n\\n* Level of the file\\n* Number (id) of the file\\n* Hex encoded smallest key found in the file\\n* Hex encoded largest key found in the file\\n\\n\\n@param `secret` LevelDB secret.\\n\\n@param `report` Report about the SST files of the LevelDB database.\\n\\n\",\"signature\":\"secret<STRING>  SSTREPORT  report<MAP>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTREPORT\"},\"SSTTIMESTAMP\":{\"description\":\"Given a key from an SST File, for example as returned by `SSTREPORT`, extracts the timestamp encoded in the key (in the platform time units).\\n\\n@param `key` Hex encoded SST File key from which to extract the timestamp.\\n\\n@param `bkey` Byte array containing an SST File key from which to extract the timestamp.\\n\\n@param `ts` Extracted timestamp.\\n\\n\",\"signature\":\"key<STRING>  SSTTIMESTAMP  ts<LONG>\\nbkey<BYTES>  SSTTIMESTAMP  ts<LONG>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTTIMESTAMP\"},\"STACKATTRIBUTE\":{\"description\":\"Retrieves the value of a stack attribute.\\n\\n@param `name` Name of the stack attribute to retrieve.\\n\\n@param `value` Associated value or null if attribute is not set.\\n\\n\",\"signature\":\"name<STRING>  STACKATTRIBUTE  value<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STACKATTRIBUTE\"},\"STACKPSSECRET\":{\"description\":\"Modifies the secret needed for using functions such as `WSPS`, `WSSTOP` and `WSKILL`.\\n\\nThis function is only usable if a secret was configured using `stackps.secret`.\\n\\n@param `secret` Current secret for process status operations, initially the value configured via `stackps.secret`.\\n\\n@param `newsecret` New secret to set for process status operations.\\n\\n\",\"signature\":\"newsecret<STRING> secret<STRING>  STACKPSSECRET \",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"STACKPSSECRET\"},\"STACKTOLIST\":{\"description\":\"Converts the whole stack into a list and pushes this list on top of the stack. The elements are consumed off the stack in the way [`->LIST`](/doc/AItBHKCJ) does it.\\n\\n@param `stack` Content of the stack.\\n\\n@param `list` List containing the elements of the stack.\\n\\n\",\"signature\":\"stack<ANY*>  STACKTOLIST  list<LIST>\",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"STACKTOLIST\"},\"STANDARDIZE\":{\"description\":\"Standardizes a single (or a list of) numeric Geo Time Series™ (i.e. it replaces X by (X-mu)/sd).\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  STANDARDIZE  result<GTS>\\ngtsList<LIST<GTS>>  STANDARDIZE  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STANDARDIZE\"},\"STDERR\":{\"description\":\"The `STDERR` function prints text to the standard error stream.\\n\\nThe `STDERR` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"signature\":\"msg<STRING>  STDERR \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDERR\"},\"STDIN\":{\"description\":\"The `STDIN` function outputs an iterable which allows to iterate over the lines present in the standard input.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `iterable` An iterable containing the lines from standard input.\\n\\n\",\"signature\":\" STDIN  iterable<OBJECT>\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"STDIN\"},\"STDOUT\":{\"description\":\"The `STDOUT` function prints text to the standard output stream.\\n\\nThe `STDOUT` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `obj` The object to print. Its `.toString()` method is used to generate the outputed String.\\n\\n\",\"signature\":\"obj<ANY>  STDOUT \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDOUT\"},\"STL\":{\"description\":\"The `STL` function applies a Seasonal Trend decomposition on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is based on multiple calls of [`RLOWESS`](/doc/RLOWESS).\\n\\nThese Geo Time Series™ are the seasonal part and the trend part of the input Geo Time Series™. Their classnames are suffixed with \\\"_seasonal\\\" and \\\"_trend\\\".\\n\\nThis function can only be applied to [bucketized](/doc/BUCKETIZE) Geo Time Series™ of numeric type.\\n\\nThe **MAP** parameter must have at least the field `PERIOD`. You can provide additional optional parameters:\\n\\n## Optional parameters\\n### Global\\n- `ROBUST` if TRUE, set defaults of number of inner and outer loops to 1 and 15 instead of 2 and 0. Default is FALSE\\n- `PRECISION` number of inner loops (a LONG). Default is 2 or 1\\n- `ROBUSTNESS` number of outer loops (a LONG). Default is 0 or 15\\n\\n### Seasonal extract\\n- `BANDWIDTH_S` the bandwidth (a LONG) of the local regression. Default is 7\\n- `DEGREE_S` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_S` the number of values interpolated instead of estimated. Default is BANDWIDTH_S/10\\n\\n### Low frequency filtering\\n- `BANDWIDTH_L` the bandwidth (a LONG) of the local regression. Default is nextOdd(PERIOD)\\n- `DEGREE_L` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_L` the number of values interpolated instead of estimated. Default is BANDWIDTH_L/10\\n\\n### Trend extract\\n- `BANDWIDTH_T` the bandwidth (a LONG) of the local regression. Default is nextOdd(ceiling(1.5*PERIOD/(1-(1.5/BANDWIDTH_S))))\\n- `DEGREE_T` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_T` the number of values interpolated instead of estimated. Default is BANDWIDTH_T/10\\n\\n### Post seasonal smoothing\\n- `BANDWIDTH_P` the bandwidth (a LONG) of the local regression. Default is 0 (i.e. no post smoothing)\\n- `DEGREE_P` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_P` the number of values interpolated instead of estimated. Default is BANDWIDTH_P/10\\n\\n### Additional fields\\n- `BANDWIDT` value of all BANDWIDTH_X fields that are not set\\n- `DEGREE` value of all DEGREE_X fields that are not set\\n- `SPEED` value of all SPEED_X fields that are not set\\n\\n> ### REFERENCE\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> { p<LONG>  } STL  result<GTS>\\ngtsList<LIST<GTS>> { p<LONG>  } STL  resultList<LIST<GTS>>\",\"tags\":[\"gts\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"STL\"},\"STLESDTEST\":{\"description\":\"The 'STLESDTEST' function detects outliers in a Geo Time Series™ (or a **LIST** of Geo Time Series™) which has a seasonal part.\\n\\nThe seasonal part and the trend part of the Geo Time Series™ are extracted using [`STL`](/doc/STL) decomposition, then an [`ESDTEST`](/doc/ESDTEST) is performed on the remainder.\\n\\nThis function only applies to [bucketized](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ### References\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n> **Rosner, Bernard (May 1983)**, \\\"Percentage Points for a Generalized ESD Many-Outlier Procedure\\\",Technometrics, 25(2), pp. 165-172.\\n\\n@param `STLOption` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `resultList` A **LIST** of ticks corresponding to the outliers\\n\\n@param `result` A **LIST** of LIST of ticks corresponding to the outliers\\n\\n\",\"signature\":\"gts<GTS> p<LONG> k<LONG> alpha<DOUBLE> STLOption<MAP>  STLESDTEST  result<LIST<LONG>>\\ngts<GTS> p<LONG> k<LONG> alpha<DOUBLE>  STLESDTEST  result<LIST<LONG>>\\ngts<GTS> p<LONG> k<LONG> STLOption<MAP>  STLESDTEST  result<LIST<LONG>>\\ngts<GTS> p<LONG> k<LONG>  STLESDTEST  result<LIST<LONG>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG> alpha<DOUBLE> STLOption<MAP>  STLESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG> alpha<DOUBLE>  STLESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG> STLOption<MAP>  STLESDTEST  resultList<LIST<LIST<LONG>>>\\ngtsList<LIST<GTS>> p<LONG> k<LONG>  STLESDTEST  resultList<LIST<LIST<LONG>>>\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STLESDTEST\"},\"STOP\":{\"description\":\"The `STOP` function stops the current execution by throwing a `WarpScriptStopException`. This means that the current script execution will be aborted unless the call to `STOP` was in a macro invoked via [`TRY`](/doc/TRY).\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"STOP\"},\"STORE\":{\"description\":\"The `STORE` function stores a value in a symbol.\\n\\nSince 2.7, when the list of symbols contains duplicates only the last occurence in the list is assigned to its corresponding value.\\n\\n@param `symbol` Name of the symbol to modify.\\n\\n@param `register` Index of the register to modify.\\n\\n@param `symbols` List of symbols or registers to modify. The last element of the list will contain the top of the stack.\\n\\n@param `value` Value to store under `symbol`.\\n\\n@param `values` Multiple values to store in `symbols`.\\n\\n\",\"signature\":\"value<ANY> symbol<STRING>  STORE \\nvalue<ANY> register<LONG>  STORE \\nvalues<ANY*> symbols<LIST<STRING>>  STORE \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STORE\"},\"STRICTMAPPER\":{\"description\":\"Wraps a *mapper* or a *macro* in such a way that MAP will only call it if the number of ticks in the window is in the specified range.\\n\\nSince 2.1 STRICTMAPPER can also take a timespan definition by inputing negative numbers. Number of ticks and timespan can also be mixed to specify, for instance, more than 2 points but less than 5 seconds.\\n\\nPrior to 2.8 STRICTMAPPER could only wrap a mapper, now it can also wrap a macro if this macro is expected to be used as a mapper.\\n\\n@param `max` If positive, maximum number of ticks in the window. If negative, maximum timespan of the window.\\n\\n@param `min` If positive, minimum number of ticks in the window. If negative, minimum timespan of the window.\\n\\n@param `mapper` Mapper to wrap.\\n\\n@param `wrapped` Wrapped mapper.\\n\\n@param `macro` Macro to wrap\\n\\n@param `wrappedMacro` Wrapped macro\\n\\n\",\"signature\":\"mapper<AGGREGATOR> min<NUMBER> max<NUMBER>  STRICTMAPPER  wrapped<AGGREGATOR>\\nmacro<MACRO> min<NUMBER> max<NUMBER>  STRICTMAPPER  wrappedMacro<MACRO>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTMAPPER\"},\"STRICTPARTITION\":{\"description\":\"The `STRICTPARTITION` splits a Geo Time Series™ list in equivalence classes based on label values just like [`PARTITION`](/doc/PARTITION) but only retains in each equivalence class key the labels on which the partitioning was done.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels`.\\n\\n\",\"signature\":\"lgts<LIST<GTS>> labels<LIST<STRING>>  STRICTPARTITION  result<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTPARTITION\"},\"STRICTREDUCER\":{\"description\":\"Wraps a *reducer* so it is only applied if there are values for all the Geo Time Series™ being reduced.\\n\\n@param `reducer` Reducer to wrap.\\n\\n@param `wrapped` Wrapped version of the reducer.\\n\\n\",\"signature\":\"reducer<AGGREGATOR>  STRICTREDUCER  wrapped<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.6\",\"OPB64name\":\"STRICTREDUCER\"},\"STRINGFORMAT\":{\"description\":\"The STRINGFORMAT function format a String in the same ways as Java [String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.util.Locale-java.lang.String-java.lang.Object...-) does.\\n\\nThis function consumes an optional locale in [ISO 639](http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry), a list of Objects to be used in the format string and a [format string](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax).\\n\\nIf no locale is specified, it defaults to the default JVM locale.\\n\\n@param `format` A format string.\\n\\n@param `args` Arguments referenced by the format specifiers in the format string.\\n\\n@param `locale` The locale to apply during formatting.\\n\\n@param `formattedString` A formatted string.\\n\\n\",\"signature\":\"format<STRING> args<LIST>  STRINGFORMAT  formattedString<STRING>\\nformat<STRING> args<LIST> locale<STRING>  STRINGFORMAT  formattedString<STRING>\",\"tags\":[\"strings\"],\"since\":\"2.2.0\",\"OPB64name\":\"STRINGFORMAT\"},\"STU\":{\"description\":\"The `STU` function pushes onto the stack the number of platform time units in one second. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one second.\\n\\n\",\"signature\":\" STU  numberTimeUnits<LONG>\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"STU\"},\"SUBLIST\":{\"description\":\"It creates a new list with the elements of the base list whose indices are in the argument list.\\n\\nIf the argument list contains two indices [a,b] then `SUBLIST` returns the list of elements from index a to index b (included). If the argument list contains more than two indices, the result of `SUBLIST` contains all the elements at the specified indices, with possible duplicates.\\n\\nNegative indexing is allowed, with negative index effectively referring to index + size.\\n\\nSince 2.1 a new signature allowing the step to be defined has been introduced. Instead of specifying a list has range, you can put the start, end (optional) and step (optional) as **LONG** values.\\n\\n@param `arguments` List of indices. Negative indices are considered to be calculated from the end of the list.\\n\\n@param `base` Base list\\n\\n@param `result` Filtred list\\n\\n@param `start` The first index to consider, will be included.\\n\\n@param `end` The last index to consider, will be included. If not specified, defaults to -1.\\n\\n@param `step` The delta between two consecutive indexes to consider. If end is after start in the list, step must be strictly positive. If start is after end in the list, step must be strictly negative. If not specified, defaults to 1 or -1 depending on start and end.\\n\\n\",\"signature\":\"base<LIST<ANY>> arguments<LIST<LONG>>  SUBLIST  result<LIST<ANY>>\\nbase<LIST<ANY>> start<NUMBER>  SUBLIST  result<LIST<ANY>>\\nbase<LIST<ANY>> start<NUMBER> end<NUMBER>  SUBLIST  result<LIST<ANY>>\\nbase<LIST<ANY>> start<NUMBER> end<NUMBER> step<NUMBER>  SUBLIST  result<LIST<ANY>>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBLIST\"},\"SUBMAP\":{\"description\":\"It creates a new map with the key-value pairs from the base map whose keys are in the argument list.\\n\\n@param `arguments` List of indices.\\n\\n@param `base` Base map\\n\\n@param `result` Filtred map\\n\\n\",\"signature\":\"base<MAP> arguments<LIST<STRING>>  SUBMAP  result<MAP>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBMAP\"},\"SUBSTRING\":{\"description\":\"Extract a substring from a **STRING** input, or a subarray from a **BYTE ARRAY** input.  \\nIf the length is ommitted, it extracts until the end of the string or byte array. If length is greater than max length, extract stops at the input end.\\n\\nIf the start is greater than the input size, `SUBSTRING` raises an error.\\n\\nSince 2.1, the start index can be negative. In this case the effective index is index + size of the **STRING**.\\n\\n@param `len` Length of substring to extract.\\n\\n@param `start` First character to include in the substring (0 based).\\n\\n@param `str` String from which to extract a substring.\\n\\n@param `substr` Extracted substring.\\n\\n@param `array` Byte array from which to extract a sub array.\\n\\n@param `subarray` Extracted sub array.\\n\\n\",\"signature\":\"str<STRING> start<LONG> len<LONG>  SUBSTRING  substr<STRING>\\nstr<STRING> start<LONG>  SUBSTRING  substr<STRING>\\narray<BYTES> start<LONG> len<LONG>  SUBSTRING  subarray<BYTES>\\narray<BYTES> start<LONG>  SUBSTRING  subarray<BYTES>\",\"tags\":[\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBSTRING\"},\"SUBTRACTEXACT\":{\"description\":\"The `SUBTRACTEXACT` function consumes two LONGs from the top of the stack and puts back the difference between them. If the difference overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `diff` The difference of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sdiff` The first element of the list minus all the others\\n\\n@param `gdiff` The first value of the gts minus all the others\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `ldiff` List of **LONG** where each value is the difference of y and an element in lx\\n\\n@param `gtsdiff` GTS of **LONG** values where each value is the difference of y and an element in gtsx\\n\\n\",\"signature\":\"x<NUMBER> y<NUMBER>  SUBTRACTEXACT  diff<LONG>\\nlist<LIST<NUMBER>>  SUBTRACTEXACT  sdiff<LONG>\\nlx<LIST<NUMBER>> y<NUMBER>  SUBTRACTEXACT  ldiff<LIST<LONG>>\\ngts<GTS>  SUBTRACTEXACT  gdiff<LONG>\\ngtsx<GTS> y<NUMBER>  SUBTRACTEXACT  gtsdiff<LIST<LONG>>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SUBTRACTEXACT\"},\"SWAP\":{\"description\":\"Exchanges the positions of the top two elements of the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n\",\"signature\":\"level2<ANY> top<ANY>  SWAP  top<ANY> level2<ANY>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWAP\"},\"SWITCH\":{\"description\":\"Performs a [switch statement](https://en.wikipedia.org/wiki/Switch_statement) allowing to select a macro execution based on a series of condition macros or to fallback on to the execution of a default macro.\\n\\n@param `n` Number of cases to consider. The `SWITCH` function will expect `n` pairs of condition/execution macros plus a default macro on the stack.\\n\\n@param `default` Macro which will be executed if all condition macros returned false.\\n\\n@param `cond1` First condition macro. All condition macros are expected to push a boolean on the stack.\\n\\n@param `condn` `n`th condition macro.\\n\\n@param `exec1` First execution macro, this macro will be executed if `cond1` left `true` on the stack.\\n\\n@param `execn` `n`th execution macro.\\n\\n\",\"signature\":\"cond1<MACRO> exec1<MACRO> condn<MACRO> execn<MACRO> default<MACRO> n<LONG>  SWITCH \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWITCH\"},\"SYMBOLS\":{\"description\":\"The `SYMBOLS` function outputs the list of all defined symbols.\\n\\n@param `symbols` The list of the names of all defined symbols.\\n\\n\",\"signature\":\" SYMBOLS  symbols<LIST>\",\"tags\":[\"stack\"],\"since\":\"2.2.1\",\"OPB64name\":\"SYMBOLS\"},\"SYNC\":{\"description\":\"Executes a macro in a synchronized way while in a parallel execution triggered by a call to [`CEVAL`](/doc/CEVAL). If `SYNC` is called outside of a parallel execution, it simply executes the macro.\\n\\nWhen called within a `CEVAL` execution, the use of `SYNC` guarantees that only one of the concurrently executing threads will execute the specified macro at any given time.\\n\\n@param `macro` Macro to execute in a synchronized way.\\n\\n\",\"signature\":\"macro<MACRO>  SYNC \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"SYNC\"},\"T\":{\"description\":\"`T` stand for `true`. It is a boolean constant.\\n\\n\\n@param `b` true\\n\\n\",\"signature\":\" T  b<BOOLEAN>\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"T\"},\"TAN\":{\"description\":\"The `TAN` function consumes a floating point number from the top of the stack and pushes back its tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Tangent of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the tangent of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  TAN  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  TAN  lresult<LIST<DOUBLE>>\\ngts<GTS>  TAN  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TAN\"},\"TANH\":{\"description\":\"The `TANH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic tangent of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic tangent of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  TANH  result<DOUBLE>\\nlvalue<LIST<NUMBER>>  TANH  lresult<LIST<DOUBLE>>\\ngts<GTS>  TANH  gtsresult<GTS>\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TANH\"},\"TDESCRIBE\":{\"description\":\"The `TDESCRIBE` function is a recursive [`TYPEOF`](/doc/TYPEOF).\\n\\nWhen `TDESCRIBE` finds a LIST, it takes the first element of the list to look for his type. When `TDESCRIBE` finds a MAP, it takes a random key in the map to look for the type of the key and the type of the value.\\n\\n**By design, TDESCRIBE cannot describe heterogeneous lists or maps.**\\n\\nTDESCRIBE output is subject to change in the future. Do not try to parse it. This function is here to help you during Warpscript development.\\n\\n\\nThe `TDESCRIBE` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `object` Any kind of reference\\n\\n@param `description` The description of the object\\n\\n\",\"signature\":\"object<ANY>  TDESCRIBE  description<STRING>\",\"tags\":[\"extensions\",\"debug\"],\"since\":\"1.2.19\",\"OPB64name\":\"TDESCRIBE\"},\"TEMPLATE\":{\"description\":\"`TEMPLATE` fills a template with values contained in a map. See example for syntax help.\\n\\nThe `TEMPLATE` function expects the map of values on top of the stack and will operate on the string template below it.\\n\\nValues speficied with `{{key}}` will be html-escaped. If you do not want that behavior, use `{{{key}}}`.\\n\\n@param `dictionnary` Each key will be replaced in a {{key}} template. Value could be string long, double, boolean, or a list of maps. If Value is a list of maps, each subkey/value will be replaced in a {{#key}}{{subkey}}{{/key}} template. \\n\\n@param `listofmaps` Contains a list of subkey/value map. Will be replaced in a {{#key}}{{subkey}}{{/key}} template.\\n\\n@param `template` Input template.\\n\\n@param `output` Result of substitution.\\n\\n\",\"signature\":\"template<STRING> dictionnary<MAP>  TEMPLATE  output<STRING>\\ntemplate<STRING> listofmaps<LIST<MAP>>  TEMPLATE  output<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TEMPLATE\"},\"THRESHOLDTEST\":{\"description\":\"Analyzes Geo Time Series™, identifying ticks where values are outliers above the given threshold.\\n\\n@param `threshold` Threshold above which values are considered outliers.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `ticks` List of ticks where outliers were found.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lticks` List of lists of ticks where outliers were found.\\n\\n\",\"signature\":\"gts<GTS> threshold<DOUBLE>  THRESHOLDTEST  ticks<LIST<LONG>>\\nlgts<LIST<GTS>> threshold<DOUBLE>  THRESHOLDTEST  lticks<LIST<LIST<LONG>>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"THRESHOLDTEST\"},\"TICKINDEX\":{\"description\":\"Creates a clone of a Geo Time Series™, replacing each tick with the index (0 based) at which it appears at the moment of the call.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `encoder` Geo Time Series™ Encoder instance to transform.\\n\\n@param `indexed` Transformed GTS.\\n\\n@param `indexedenc` Transformed GTS Encoder.\\n\\n@param `lgts` List of Geo Time Series™ instances to transform.\\n\\n@param `lencoder` List of Geo Time Series™ Encoder instances to transform.\\n\\n@param `lindexed` List of indexed Geo Time Series™.\\n\\n@param `lindexedenc` List of indexed Geo Time Series™ Encoder.\\n\\n\",\"signature\":\"gts<GTS>  TICKINDEX  indexed<GTS>\\nlgts<LIST<GTS>>  TICKINDEX  lindexed<LIST<GTS>>\\nencoder<GTSENCODER>  TICKINDEX  indexedenc<GTSENCODER>\\nlencoder<LIST<GTSENCODER>>  TICKINDEX  lindexedenc<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKINDEX\"},\"TICKLIST\":{\"description\":\"Pushes onto the stack the list of ticks of a Geo Time Series™ or encoder. The ticks appear in the order in which they are found.\\n`TICKLIST` is consistent with [`VALUES`](/doc/VALUES).\\n\\n\\nIf a list of Geo Time Series™ is given, the result is a list of list of ticks as if the TICKLIST function was applied to each Geo Time Series™ separately.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n@param `encoder` Instance of encoder from which to extract the ticks.\\n\\n@param `lencoder` List of encoders.\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `lticks` List of lists of ticks.\\n\\n\",\"signature\":\"gts<GTS>  TICKLIST  ticks<LIST<LONG>>\\nlgts<LIST<GTS>>  TICKLIST  lticks<LIST<LIST<LONG>>>\\nencoder<GTSENCODER>  TICKLIST  ticks<LIST<LONG>>\\nlencoder<LIST<GTSENCODER>>  TICKLIST  lticks<LIST<LIST<LONG>>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKLIST\"},\"TICKS\":{\"description\":\"Pushes onto the stack the sorted list of **distinct** ticks of a Geo Time Series™. If a list of Geo Time Series™ is given, all the **distinct** ticks are returned in a single sorted list as if all Geo Time Series™ were merged.\\n\\nThis function is not to be confused with [`TICKLIST`](/doc/TICKLIST) as this function returns **distinct** ticks and acts as it merges Geo Time Series™.\\n\\n** Warning:** To be consistent with [`VALUES`](/doc/VALUES), use [`TICKLIST`](/doc/TICKLIST).\\n\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n\",\"signature\":\"gts<GTS>  TICKS  ticks<LIST<LONG>>\\nlgts<LIST<GTS>>  TICKS  ticks<LIST<LONG>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKS\"},\"TIGER\":{\"description\":\"The `TIGER` function digests a byte array on the stack with the cryptographic hash function [Tiger](https://en.wikipedia.org/wiki/Tiger_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  TIGER  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"TIGER\"},\"TIMEBOX\":{\"description\":\"The `TIMEBOX` executes a macro with a maximum execution time. If the maximum time is reached, an exception will be thrown which can be caught using [`TRY`](/doc/TRY).\\n\\n@param `maxtime` Maximum execution time, in platform time units.\\n\\n@param `macro` Macro to execute.\\n\\n\",\"signature\":\"macro<MACRO> maxtime<LONG>  TIMEBOX \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TIMEBOX\"},\"TIMECLIP\":{\"description\":\"Clips Geo Time Series™ instances by restricting their ticks to those within a time interval.      \\n\\n@param `duration` Width of the time interval to retain, in time units.\\n\\n@param `end` Most recent timestamp to retain.\\n\\n@param `start` Start timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `stop` End timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `clipped` Clipped Geo Time Series™.\\n\\n@param `lclipped` List of clipped GTS.\\n\\n@param `encoder` Single GTS Encoder instance.\\n\\n@param `lencoder` List of GTS Encoder instances.\\n\\n@param `clippedEncoder` Clipped GST encoder.\\n\\n@param `lclippedEncoders` List of clipped GTS encoders.\\n\\n\",\"signature\":\"gts<GTS> end<LONG> duration<LONG>  TIMECLIP  clipped<GTS>\\nlgts<LIST<GTS>> end<LONG> duration<LONG>  TIMECLIP  lclipped<LIST<GTS>>\\ngts<GTS> stop<STRING> start<STRING>  TIMECLIP  clipped<GTS>\\nlgts<LIST<GTS>> stop<STRING> start<STRING>  TIMECLIP  lclipped<LIST<GTS>>\\nencoder<GTSENCODER> end<LONG> duration<LONG>  TIMECLIP  clippedEncoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> end<LONG> duration<LONG>  TIMECLIP  lclippedEncoders<LIST<GTSENCODER>>\\nencoder<GTSENCODER> stop<STRING> start<STRING>  TIMECLIP  clippedEncoder<GTSENCODER>\\nlencoder<LIST<GTSENCODER>> stop<STRING> start<STRING>  TIMECLIP  lclippedEncoders<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMECLIP\"},\"TIMED\":{\"description\":\"The `TIMED` function converts a macro to a timed macro, recording its execution time and its number of calls.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\n@param `name` A name identifying the macro.\\n\\n@param `macro` The macro you want to monitor.\\n\\n@param `timedMacro` A macro which, when called, will update the statitics associated with the given name.\\n\\n\",\"signature\":\"macro<MACRO> name<STRING>  TIMED  timedMacro<MACRO>\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"TIMED\"},\"TIMEMODULO\":{\"description\":\"Splits Geo Time Series™ into sub-GTS whose timestamps are the original timestamp modulo a given modulus value. Each sub-GTS will bear a label with the quotient of the original timestamps divided by the modulus. The output list order is not guaranteed, use [`SORTBY`](/doc/SORTBY) if you want to order the output by label.\\n\\nThis function can be used to generate for example one Geo Time Series™ per day with ticks from 0 to 86400 s (excluded).\\n\\n@param `label` Name of the label which will have the quotient value.\\n\\n@param `modulus` Value by which to divide the original timestamps.\\n\\n@param `gts` Geo Time Series™ to split.\\n\\n@param `splits` Resulting splits.\\n\\n@param `lgts` List of GTS to split.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"signature\":\"gts<GTS> modulus<LONG> label<STRING>  TIMEMODULO  splits<LIST<GTS>>\\nlgts<LIST<GTS>> modulus<LONG> label<STRING>  TIMEMODULO  lsplits<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMEMODULO\"},\"TIMEOFF\":{\"description\":\"Turns off the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\" TIMEOFF \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEOFF\"},\"TIMEON\":{\"description\":\"Turns on the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\" TIMEON \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEON\"},\"TIMESCALE\":{\"description\":\"Modifies the ticks of Geo Time Series™ instances by multiplying each tick by a provided scale.      \\n\\nThe resulting tick will be converted to a LONG after multiplication by the scale.\\n\\nIf the Geo Time Series™ instance is bucketized, the `lastbucket` and `bucketspan` parameters will also be scaled. If the scale would incur a `bucketspan` of 0, the call will end with an error.\\n\\n@param `scale` Scale by which to multiply each tick.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `scaled` Geo Time Series™ result.\\n\\n@param `lscaled` List of Geo Time Series™ result.\\n\\n\",\"signature\":\"gts<GTS> scale<DOUBLE>  TIMESCALE  scaled<GTS>\\ngts<GTS> scale<LONG>  TIMESCALE  scaled<GTS>\\nlgts<LIST<GTS>> scale<DOUBLE>  TIMESCALE  lscaled<LIST<GTS>>\\nlgts<LIST<GTS>> scale<LONG>  TIMESCALE  lscaled<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESCALE\"},\"TIMESHIFT\":{\"description\":\"Shifts the ticks of Geo Time Series™ instances by a given amount.\\n\\n@param `offset` Offset to apply to the ticks, in time units.\\n\\n@param `gts` Single Geo Time Series™ instance to shift.\\n\\n@param `lgts` List of GTS to shift.\\n\\n@param `shifted` Shifted Geo Time Series™.\\n\\n@param `lshifted` List of shifted Geo Time Series™.\\n\\n\",\"signature\":\"gts<GTS> offset<LONG>  TIMESHIFT  shifted<GTS>\\nlgts<LIST<GTS>> offset<LONG>  TIMESHIFT  lshifted<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESHIFT\"},\"TIMESPLIT\":{\"description\":\"The `TIMESPLIT` functions splits Geo Time Series™ instances based on *quiet periods*, *i.e.* periods during which the GTS has no values.\\n\\nWhenever a quiet period longer than a minimum duration is encountered, the Geo Time Series™ is split.\\n\\nIf input gts has no values or if 'label' is already part of the labels of 'gts', then the resulting list of GTS will only contain a clone of 'gts'. **Make sure to test your GTS split size if needed.**\\n\\n@param `label` Name of label in which to store the sequence number.\\n\\n@param `minvalues` Minimum number of values a split should contain. Splits with less than that many values will be discarded.\\n\\n@param `quietperiod` Minimum duration of the silent period (*i.e.* with no values) between splits.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"signature\":\"gts<GTS> quietperiod<LONG> minvalues<LONG> label<STRING>  TIMESPLIT  splits<LIST<GTS>>\\nlgts<LIST<GTS>> quietperiod<LONG> minvalues<LONG> label<STRING>  TIMESPLIT  lsplits<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESPLIT\"},\"TIMINGS\":{\"description\":\"Turns on the collection of timing information for each line of the script. The collected timings can be put onto the stack by using [`ELAPSED`](/doc/ELAPSED).\\n\\nTo measure executions of named tasks (several lines of WarpScript, possibly nested inside macros), prefer [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND), with [`CHRONOSTATS`](/doc/CHRONOSTATS) to display results.\\n\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMINGS\"},\"TLTTB\":{\"description\":\"The `TLTTB` function performs downsampling of Geo Time Series™ by applying the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data. It differs from the [`LTTB`](doc/LTTB) function by the fact that it considers time based buckets instead of buckets based on a number of values.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"signature\":\"gts<GTS> samples<LONG>  TLTTB  downsampled<GTS>\\nlgts<LIST<GTS>> samples<LONG>  TLTTB  ldownsampled<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"TLTTB\"},\"TOBIN\":{\"description\":\"Converts the long on top of the stack to its 64 bits binary representation.\\n\\nSince the 2.8.0 version, this function also converts the byte array or the string on top of the stack to its binary representation. Thus, this function and [\\\\->BIN](/doc/AIt1HJs) are equivalent.\\n\\n@param `input` value to convert\\n\\n@param `output` String converted binary representation of param\\n\\n\",\"signature\":\"input<STRING>  TOBIN  output<STRING>\\ninput<BYTES>  TOBIN  output<STRING>\\ninput<LONG>  TOBIN  output<STRING>\\ninput<BITSET>  TOBIN  output<STRING>\",\"tags\":[\"conversion\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBIN\"},\"TOBITS\":{\"description\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n**Deprecation notice** the `TOBITS` function will be removed, please use `->DOUBLEBITS` or `->FLOATBITS`.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"signature\":\"number<NUMBER>  TOBITS  bits<LONG>\\ngts<GTS>  TOBITS  longgts<GTS>\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBITS\"},\"TOBOOLEAN\":{\"description\":\"Converts a value of primitive type into a boolean value.\\n\\nThe `TOBOOLEAN` function consumes a parameter from the top of the stack and pushes back its conversion to boolean.\\nNumbers will be false if they are equal to 0 and true otherwise.\\nStrings will be false if they are equals to '' and true otherwise.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The boolean conversion of the value\\n\\n\",\"signature\":\"value<BOOLEAN>  TOBOOLEAN  result<BOOLEAN>\\nvalue<NUMBER>  TOBOOLEAN  result<BOOLEAN>\\nvalue<STRING>  TOBOOLEAN  result<BOOLEAN>\",\"tags\":[\"conversion\"],\"since\":\"1.0.5\",\"OPB64name\":\"TOBOOLEAN\"},\"TODEGREES\":{\"description\":\"Converts an angle measured in radians to its equivalent in degrees.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from radians to degrees.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in radian to convert in degree\\n\\n@param `result` Result of the conversion from radians to degrees\\n\\n@param `langle` List of angles in radian to convert in degree\\n\\n@param `lresult` List of results of the conversion from radians to degrees\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from radians to degrees of the given GTS values\\n\\n\",\"signature\":\"angle<NUMBER>  TODEGREES  result<DOUBLE>\\nlangle<LIST<NUMBER>>  TODEGREES  lresult<LIST<DOUBLE>>\\ngts<GTS>  TODEGREES  gtsresult<GTS>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODEGREES\"},\"TODOUBLE\":{\"description\":\"Converts a value of primitive type into a double value.\\n\\nThe `TODOUBLE` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to double.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The double conversion of the value\\n\\n\",\"signature\":\"value<BOOLEAN>  TODOUBLE  result<DOUBLE>\\nvalue<NUMBER>  TODOUBLE  result<DOUBLE>\\nvalue<STRING>  TODOUBLE  result<DOUBLE>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODOUBLE\"},\"TOHEX\":{\"description\":\"Converts a long to its 64 bits hexadecimal representation.\\n\\nSince the 2.8.0 version this function also decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV). Thus, this function is equivalent to [`->HEX`](/doc/AIt7GKV).\\n\\n@param `input` Signed long integer.\\n\\n@param `output` Hexadecimal string representation of input.\\n\\n\",\"signature\":\"input<STRING>  TOHEX  output<STRING>\\ninput<BYTES>  TOHEX  output<STRING>\\ninput<LONG>  TOHEX  output<STRING>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOHEX\"},\"TOINTEXACT\":{\"description\":\"The `TOINTEXACT` function consumes one NUMBER from the top of the stack and puts back the value. If the result overflows an INT, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be checked not to overflow an INT\\n\\n@param `result` The given value\\n\\n@param `lvalue` List of values to be checked not to overflow an INT\\n\\n@param `lresult` List of given values\\n\\n@param `gts` Numerical GTS whose values are to be checked not to overflow an INT\\n\\n@param `gtsresult` A copy of the given GTS\\n\\n\",\"signature\":\"value<NUMBER>  TOINTEXACT  result<LONG>\\nlvalue<LIST<NUMBER>>  TOINTEXACT  lresult<LIST<LONG>>\\ngts<GTS>  TOINTEXACT  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"TOINTEXACT\"},\"TOKENDUMP\":{\"description\":\"Deciphers a token and outputs a map describing the various elements of the token.\\n\\nThe map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Original token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| params | MAP | Map of token parameters, can be used as input to [`TOKENGEN`](/doc/TOKENGEN) |\\n\\nThe `params` map contains the following entries for both `READ` and `WRITE` tokens:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| type  | STRING | `READ` or `WRITE` depending on the type of token |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application asociated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in ms since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in ms since the Unix Epoch |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nAdditionally, for `READ` tokens, the map contains those entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, those will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nNote that the `TOKENDUMP` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration key was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to decode the token.\\n\\n@param `token` Token to decode.\\n\\n@param `map` Map with the extracted parameters, the original token and its *ident*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENDUMP` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"signature\":\"token<STRING>  TOKENDUMP  map<MAP>\\ntoken<STRING> secret<STRING>  TOKENDUMP  map<MAP>\\ntoken<STRING> aes<BYTES> hash<BYTES>  TOKENDUMP  map<MAP>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENDUMP\"},\"TOKENGEN\":{\"description\":\"Generates a token given a map of parameters. The `TOKENGEN` function outputs a map.\\n\\nThe input parameter map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| id | STRING | Optional identifier that will be put verbatim in the result map |\\n| type  | STRING | `READ` or `WRITE` depending on the type of token to generate |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application associated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| ttl | LONG | If `expiry` is not specified, a time to live can be set with this key. The TTL is expressed in **milliseconds**, the computed expiry timestamp will be the issuance timestamp plus the ttl |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nWhen generating a `READ` token, the following parameters are needed to ensure data isolation:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, they will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nIf one of these parameter key is not set or set to an empty list, then the generated `READ` token will be granted access to all the scope associated with the parameter key. For example, if `owners` is not set, data from all owners will be accessible to this token.\\n\\nThe `TOKENGEN` function outputs a map with the following keys:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Generated token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| id | STRING | Optional identifier if the `id` key was specified in the parameter map |\\n\\nNote that the `TOKENGEN` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to create the token.\\n\\n@param `params` Map of parameters used to generate the token.\\n\\n@param `result` Map containing the token, its *ident* and an optional *id*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENGEN` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"signature\":\"params<MAP>  TOKENGEN  result<MAP>\\nparams<MAP> secret<STRING>  TOKENGEN  result<MAP>\\nparams<MAP> aes<BYTES> hash<BYTES>  TOKENGEN  result<MAP>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENGEN\"},\"TOKENINFO\":{\"description\":\"Retrieves information from token.\\n\\nThe `TOKENINFO` function consumes a token from the top of the stack and pushes back a map containing the token information:\\n* type: type of token 'Read' or 'Write'\\n* issuance: timestamp of token creation, in **milliseconds** since the Unix Epoch \\n* expiry: timestamp of token expiration, in **milliseconds** since the Unix Epoch \\n* application: name of the application accessing the data\\n* apps: list of applications whose data can be accessed (usually limited to a single application)\\n\\n@param `token` Token to extract information\\n\\n@param `infos` Token information extract from the tokens\\n\\n\",\"signature\":\"token<STRING>  TOKENINFO  infos<MAP>\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOKENINFO\"},\"TOKENSECRET\":{\"description\":\"Modifies the secret needed for using `TOKENGEN` or `TOKENDUMP`.\\n\\nThis function is only usable if a secret was configured using `token.secret`.\\n\\n@param `secret` Current secret for token operations, initially the value configured via `token.secret`.\\n\\n@param `newsecret` New secret to set for token operations.\\n\\n\",\"signature\":\"newsecret<STRING> secret<STRING>  TOKENSECRET \",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TOKENSECRET\"},\"TOLONG\":{\"description\":\"Converts a value of primitive type or a **BYTE ARRAY** into a long value.\\n\\nThe `TOLONG` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to long.\\n\\nBeware of string inputs with leading zeros: it could be considered as octal. See examples below.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The long conversion of the value\\n\\n@param `array` Maximum 8 bytes to convert to a LONG. Sign is kept.\\n\\n\",\"signature\":\"value<BOOLEAN>  TOLONG  result<LONG>\\nvalue<NUMBER>  TOLONG  result<LONG>\\nvalue<STRING>  TOLONG  result<LONG>\\narray<BYTES>  TOLONG  result<LONG>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLONG\"},\"TOLOWER\":{\"description\":\"Converts the **STRING** on top of the stack to lower case.\\n\\n@param `input` input string\\n\\n@param `output` Lower case string\\n\\n\",\"signature\":\"input<STRING>  TOLOWER  output<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLOWER\"},\"TORADIANS\":{\"description\":\"Converts an angle measured in degrees to its equivalent in radians.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from degrees to radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in degree to convert in radian\\n\\n@param `result` Result of the conversion from degree to radian\\n\\n@param `langle` List of angles in degree to convert in radian\\n\\n@param `lresult` List of results of the conversion from degree to radian\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from degree to radian of the given GTS values\\n\\n\",\"signature\":\"angle<NUMBER>  TORADIANS  result<DOUBLE>\\nlangle<LIST<NUMBER>>  TORADIANS  lresult<LIST<DOUBLE>>\\ngts<GTS>  TORADIANS  gtsresult<GTS>\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TORADIANS\"},\"TOSELECTOR\":{\"description\":\"The `TOSELECTOR` function takes a Geo Time Series™ or Geo Time Series™ LIST from the top of the stack and, for each encountered GTS, replace it with a selector which would select it.\\n\\nThis selector can be used as input of [`PARSESELECTOR`](/doc/PARSESELECTOR) for a [`FETCH`](/doc/FETCH).\\n\\n@param `gts` The input Geo Time Series™.\\n\\n@param `gtslist` The input list of Geo Time Series™.\\n\\n@param `encoder` The input encoder.\\n\\n@param `encoderlist` The input list of encoders.\\n\\n@param `selector` The selector string.\\n\\n@param `selectorlist` The list of selector strings, one per GTS in gtslist.\\n\\n\",\"signature\":\"gts<GTS>  TOSELECTOR  selector<STRING>\\ngtslist<LIST<GTS>>  TOSELECTOR  selectorlist<LIST<STRING>>\\nencoder<GTSENCODER>  TOSELECTOR  selector<STRING>\\nencoderlist<LIST<GTSENCODER>>  TOSELECTOR  selectorlist<LIST<STRING>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSELECTOR\"},\"TOSTRING\":{\"description\":\"Converts a value of primitive type into a string value.\\n\\nThe `TOSTRING` function consumes a parameter from the top of the stack and pushes back its conversion to string.\\n\\nNote that GTS are converted to input format and that the string ends with CRLF to follow HTTP recommendations.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The string conversion of the value\\n\\n\",\"signature\":\"value<NUMBER>  TOSTRING  result<STRING>\\nvalue<BOOLEAN>  TOSTRING  result<STRING>\\nvalue<STRING>  TOSTRING  result<STRING>\\nvalue<GTS>  TOSTRING  result<STRING>\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSTRING\"},\"TOTIMESTAMP\":{\"description\":\"Converts a date in format ISO8601 into a timestamp in the platform's time unit.\\n\\nThe `TOTIMESTAMP` function consumes a string parameter (date + time + time zone) from the top of the stack and pushes back its conversion to a number of time units since the Unix Epoch.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nThe supported format is ISO8601 and are:\\n* yyyy-mm-dddThh:mm:ss.ssssssZ\\n* yyyy-mm-dddThh:mm:ss+hh:mm\\n\\nAs the string are URL encoded, the symbol + have to be replaced by %2B, otherwise a space will replace the + in the string.\\n\\n@param `input` ISO8601 string.\\n\\n@param `result` timestamp in the platform unit.\\n\\n\",\"signature\":\"input<STRING>  TOTIMESTAMP  result<LONG>\",\"tags\":[\"conversion\",\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOTIMESTAMP\"},\"TOUPPER\":{\"description\":\"Converts the **STRING** on top of the stack to upper case.\\n\\n@param `input` input string\\n\\n@param `output` Upper case string\\n\\n\",\"signature\":\"input<STRING>  TOUPPER  output<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOUPPER\"},\"TR\":{\"description\":\"Computes the [trace](https://en.wikipedia.org/wiki/Trace_(linear_algebra)) of a square matrix. If the input matrix is not square, an error is raised.\\n\\n@param `matrix` The square matrix for which to compute the trace.\\n\\n@param `trace` The computed trace.\\n\\n\",\"signature\":\"matrix<MATRIX>  TR  trace<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TR\"},\"TRANSPOSE\":{\"description\":\"Computes the [transpose](https://en.wikipedia.org/wiki/Transpose) of a matrix.\\n\\n@param `matrix` Matrix to transpose.\\n\\n@param `transpose` The transpose of the original matrix.\\n\\n\",\"signature\":\"matrix<MATRIX>  TRANSPOSE  transpose<MATRIX>\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TRANSPOSE\"},\"TRIM\":{\"description\":\"Trims whitespaces from both ends of the string on top of the stack.\\n\\n@param `str` String to trim\\n\\n@param `trimmedstr` String trimmed\\n\\n\",\"signature\":\"str<STRING>  TRIM  trimmedstr<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TRIM\"},\"TRY\":{\"description\":\"The `TRY` function provides a way to execute a macro in a safety harness with [Exception handling](https://en.wikipedia.org/wiki/Exception_handling).\\n\\nIf an error is thrown, it is recorded and will be available via [`ERROR`](/doc/ERROR).\\n\\n@param `try` Macro whose execution is *attempted*.\\n\\n@param `catch` Macro which will be executed if an error is encountered while executing the `try` macro.\\n\\n@param `finally` Macro which will be executed unconditionally after either the `try` or `try`/`catch` execution.\\n\\n\",\"signature\":\"try<MACRO> catch<MACRO> finally<MACRO>  TRY \",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"TRY\"},\"TSELEMENTS\":{\"description\":\"Alias of [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nThe `TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"signature\":\"timestamp<LONG>  TSELEMENTS  dateAndTimeElements<LIST<LONG>>\\ntimestamp<LONG> timezone<STRING>  TSELEMENTS  dateAndTimeElements<LIST<LONG>>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"TSELEMENTS\"},\"TSELEMENTS->\":{\"description\":\"The `TSELEMENTS->` function consumes an optional **STRING** timezone and a **LIST** of **LONG** describing a time and date and pushes back the **LONG** timestamp. The **LIST** of **LONG** follows the format given by [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"signature\":\"dateAndTimeElements<LIST<LONG>>  TSELEMENTS->  timestamp<LONG>\\ndateAndTimeElements<LIST<LONG>> timezone<STRING>  TSELEMENTS->  timestamp<LONG>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"K4C4I3KCGJtJJmoy\"},\"TYPEOF\":{\"description\":\"Gets the type of an element.\\n\\nThe `TYPEOF` function consumes the top element on the stack and pushes back a string containing the type. The output could be:\\n+ AGGREGATOR\\n+ BITSET\\n+ BOOLEAN\\n+ BYTES\\n+ CONTEXT\\n+ COUNTER\\n+ DOUBLE\\n+ FILLER\\n+ FILTER\\n+ FUNCTION\\n+ GEOSHAPE\\n+ GTS\\n+ GTSENCODER\\n+ KEY\\n+ LIST\\n+ LONG\\n+ MACRO\\n+ MAP\\n+ MARK\\n+ MATCHER\\n+ MATRIX\\n+ NULL\\n+ OPERATOR\\n+ PFONT\\n+ PGRAPHICS\\n+ PIMAGE\\n+ PSHAPE\\n+ SET\\n+ STRING\\n+ VECTOR\\n+ VLIST\\n\\nFor any object introduced by a WarpScript extension whose output of TYPEOF is not in the list thereof, the output would be preceded by \\\"X-\\\".\\n\\nNote: since revision 2.5.0, the TYPEOF output of bucketizers, mappers, reducers is changed from 'MAPPER' to 'AGGREGATOR'.\\n\\n\\n@param `object` Any kind of reference\\n\\n@param `type` The type of the object\\n\\n\",\"signature\":\"object<ANY>  TYPEOF  type<STRING>\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"TYPEOF\"},\"UDF\":{\"description\":\"The `UDF` function invokes a User Defined Function from a Jar. A new function instance is loaded at each invocation.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"signature\":\"class<STRING>  UDF \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UDF\"},\"ULP\":{\"description\":\"Returns the size of the [ULP (Unit in the Last Place)](https://en.wikipedia.org/wiki/Unit_in_the_last_place) for the argument. The ulp for a DOUBLE is the positive distance between this floating-point value and the DOUBLE value next larger in magnitude.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `ulp` Computed ULP.\\n\\n@param `lvalue` List of numeric values.\\n\\n@param `lulp` List of computed ULPs.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the ULP of the given GTS values\\n\\n\",\"signature\":\"value<NUMBER>  ULP  ulp<DOUBLE>\\nlvalue<LIST<NUMBER>>  ULP  lulp<LIST<DOUBLE>>\\ngts<GTS>  ULP  gtsresult<GTS>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ULP\"},\"UNBUCKETIZE\":{\"description\":\"Transforms a bucketized Geo Time Series™ into a non bucketized one. Note that this function transforms the original GTS, it does not clone it.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™ instances.\\n\\n\",\"signature\":\"gts<GTS>  UNBUCKETIZE  gts<GTS>\\nlgts<LIST<GTS>>  UNBUCKETIZE  lgts<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNBUCKETIZE\"},\"UNBUCKETIZE.CALENDAR\":{\"description\":\"On a GTS that is calendar-bucketized, this function replaces the ticks with the timestamp end boundaries of each bucket, and unbucketize it.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `lgts` One or more lists of Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS>  UNBUCKETIZE.CALENDAR  gts<GTS>\\nlgts<LIST<GTS>>  UNBUCKETIZE.CALENDAR  lgts<LIST<GTS>>\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"UNBUCKETIZE.CALENDAR\"},\"UNGZIP\":{\"description\":\"Decompresses a byte array containing data compressed by [`GZIP`](doc/GZIP).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"signature\":\"compressed<BYTES>  UNGZIP  uncompressed<BYTES>\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNGZIP\"},\"UNION\":{\"description\":\"Computes the union &#x222a; of two sets.\\n\\nThe `UNION` function consumes two sets from the top of the stack and pushes back its mathematical union.\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x222a; *B*\\n\\n\",\"signature\":\"setA<SET> setB<SET>  UNION  output<SET>\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNION\"},\"UNIQUE\":{\"description\":\"The `UNIQUE` function eliminates duplicate elements on the LIST on the top of the stack.\\nThe order of the resulting LIST is not the same than the original one.\\n\\nIt makes elements of a list unique by converting it to a set temporarily. See [()](/doc/91Z) for more informations.\\n\\n@param `input` The list to parse\\n\\n@param `output` The new list object, without any duplicates\\n\\n\",\"signature\":\"input<LIST>  UNIQUE  output<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNIQUE\"},\"UNLIST\":{\"description\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`]`](/doc/MF).\\n\\n@param `list` List to expand.\\n\\n@param `elts` Elements of `list`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"signature\":\"list<LIST>  UNLIST  mark<MARK> elts<ANY*>\",\"tags\":[\"lists\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNLIST\"},\"UNMAP\":{\"description\":\"Unpacks a map, pushing its keys and values onto the stack along a mark as the deepest stack element such that one can use [`}`](/doc/UF) to rebuild the map.\\n\\n@param `k1` First map key.\\n\\n@param `v1` First map value.\\n\\n@param `kN` Nth map key.\\n\\n@param `vN` Nth map value.\\n\\n@param `map` Map to unpack.\\n\\n@param `mark` Mark indicating the deepest level to consider when building the map.\\n\\n\",\"signature\":\"map<MAP>  UNMAP  mark<MARK> k1<ANY> v1<ANY> kN<ANY> vN<ANY>\",\"tags\":[\"maps\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNMAP\"},\"UNPACK\":{\"description\":\"The `UNPACK` function unpacks a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n* **<**: No bigendian\\n* **>**: Bigendian\\n* **L**: Long\\n* **B**: Boolean\\n* **D**: Double length always equals 64.\\n* **<L32**: No bigendian 32 bits Long\\n\\n@param `list` Pqcked list to unpack\\n\\n@param `format` Format used to unpack\\n\\n@param `result` Unpacked list\\n\\n\",\"signature\":\"list<BYTES> format<STRING>  UNPACK  result<LIST<ANY>>\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"UNPACK\"},\"UNSECURE\":{\"description\":\"The `UNSECURE` function decrypts a secure script. The correct secret MUST have been set using [`SECUREKEY`](doc/SECUREKEY) prior to calling this function.\\n\\n@param `secure` STRING with the secure script to decode.\\n\\n@param `script` Decoded scripted.\\n\\n\",\"signature\":\"secure<STRING>  UNSECURE  script<STRING>\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNSECURE\"},\"UNSET\":{\"description\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`)`](/doc/9F).\\n\\n@param `set` Set to expand.\\n\\n@param `elts` Elements of `set`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"signature\":\"set<SET>  UNSET  mark<MARK> elts<ANY*>\",\"tags\":[\"sets\"],\"since\":\"2.6.0\",\"OPB64name\":\"UNSET\"},\"UNTIL\":{\"description\":\"The `UNTIL` function implements an until loop. It takes two macros as arguments from the stack: the code to execute until the condition is true and the condition to evaluate after every iteration.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force UNTIL to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `code` Macro executed on each loop\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"signature\":\"code<MACRO> condition<MACRO>  UNTIL \\ncode<MACRO> condition<MACRO> index<BOOLEAN>  UNTIL \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNTIL\"},\"UNWRAP\":{\"description\":\"Unwraps packed Geo Time Series™ instances.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"signature\":\"wrapped<STRING>  UNWRAP  gts<GTS>\\nwrappedbytes<BYTES>  UNWRAP  gts<GTS>\\nlwrapped<LIST<STRING>>  UNWRAP  lgts<LIST<GTS>>\\nlwrapped<LIST<BYTES>>  UNWRAP  lgts<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNWRAP\"},\"UNWRAPEMPTY\":{\"description\":\"Unwraps wrapped Geo Time Series™ instances without unpacking the actual datapoints. This is handy to extract the metadata (class, labels, attributes) from a set of wrapped GTS.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"signature\":\"wrapped<STRING>  UNWRAPEMPTY  gts<GTS>\\nwrappedbytes<BYTES>  UNWRAPEMPTY  gts<GTS>\\nlwrapped<LIST<STRING>>  UNWRAPEMPTY  lgts<LIST<GTS>>\\nlwrapped<LIST<BYTES>>  UNWRAPEMPTY  lgts<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPEMPTY\"},\"UNWRAPENCODER\":{\"description\":\"Unwraps packed Geo Time Series™ into encoders.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `encoder` Encoder with decoded Geo Time Series™ datapoints.\\n\\n@param `lencoder` List of encoders with decoded Geo Time Series™.\\n\\n\",\"signature\":\"wrapped<STRING>  UNWRAPENCODER  encoder<GTSENCODER>\\nwrappedbytes<BYTES>  UNWRAPENCODER  encoder<GTSENCODER>\\nlwrapped<LIST<STRING>>  UNWRAPENCODER  lencoder<LIST<GTSENCODER>>\\nlwrapped<LIST<BYTES>>  UNWRAPENCODER  lencoder<LIST<GTSENCODER>>\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"UNWRAPENCODER\"},\"UNWRAPSIZE\":{\"description\":\"Extracts the size (number of datapoints) of wrapped Geo Time Series™ instances.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `size` Decoded Geo Time Series™ size.\\n\\n@param `lsize` List of decoded Geo Time Series™ sizes.\\n\\n\",\"signature\":\"wrapped<STRING>  UNWRAPSIZE  size<LONG>\\nwrappedbytes<BYTES>  UNWRAPSIZE  size<LONG>\\nlwrapped<LIST<STRING>>  UNWRAPSIZE  lsize<LIST<LONG>>\\nlwrapped<LIST<BYTES>>  UNWRAPSIZE  lsize<LIST<LONG>>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPSIZE\"},\"UPDATE\":{\"description\":\"Pushes Geo Time Series™ data to the Warp 10 instance.\\n\\nThe `UPDATE` function allows you to push data directly from your WarpScript code without having to retrieve the data and use the `/update` endpoint.\\n\\nThe GTS or Encoder instances to push *MUST* have a non empty name and in the case of Geo Time Series™ *MUST* have been renamed (to avoid pushing data by mistake which could override existing data you just retrieved).\\n\\n@param `token` Write token to use for pushing the data.\\n\\n@param `gts` Geo Time Series™ to push.\\n\\n@param `encoder` GTS Encoder to push.\\n\\n@param `list` List containing Geo Time Series™ and/or GTS Encoder instances to push.\\n\\n\",\"signature\":\"gts<GTS> token<STRING>  UPDATE \\nencoder<GTSENCODER> token<STRING>  UPDATE \\nlist<LIST<GTS>> token<STRING>  UPDATE \\nlist<LIST<GTSENCODER>> token<STRING>  UPDATE \",\"tags\":[\"gts\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"UPDATE\"},\"UPDATEOFF\":{\"description\":\"Disables update operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when an update operation is attempted.\\n\\n\",\"signature\":\"message<STRING> secret<STRING>  UPDATEOFF \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEOFF\"},\"UPDATEON\":{\"description\":\"Enables update operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"signature\":\"secret<STRING>  UPDATEON \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEON\"},\"URLDECODE\":{\"description\":\"Decodes a [URL encoded](https://en.wikipedia.org/wiki/Percent-encoding) STRING.\\n\\n@param `encoded` Encoded STRING to decode.\\n\\n@param `decoded` Decoded STRING.\\n\\n\",\"signature\":\"encoded<STRING>  URLDECODE  decoded<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLDECODE\"},\"URLENCODE\":{\"description\":\"Encodes a STRING using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and replacing occurrences of '+' with '%20'.\\n\\nThe character set used is [UTF-8](https://en.wikipedia.org/wiki/UTF-8).\\n\\n@param `string` Input STRING to encode.\\n\\n@param `encoded` Encoded version of 'string' using the UTF-8 character set.\\n\\n\",\"signature\":\"string<STRING>  URLENCODE  encoded<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLENCODE\"},\"URLFETCH\":{\"description\":\"The `URLFETCH` function sends HTTP(S) GET requests, waits for the responses and puts them on the stack.\\n\\nFor security reasons, the stack must be authenticated for this function to work, see [`AUTHENTICATE`](/doc/AUTHENTICATE).\\n\\nSince 2.7.0, this function also accepts a MAP of headers.\\n\\n@param `url` The URL to send the GET request to. Must begin with `http://` or `https://`.\\n\\n@param `urls` The list of URLs to send the GET requests to. Each URL must begin with `http://` or `https://`. \\n\\n@param `result` A list containing, for each URL, a 4-element list. These 4-element lists contain, in this order, a LONG status code, a STRING status message or an empty STRING if not available, a MAP of headers and a STRING representing a bytes array encoded as base 64.\\n\\n@param `headers` \\n\\n\",\"signature\":\"url<STRING>  URLFETCH  result<LIST<LIST>>\\nurl<STRING> headers<MAP>  URLFETCH  result<LIST<LIST>>\\nurls<LIST<STRING>>  URLFETCH  result<LIST<LIST>>\\nurls<LIST<STRING>> headers<MAP>  URLFETCH  result<LIST<LIST>>\",\"tags\":[\"extensions\",\"web\"],\"since\":\"1.0.2\",\"OPB64name\":\"URLFETCH\"},\"UUID\":{\"description\":\"Pushes onto the stack a randomly generated [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).\\n\\n@param `uuid` Generated UUID string\\n\\n\",\"signature\":\" UUID  uuid<STRING>\",\"tags\":[\"misc\"],\"since\":\"1.0.0\",\"OPB64name\":\"UUID\"},\"V->\":{\"description\":\"The `V->` function converts a Vector (VLIST) on top of the stack into a list.\\n\\n@param `list` Input Vector.\\n\\n@param `result` Result list.\\n\\n\",\"signature\":\"list<VLIST>  V->  result<LIST>\",\"tags\":[\"lists\",\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"KXoy\"},\"VALUEDEDUP\":{\"description\":\"Deletes duplicated values of the Geo Time Series™.\\n\\nThe `VALUEDEDUP` function takes as parameter a **GTS** or a **LIST** of **GTS** and it removes its duplicate values.\\n\\nExpects a boolean indicating whether we keep the oldest or most recent datapoint for a given value.\\n\\n@param `order` Boolean value, true for keeping the oldest datapoint for a given value, false otherwise.\\n\\n@param `gts` Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `lgts` List of Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `dedupgts` Geo Time Series™ with unique values.\\n\\n@param `ldedupgts` List of Geo Time Series™ with unique values.\\n\\n\",\"signature\":\"gts<GTS> order<BOOLEAN>  VALUEDEDUP  dedupgts<GTS>\\nlgts<LIST<GTS>> order<BOOLEAN>  VALUEDEDUP  ldedupgts<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEDEDUP\"},\"VALUEHISTOGRAM\":{\"description\":\"Produces the value histogram of a Geo Time Series™ or (since 2.2.0) of a GTS Encoder.\\n\\nThe histogram is a map with an entry for each value (used as the map key), with an associated value equal to the number of occurrences of the value in the series.\\n\\nIf the input is a bucketized Geo Time Series™, the `NULL` key will have an associated value which is the number of buckets without values (assuming no datapoints were added at timestamps other than those of buckets).\\n\\nWhen the input is a GTS Encoder, keys may be BigDecimal, LONG, DOUBLE, BOOLEAN or STRING, binary values are not used as keys, their STRING representation (in ISO-8859-1) is used.\\n\\n@param `gts` Geo Time Series™ for which to compute the histogram\\n\\n@param `encoder` GTS Encoder for which to compute the histogram\\n\\n@param `histogram` The value histogram for the input Geo Time Series™ or GTS Encoder\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders\\n\\n@param `lhistogram` The list of value histogram maps\\n\\n\",\"signature\":\"gts<GTS>  VALUEHISTOGRAM  histogram<MAP>\\nencoder<GTSENCODER>  VALUEHISTOGRAM  histogram<MAP>\\nlist<LIST<GTS>>  VALUEHISTOGRAM  lhistogram<LIST<MAP>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEHISTOGRAM\"},\"VALUELIST\":{\"description\":\"Gets values from a **MAP**.\\n\\nThe function `VALUELIST` extracts the values of a **MAP** on the top of the stack and pushes on the stack a list with those values. The **MAP** is consumed.\\n\\n\\n@param `map` Map for which to get the values.\\n\\n@param `values` List of values for the input MAP.\\n\\n\",\"signature\":\"map<MAP>  VALUELIST  values<LIST>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUELIST\"},\"VALUES\":{\"description\":\"Gets the values of Geo Time Series™ or encoders.\\n\\nThe `VALUES` function consumes a Geo Time Series™, an encoder or a list thereof from the stack, and it replaces each instance of Geo Time Series™ or encoder by a list of its values.\\n\\n\\n** Warning:** To be consistent with `VALUES`, use [`TICKLIST`](/doc/TICKLIST), not `TICKS`.\\n\\n\\n@param `gts` Geo Time Series™ for which to get the values.\\n\\n@param `lgts` List of Geo Time Series™ for which to get the values.\\n\\n@param `encoder` Encoder for which to get the values.\\n\\n@param `lencoder` List of encoders for which to get the values.\\n\\n@param `values` List of values from the input Geo Time Series™.\\n\\n@param `lvalues` List of list of values from the input Geo Time Series™ list.\\n\\n\",\"signature\":\"gts<GTS>  VALUES  values<LIST>\\nlgts<LIST<GTS>>  VALUES  lvalues<LIST<LIST>>\\nencoder<GTSENCODER>  VALUES  values<LIST>\\nlencoder<LIST<GTSENCODER>>  VALUES  lvalues<LIST<LIST>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUES\"},\"VALUESORT\":{\"description\":\"Sorts values of the Geo Time Series™ in ascending order.\\n\\nThe function `VALUESORT` takes the **GTS** on top of the stack and sort its values (and associated locations/elevations) in ascending order.\\n\\n@param `gts` Geo Time Series™ for which to sort the values.\\n\\n@param `sortedgts` Geo Time Series™ with sorted values.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lsortedgts` List of Geo Time Series™ with sorted values.\\n\\n\",\"signature\":\"gts<GTS>  VALUESORT  sortedgts<GTS>\\nlgts<LIST<GTS>>  VALUESORT  lsortedgts<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESORT\"},\"VALUESPLIT\":{\"description\":\"Splits Geo Time Series™ by values.\\n\\nThe function `VALUESPLIT` takes one **STRING** on top of the stack plus one **GTS** or a list of **GTS**. It splits **GTS** by values and creates a **GTS** for each different value. For each new **GTS**, the label specified in parameter will be added.\\n\\nThe new **GTS** will be sorted by value with `VALUESORT`.\\n\\n@param `label` Label to add to the new Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ to split by value.\\n\\n@param `splitedgts` List of Geo Time Series™ splited by value.\\n\\n@param `lgts` List of Geo Time Series™ to split by value.\\n\\n@param `lsplitedgts` List of Geo Time Series™ splited by value.\\n\\n\",\"signature\":\"gts<GTS> label<STRING>  VALUESPLIT  splitedgts<LIST<GTS>>\\nlgts<LIST<GTS>> label<STRING>  VALUESPLIT  lsplitedgts<LIST<LIST<GTS>>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESPLIT\"},\"VARINT->\":{\"description\":\"The `VARINT` function decodes [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoded numbers.\\n\\n@param `numbers` List of decoded numbers.\\n\\n@param `encoded` Byte array containing the encoded number(s) to decode.\\n\\n@param `count` Maximum number of `LONG`s to decode.\\n\\n@param `processed` Number of bytes which were processed to decode the numbers.\\n\\n\",\"signature\":\"encoded<BYTES>  VARINT->  numbers<LIST<LONG>>\\nencoded<BYTES> count<LONG>  VARINT->  numbers<LIST<LONG>> processed<LONG>\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"KZ4HHJtJAIs\"},\"VARS\":{\"description\":\"Extracts all variables used in a macro. The `VARS` function scans the macro for occurrences of `LOAD`, `STORE` or `CSTORE` functions and inspects the associated variable name. If such a name is not an explicit STRING, the call to `VARS` will fail with an error.\\n\\nThe list of symbols is sorted according to the number of occurrences encountered, decreasing.\\n\\n@param `macro` Macro to inspect.\\n\\n@param `vars` List of encountered symbols.\\n\\n@param `onlyPoprAndStore` Returns only variables used by POPR, CPOPR and STORE. Defaults to false.\\n\\n\",\"signature\":\"macro<MACRO>  VARS  vars<LIST<STRING>>\\nmacro<MACRO> onlyPoprAndStore<BOOLEAN>  VARS  vars<LIST<STRING>>\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"VARS\"},\"VEC->\":{\"description\":\"The `VEC->` function converts a Vector into a list.\\n\\n\\n@param `input` Vector to convert\\n\\n@param `result` list\\n\\n\",\"signature\":\"input<VECTOR>  VEC->  result<LIST>\",\"tags\":[\"lists\",\"conversion\",\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"KZK2AIs\"},\"WEBCALL\":{\"description\":\"Makes an outbound HTTP call.\\n\\nNote that the hosts which may be reached via `WEBCALL` might have been restricted through the use of the `webcall.host.patterns` Warp&nbsp;10 configuration parameter.\\n\\nThe write token is here to check you have the right to send a webcall. If the write token is valid, then the request is sent. It will never be sent in the request.\\n\\nThe call to `WEBCALL` returns a UUID on the stack. The actual request is performed asynchronously, the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`.\\n\\n@param `body` body of the request.\\n\\n@param `headers` map of additionnal http headers.\\n\\n@param `url` supported schemes are http and https.\\n\\n@param `method` `GET` or `POST` string.\\n\\n@param `token` valid write token\\n\\n@param `uuid` the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`\\n\\n\",\"signature\":\"token<STRING> method<STRING> url<STRING> headers<MAP> body<STRING>  WEBCALL  uuid<STRING>\",\"tags\":[\"web\"],\"since\":\"1.0.0\",\"OPB64name\":\"WEBCALL\"},\"WF.ADDREPO\":{\"description\":\"The `WF.ADDREPO` function allows you to add a repository to the list of repositories taken into account by the WarpFleet™ macro resolver.\\n\\nIf the URL is valid (syntactically), then it will be added at the end of the current list of repositories scanned by the resolver. All repository URLs will then be validated by the `validator` macro defined in the configuration (`warpfleet.macros.validator`). Those URLs for which the `validator` macro returned true will be retained.\\n\\nNote that the repository is only added in the scope of the current stack.\\n\\n@param `url` URL to add to the list of repositories.\\n\\n\",\"signature\":\"url<STRING>  WF.ADDREPO \",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.ADDREPO\"},\"WF.GETREPOS\":{\"description\":\"Retrieves the current list of repositories used by the WarpFleet™ resolver.\\n\\nNote that if the configuration disabled the use of this function (via `warpfleet.getrepos.disable`), the returned list will be empty even though it contains repositories.\\n\\n@param `repos` Current list of repository URLs.\\n\\n\",\"signature\":\" WF.GETREPOS  repos<LIST<STRING>>\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.GETREPOS\"},\"WF.SETREPOS\":{\"description\":\"Sets the list of repositories used by the WarpFleet™ resolver to the given value (list of valid URLs).\\n\\nEach URL is tested against WarpFleet™ validator macro to check if it is allowed. Non-valid ones are discarded.\\n\\nNote that this changes the list only for the scope of the current WarpScript execution.\\n\\n@param `repos` List of URLs to use for the WarpFleet™ resolver.\\n\\n\",\"signature\":\"repos<LIST<STRING>>  WF.SETREPOS \",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.SETREPOS\"},\"WFOFF\":{\"description\":\"The `WFOFF` function disables the WarpFleet™ Resolver. It can be re-enabled using `WFON`.\\n\\nThis is useful when you want to ensure that a macro call only looks it up locally.\\n\\n\",\"signature\":\" WFOFF \",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFOFF\"},\"WFON\":{\"description\":\"The `WFON` function enables the WarpFleet™ Resolver after it has been disabled by `WFOFF`.\\n\\n\",\"signature\":\" WFON \",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFON\"},\"WHILE\":{\"description\":\"The `WHILE` function implements a while loop. It takes two macros as arguments from the stack: the condition macro to evaluate and the macro to execute while the condition is true.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force WHILE to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `code` Macro executed on each loop\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"signature\":\"condition<MACRO> code<MACRO>  WHILE \\ncondition<MACRO> code<MACRO> index<BOOLEAN>  WHILE \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"WHILE\"},\"WHIRLPOOL\":{\"description\":\"The `WHIRLPOOL` function digests a byte array on the stack with the cryptographic hash function [Whirlpool](https://en.wikipedia.org/wiki/Whirlpool_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"input<BYTES>  WHIRLPOOL  result<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"WHIRLPOOL\"},\"WRAP\":{\"description\":\"The `WRAP` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a STRING.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAP  wrapped<STRING>\\nlencoder<GTSENCODER>  WRAP  lwrapped<LIST<STRING>>\\ngts<GTS>  WRAP  wrapped<STRING>\\nlgts<LIST<GTS>>  WRAP  lwrapped<LIST<STRING>>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"WRAP\"},\"WRAPFAST\":{\"description\":\"The `WRAPFAST` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a byte array. For fast execution, the content of the GTS is not compressed, so the resulting byte array will be larger than that produced by `WRAPRAW`.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAPFAST  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPFAST  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPFAST  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPFAST  lwrapped<LIST<BYTES>>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPFAST\"},\"WRAPMV\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPRAWOPT`, `WRAPMV` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAPMV  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPMV  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPMV  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPMV  lwrapped<LIST<BYTES>>\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPMV\"},\"WRAPMV!\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPMV`, `WRAPMV!` attempts to optimize the representation of DOUBLE values for Geo Time Series™ but unlike `WRAPMV`, it does not increase the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.        \\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAPMV!  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPMV!  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPMV!  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPMV!  lwrapped<LIST<BYTES>>\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.6.0\",\"OPB64name\":\"Kp80J3pL7F\"},\"WRAPOPT\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a STRING. The packing performed by `WRAPOPT` differs from that of [`WRAP`](/doc/WRAP) only by the fact that `WRAPOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAPOPT  wrapped<STRING>\\nlencoder<GTSENCODER>  WRAPOPT  lwrapped<LIST<STRING>>\\ngts<GTS>  WRAPOPT  wrapped<STRING>\\nlgts<LIST<GTS>>  WRAPOPT  lwrapped<LIST<STRING>>\",\"tags\":[\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPOPT\"},\"WRAPRAW\":{\"description\":\"The `WRAPRAW` function packs a Geo Time Series™ into a byte array.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAPRAW  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPRAW  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPRAW  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPRAW  lwrapped<LIST<BYTES>>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.7\",\"OPB64name\":\"WRAPRAW\"},\"WRAPRAWOPT\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES. The packing performed by `WRAPRAWOPT` differs from that of [`WRAPRAW`](/doc/WRAPRAW) only by the fact that `WRAPRAWOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"encoder<GTSENCODER>  WRAPRAWOPT  wrapped<BYTES>\\nlencoder<GTSENCODER>  WRAPRAWOPT  lwrapped<LIST<BYTES>>\\ngts<GTS>  WRAPRAWOPT  wrapped<BYTES>\\nlgts<LIST<GTS>>  WRAPRAWOPT  lwrapped<LIST<BYTES>>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPRAWOPT\"},\"WSINFO\":{\"description\":\"Displays information about WarpScript environments with a given session id. The information are returned as a map identical to that returned by [`WSPS`](/doc/WSPS):\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `session` Session of the environments to inspect.\\n\\n@param `infos` List of information about each WarpScript execution environment with 'session' as their session name.\\n\\n\",\"signature\":\"session<STRING>  WSINFO  infos<LIST<MAP>>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSINFO\"},\"WSKILL\":{\"description\":\"Kills the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP) and marking the environment as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to kill.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"signature\":\"uuid<STRING> secret<STRING>  WSKILL  status<BOOLEAN>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILL\"},\"WSKILLSESSION\":{\"description\":\"Kills the execution WarpScript programs by forcing a call to [`STOP`](/doc/STOP) and marking the environments as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `session` Session id of the WarpScript execution environments to kill.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"signature\":\"session<STRING>  WSKILLSESSION  count<LONG>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILLSESSION\"},\"WSNAME\":{\"description\":\"Modifies the name associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stack.name` in the attributes map.\\n\\nName size is limited to 128 characters.\\n\\n@param `name` Name to assign to the calling execution environment, or `NULL` to simply read the current name.\\n\\n@param `current` Name assigned to the execution environment.\\n\\n\",\"signature\":\"name<STRING>  WSNAME  current<STRING>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSNAME\"},\"WSPS\":{\"description\":\"Lists all the registers WarpScript execution environments. For each environment a map is returned with the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `procs` List of information about each registered WarpScript execution environment.\\n\\n\",\"signature\":\"secret<STRING>  WSPS  procs<LIST<MAP>>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSPS\"},\"WSSESSION\":{\"description\":\"Modifies the session id associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stackps.session` in the attributes map.\\n\\nSession id size is limited to 128 characters.\\n\\nSession can also be set by setting the `X-Warp10-WarpScriptSession` header.\\n\\nOnce the session has been set it cannot be modified.\\n\\n@param `session` Session id to assign to the calling execution environment, or NULL to simply read the current session id.\\n\\n@param `current` The session id assigned to the execution environment.\\n\\n\",\"signature\":\"session<STRING>  WSSESSION  current<STRING>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSESSION\"},\"WSSTACK\":{\"description\":\"Select the WarpScript™ (*i.e.* SNAPSHOT) format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\" WSSTACK \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"WSSTACK\"},\"WSSTOP\":{\"description\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to stop.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"signature\":\"uuid<STRING> secret<STRING>  WSSTOP  status<BOOLEAN>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOP\"},\"WSSTOPSESSION\":{\"description\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\nThe environments to stop are identified by a session id.\\n\\n@param `session` Session of the WarpScript execution environments to stop.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"signature\":\"session<STRING>  WSSTOPSESSION  count<LONG>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOPSESSION\"},\"Z->\":{\"description\":\"Unpacks LONG values from a [Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) stored in a byte array.\\n\\n@param `bitwidth` Size in bits of the LONG values to extract, from 1 to 63.\\n\\n@param `n` Number of LONG values to extract.\\n\\n@param `z` Byte array containing the Morton Code to unpack.\\n\\n@param `longs` List of extracted LONG values.\\n\\n\",\"signature\":\"z<BYTES> n<LONG> bitwidth<LONG>  Z->  longs<LIST<LONG>>\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"LXoy\"},\"ZDISCORDS\":{\"description\":\"The `ZDISCORDS` function detects discords in a standardized ([`STANDARDIZE`](/doc/STANDARDIZE) Geo Time Series™. The discord detection\\n algorithm is based on identifying outlier patterns in the Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `ZDISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\nGiven the `ZDISCORDS` expects the Geo Time Series™ it operates on to be standardized ([`STANDARDIZE`](/doc/STANDARDIZE), the discord detection \\nalgorithm is more sensitive than that of [`DISCORDS`](/doc/DISCORDS).\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0.\\n\\n@param `overlapping` Flag indicating whether or not the `ZDISCORDS` function should report overlapping discords.\\n\\n@param `maximum` The maximum number of discords to identify.\\n\\n@param `window_size` Window size which is the width of each interval on which the pattern extraction should be performed, a pattern length which will determine how the window is segmented, and lastly a quantization scale which will determine how many different buckets will be used to ventilate the series values. (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `result` Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™.\\n\\n\",\"signature\":\"window_size<LONG> maximum<LONG> overlapping<BOOLEAN> distance<DOUBLE>  ZDISCORDS  result<GTS>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZDISCORDS\"},\"ZDTW\":{\"description\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be Z-normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"signature\":\"gts1<GTS> gts2<GTS> threshold<DOUBLE>  ZDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> characteristic<STRING>  ZDTW  dtw<DOUBLE>\\ngts1<GTS> gts2<GTS> threshold<DOUBLE> distance<STRING> characteristic<STRING>  ZDTW  dtw<DOUBLE>\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"ZDTW\"},\"ZIP\":{\"description\":\"The function ZIP takes a list of lists as parameters. Each list which are not singletons must be of same size.\\n\\nIt returns a list of lists where the i-th list contains the i-th elements of each input list in the same order.\\n\\nAlso, it considers singletons as a list of the same size with a duplicated value.\\n\\n@param `input` List of lists\\n\\n@param `output` List of lists\\n\\n\",\"signature\":\"input<LIST<LIST>>  ZIP  output<LIST<LIST>>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZIP\"},\"ZPATTERNDETECTION\":{\"description\":\"The `ZPATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`ZPATTERNS`](/doc/ZPATTERNS) or [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe `ZPATTERNDETECTION` does not standardize the datapoints in the sliding window, assuming (wrongly) they already are.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `ZPATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform.\\n\\n@param `gts` The single GTS to transform.\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it.\\n\\n@param `lresult` The list of result GTS.\\n\\n\",\"signature\":\"gts<GTS> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNDETECTION  result<GTS>\\nlgts<LIST<GTS>> patterns<LIST<STRING>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNDETECTION  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNDETECTION\"},\"ZPATTERNS\":{\"description\":\"Extracts symbolic patterns from Geo Time Series™ as [`PATTERNS`](/doc/PATTERNS) does, but does not standardize each window, assuming (wrongly) the GTS windows are already standardized.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"signature\":\"gts<GTS> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNS  result<GTS>\\nlgts<LIST<GTS>> wsize<NUMBER> length<NUMBER> scale<NUMBER>  ZPATTERNS  lresult<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNS\"},\"ZSCORE\":{\"description\":\"The 'ZSCORE' function consumes a flag, then normalizes a Geo Time Series™ or a **LIST** of Geo Time Series™ that are below by replacing their values by their [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe flag indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median).\\n\\nIf the GTS isn’t of type **DOUBLE** or if the deviation equals 0, an exception is raised.\\n\\n@param `flag` Indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"signature\":\"gts<GTS> flag<BOOLEAN>  ZSCORE  result<GTS>\\ngtsList<LIST<GTS>> flag<BOOLEAN>  ZSCORE  resultList<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORE\"},\"ZSCORETEST\":{\"description\":\"The ZSCORETEST function detects outliers in a GTS by comparing the Z-score of its values with a given threshold.\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median). If this value is greater than the given threshold, it is flagged as an outlier.\\n\\nA LIST of ticks, corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n@param `gts` The Geo Time Series™ to test\\n\\n@param `result` List of the detected outliers timestamps\\n\\n@param `lgts` The list of Geo Time Series™ to test\\n\\n@param `lresult` List of list of the detected outliers timestamps\\n\\n@param `mad` False: use the mean/sigma, true: use the median/mad to calculate the Z-score\\n\\n@param `trigger` Optional threshold. Default value is 3.5\\n\\n\",\"signature\":\"gts<GTS> mad<BOOLEAN>  ZSCORETEST  result<LIST<LONG>>\\nlgts<LIST<GTS>> mad<BOOLEAN>  ZSCORETEST  lresult<LIST<LIST<LONG>>>\\ngts<GTS> mad<BOOLEAN> trigger<DOUBLE>  ZSCORETEST  result<LIST<LONG>>\\nlgts<LIST<GTS>> mad<BOOLEAN> trigger<DOUBLE>  ZSCORETEST  lresult<LIST<LIST<LONG>>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORETEST\"},\"[\":{\"description\":\"Starts a list creation.\\n\\nThe `[` function creates a list by pushing a mark onto the stack. This is a syntactic help to better present list constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"signature\":\" [  mark<MARK>\",\"tags\":[\"lists\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lk\"},\"[[\":{\"description\":\"Pushes a MARK on the stack. This is a syntactic help to better present Vector (VLIST) constructions.\\n \\n\\n@param `mark` A MARK instance.\\n\\n\",\"signature\":\" [[  mark<MARK>\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"Lpg\"},\"[[]]\":{\"description\":\"Pushes an empty Vector onto the stack.\\n\\n@param `vector` Empty Vector.\\n\\n\",\"signature\":\" [[]]  vector<VLIST>\",\"tags\":[\"lists\"],\"since\":\"1.2.13\",\"OPB64name\":\"LphSMF\"},\"[]\":{\"description\":\"The [] function creates an empty LIST on the top of the stack.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newlist` list instance, initialized with content.\\n\\n\",\"signature\":\"content<ANY>  []  newlist<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lpo\"},\"]\":{\"description\":\"Closes a currently open list and pushes it onto the stack.\\n\\n  The `]` function pops from the stack the elements of the list up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"signature\":\"mark<MARK> v1<ANY> vN<ANY>  ]  list<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"MF\"},\"]]\":{\"description\":\"Closes a currently open Vector (VLIST) and pushes it onto the stack. The elements on the stack are those up to the first mark encountered. The mark is discarded.\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"signature\":\"mark<MARK> v1<ANY> vN<ANY>  ]]  list<VLIST>\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"MKo\"},\"^\":{\"description\":\"Performs a bitwise **XOR** operation.\\n\\nThe `^` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **XOR**.\\n\\nSince Warp 10™ 2.1, `^` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be XOR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with XOR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts XOR with mask\\n\\n\",\"signature\":\"p1<LONG> p2<LONG>  ^  result<LONG>\\ninputgts<GTS> mask<LONG>  ^  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  ^  outputgts<GTS>\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"MV\"},\"babbage\":{\"description\":\"The `babbage` function returns 1000.\\n\\nThe unit is named after [Charles Babbage](https://en.wikipedia.org/wiki/Charles_Babbage).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" babbage  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"babbage\"},\"bucketizer.and\":{\"description\":\"The `bucketizer.and` function applies the logical operator **AND** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.and  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.and\"},\"bucketizer.count\":{\"description\":\"The `bucketizer.count` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.count  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count\"},\"bucketizer.count.exclude-nulls\":{\"description\":\"**Deprecated**: `bucketizer.count.exclude-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.exclude-nulls` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.count.exclude-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.exclude-nulls\"},\"bucketizer.count.include-nulls\":{\"description\":\"**Deprecated**: `bucketizer.count.include-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.include-nulls function computes the number of values, including null values, found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.count.include-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.include-nulls\"},\"bucketizer.count.nonnull\":{\"description\":\"The `bucketizer.count.nonnull` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.count.nonnull  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.nonnull\"},\"bucketizer.first\":{\"description\":\"The `bucketizer.first` function returns the first value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.first` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.first  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.first\"},\"bucketizer.join\":{\"description\":\"The `bucketizer.join` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"separator<STRING>  bucketizer.join  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join\"},\"bucketizer.join.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.join.forbid-nulls` has the same behavior as `bucketizer.join`, use `bucketizer.join` instead.\\n\\nThe `bucketizer.join.forbid-nulls` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"separator<STRING>  bucketizer.join.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join.forbid-nulls\"},\"bucketizer.last\":{\"description\":\"The `bucketizer.last` function returns the last value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.last` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.last  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.last\"},\"bucketizer.mad\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) of each bucket.\\n\\nThe returned location is the median of all the locations in the bucket, and the returned elevation is the median of all the elevations in the bucket.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.mad  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.0\",\"OPB64name\":\"bucketizer.mad\"},\"bucketizer.max\":{\"description\":\"The `bucketizer.max` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.max  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max\"},\"bucketizer.max.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.max.forbid-nulls` has the same behavior as `bucketizer.max`, use `bucketizer.max` instead.\\n\\nThe `bucketizer.max.forbid-nulls` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\nThe `bucketizer.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.max.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max.forbid-nulls\"},\"bucketizer.mean\":{\"description\":\"The `bucketizer.mean` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.mean  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean\"},\"bucketizer.mean.circular\":{\"description\":\"The `bucketizer.mean.circular` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`bucketizer.mean.circular.exclude-nulls`](/doc/bucketizer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `bucketizer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"modulo<NUMBER>  bucketizer.mean.circular  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular\"},\"bucketizer.mean.circular.exclude-nulls\":{\"description\":\"**Deprecated**: `bucketizer.mean.circular.exclude-nulls` has the same behavior as `bucketizer.mean.circular`, use `bucketizer.mean.circular` instead.\\n        \\nThe `bucketizer.mean.circular.exclude-nulls` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"modulo<NUMBER>  bucketizer.mean.circular.exclude-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular.exclude-nulls\"},\"bucketizer.mean.exclude-nulls\":{\"description\":\"**Deprecated**: `bucketizer.mean.exclude-nulls` has the same behavior as `bucketizer.mean`, use `bucketizer.mean` instead.\\n \\nThe `bucketizer.mean.exclude-nulls` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.mean.exclude-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.exclude-nulls\"},\"bucketizer.median\":{\"description\":\"The `bucketizer.median` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.median  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.median\"},\"bucketizer.median.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.median.forbid-nulls` has the same behavior as `bucketizer.median`, use `bucketizer.median` instead.\\n\\nThe `bucketizer.median.forbid-nulls` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.median.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"2.4.0\",\"OPB64name\":\"bucketizer.median.forbid-nulls\"},\"bucketizer.min\":{\"description\":\"The `bucketizer.min` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.min  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min\"},\"bucketizer.min.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.min.forbid-nulls` has the same behavior as `bucketizer.min`, use `bucketizer.min` instead.\\n\\nThe `bucketizer.min.forbid-nulls` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.min.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min.forbid-nulls\"},\"bucketizer.or\":{\"description\":\"The `bucketizer.or` function applies the logical operator **OR** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.or  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.or\"},\"bucketizer.percentile\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"percentile<NUMBER>  bucketizer.percentile  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  bucketizer.percentile  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile\"},\"bucketizer.percentile.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.percentile.forbid-nulls` has the same behavior as `bucketizer.percentile`, use `bucketizer.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"percentile<NUMBER>  bucketizer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  bucketizer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile.forbid-nulls\"},\"bucketizer.rms\":{\"description\":\"The `bucketizer.rms` function returns the root mean square of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are the last one encountered for each bucket.\\n\\nThe `bucketizer.rms` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.rms  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.18\",\"OPB64name\":\"bucketizer.rms\"},\"bucketizer.sd\":{\"description\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  bucketizer.sd  result<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd\"},\"bucketizer.sd.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.sd.forbid-nulls` has the same behavior as `bucketizer.sd`, use `bucketizer.sd` instead.\\n\\nThis bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  bucketizer.sd.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd.forbid-nulls\"},\"bucketizer.sd.welford\":{\"description\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.sd`](/doc/bucketizer.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  bucketizer.sd.welford  result<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.sd.welford\"},\"bucketizer.sum\":{\"description\":\"The `bucketizer.sum` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.sum  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum\"},\"bucketizer.sum.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.sum.forbid-nulls` has the same behavior as `bucketizer.sum`, use `bucketizer.sum` instead.\\n\\nThe `bucketizer.sum.forbid-nulls` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\" bucketizer.sum.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum.forbid-nulls\"},\"bucketizer.var\":{\"description\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe `bucketizer.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  bucketizer.var  result<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var\"},\"bucketizer.var.welford\":{\"description\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.var`](/doc/bucketizer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe `bucketizer.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  bucketizer.var.welford  result<AGGREGATOR>\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var.welford\"},\"buterin\":{\"description\":\"The `buterin` function returns 1,000,000,000,000,000,000.\\n\\nThe unit is named after [Vitalik Buterin](https://en.wikipedia.org/wiki/Vitalik_Buterin).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" buterin  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"buterin\"},\"d\":{\"description\":\"Converts a number of days (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of days from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of days to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of days\\n\\n\",\"signature\":\"input<NUMBER>  d  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"d\"},\"e\":{\"description\":\"Alias of [E](/doc/GF).\\n\\nThe `e` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"signature\":\" e  eValue<DOUBLE>\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"OF\"},\"eth\":{\"description\":\"The `eth` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" eth  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"eth\"},\"ether\":{\"description\":\"The `ether` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" ether  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"ether\"},\"filler.interpolate\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with a linear interpolation of enclosing values in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading or trailing ticks as there is no possible interpolation.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\" filler.interpolate  filler<FILLER>\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.interpolate\"},\"filler.next\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with the next value in a Geo Time Series™.\\n\\nNote that this function will not fill missing trailing ticks as there is no next value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\" filler.next  filler<FILLER>\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.next\"},\"filler.previous\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with the previous value in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading ticks as there is no previous value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\" filler.previous  filler<FILLER>\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.previous\"},\"filler.trend\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with the centroid of the points computed by projecting trends from both sides of the missing point.\\n\\nNote that this function will fill all missing points.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\" filler.trend  filler<FILLER>\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.trend\"},\"filter.all.eq\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.all.eq  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.eq  result<FILTER>\\nfilter-value<BOOLEAN>  filter.all.eq  result<FILTER>\\nfilter-value<STRING>  filter.all.eq  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.eq\"},\"filter.all.ge\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.all.ge  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.ge  result<FILTER>\\nfilter-value<STRING>  filter.all.ge  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ge\"},\"filter.all.gt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.all.gt  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.gt  result<FILTER>\\nfilter-value<STRING>  filter.all.gt  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.gt\"},\"filter.all.le\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.all.le  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.le  result<FILTER>\\nfilter-value<STRING>  filter.all.le  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.le\"},\"filter.all.lt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.all.lt  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.lt  result<FILTER>\\nfilter-value<STRING>  filter.all.lt  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.lt\"},\"filter.all.ne\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value does not equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.all.ne  result<FILTER>\\nfilter-value<DOUBLE>  filter.all.ne  result<FILTER>\\nfilter-value<BOOLEAN>  filter.all.ne  result<FILTER>\\nfilter-value<STRING>  filter.all.ne  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ne\"},\"filter.any.eq\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.any.eq  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.eq  result<FILTER>\\nfilter-value<BOOLEAN>  filter.any.eq  result<FILTER>\\nfilter-value<STRING>  filter.any.eq  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.eq\"},\"filter.any.ge\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.any.ge  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.ge  result<FILTER>\\nfilter-value<STRING>  filter.any.ge  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ge\"},\"filter.any.gt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.any.gt  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.gt  result<FILTER>\\nfilter-value<STRING>  filter.any.gt  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.gt\"},\"filter.any.le\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.any.le  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.le  result<FILTER>\\nfilter-value<STRING>  filter.any.le  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.le\"},\"filter.any.lt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.any.lt  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.lt  result<FILTER>\\nfilter-value<STRING>  filter.any.lt  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.lt\"},\"filter.any.ne\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.any.ne  result<FILTER>\\nfilter-value<DOUBLE>  filter.any.ne  result<FILTER>\\nfilter-value<BOOLEAN>  filter.any.ne  result<FILTER>\\nfilter-value<STRING>  filter.any.ne  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ne\"},\"filter.byattr\":{\"description\":\"This filter function only selects the Geo Time Series™ whose attributes match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter<MAP>  filter.byattr  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.byattr\"},\"filter.byclass\":{\"description\":\"This filter function only selects the Geo Time Series™ whose class name matches the filter parameter.\\n\\n@param `filter` The filter parameter is a **STRING**, if it starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter<STRING>  filter.byclass  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.byclass\"},\"filter.bylabels\":{\"description\":\"This filter function only selects the Geo Time Series™ whose labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter<MAP>  filter.bylabels  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bylabels\"},\"filter.bylabelsattr\":{\"description\":\"This filter function only selects the Geo Time Series™ whose attributes or labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes or labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter<MAP>  filter.bylabelsattr  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.bylabelsattr\"},\"filter.bymetadata\":{\"description\":\"Filter GTSs by retaining those whose metadata **exactly** match at least one metadata from the given GTS list. \\n\\nThe metadata consists of the classname and labels.\\n\\n@param `lgts` List of GTSs to extract the metadata from.\\n\\n@param `filter` Filter to apply which will keep only GTSs with exact metadata matching.\\n\\n\",\"signature\":\"lgts<LIST<GTS>>  filter.bymetadata  filter<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bymetadata\"},\"filter.byselector\":{\"description\":\"This filter allow to select GTS with a standard or an extended selector.\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"selector<STRING>  filter.byselector  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.byselector\"},\"filter.bysize\":{\"description\":\"Filter GTSs by retaining those whose size is contained between specified bounds (inclusive).\\n\\n@param `min` The minimum size\\n\\n@param `max` The maximum size\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"min<LONG> max<LONG>  filter.bysize  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.bysize\"},\"filter.last.eq\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.last.eq  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.eq  result<FILTER>\\nfilter-value<BOOLEAN>  filter.last.eq  result<FILTER>\\nfilter-value<STRING>  filter.last.eq  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.eq\"},\"filter.last.ge\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.last.ge  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.ge  result<FILTER>\\nfilter-value<STRING>  filter.last.ge  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ge\"},\"filter.last.gt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.last.gt  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.gt  result<FILTER>\\nfilter-value<STRING>  filter.last.gt  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.gt\"},\"filter.last.le\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is less or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.last.le  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.le  result<FILTER>\\nfilter-value<STRING>  filter.last.le  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.le\"},\"filter.last.lt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is less than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.last.lt  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.lt  result<FILTER>\\nfilter-value<STRING>  filter.last.lt  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.lt\"},\"filter.last.ne\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter-value<LONG>  filter.last.ne  result<FILTER>\\nfilter-value<DOUBLE>  filter.last.ne  result<FILTER>\\nfilter-value<BOOLEAN>  filter.last.ne  result<FILTER>\\nfilter-value<STRING>  filter.last.ne  result<FILTER>\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ne\"},\"filter.latencies\":{\"description\":\"Pushes onto the stack a *pseudo* FILTER which computes latencies in a network. It uses the [`FILTER`](/doc/FILTER) framework for conveniency but really returns new GTS.\\n\\nThe input Geo Time Series™ are assumed to have values which are fingerprints of packet payloads. The first GTS is assumed to be the *uplink* and all the other GTS the *downlinks*.\\n\\nThe ticks are the time at which a packet with the given fingerprint was observed.\\n\\nThe generated Geo Time Series™ will have the same ticks as the uplink one, except the values will be latencies instead of packet fingerprints.\\n\\nThe `filter.latencies` function accepts a number of options:\\n\\n| Option | Description |\\n|--------|-------------|\\n| uplink.latency.min | Compute minimum latency on the uplink. |\\n| uplink.latency.max | Compute maximum latency on the uplink. |\\n| downlink.latency.min | Compute minimum latency on each downlink. |\\n| downlink.latency.max | Compute maximum latency on each downlink. |\\n| downlink.matches | Compute the number of matches for each downlink. |\\n| downlinks.totalmatches | Computes the total number of matches across downlinks. |\\n| downlinks.bitsets | Computes a bitset of downlinks which saw the packet (limited to 64 downlinks). |\\n| downlinks.withmatches | Computes the number of downlinks with matches for the given packet. |\\n\\nThis pseudo FILTER is very specific to a networking use case, but it is a good demonstration of the power of WarpScript and its frameworks.\\n\\n@param `options` List of options, see above for their description.\\n\\n@param `maxLatency` Maximum allowable latency, packets with latency above this threshold are ignored.\\n\\n@param `minLatency` Minimum latency, packets with a latency below this threshold are ignored.\\n\\n@param `filter` Instance of `filter.latencies`.\\n\\n\",\"signature\":\"minLatency<LONG> maxLatency<LONG> options<LIST<STRING>>  filter.latencies  filter<FILTER>\",\"tags\":[\"filter\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.latencies\"},\"finney\":{\"description\":\"The `finney` function returns 1,000,000,000,000,000.\\n\\nThe unit is named after [Hal Finney](https://en.wikipedia.org/wiki/Hal_Finney_(computer_scientist)).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" finney  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"finney\"},\"gwei\":{\"description\":\"The `gwei` function returns 1,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" gwei  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"gwei\"},\"h\":{\"description\":\"Converts a number of hours (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of hours from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of hours to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of hours\\n\\n\",\"signature\":\"input<NUMBER>  h  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"h\"},\"kwei\":{\"description\":\"The `kwei` function returns 1000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" kwei  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"kwei\"},\"lovelace\":{\"description\":\"The `lovelace` function returns 1,000,000.\\n\\nThe unit is named after [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" lovelace  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"lovelace\"},\"m\":{\"description\":\"Converts a number of minutes (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of minutes from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of minutes to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of minutes\\n\\n\",\"signature\":\"input<NUMBER>  m  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"m\"},\"mapper.abs\":{\"description\":\"This mapper function returns the absolute value of single value in a sliding window.\\n\\nThe `mapper.abs` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.abs  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.abs\"},\"mapper.add\":{\"description\":\"This mapper function adds a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.add` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.add` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Value to add\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<DOUBLE>  mapper.add  result<AGGREGATOR>\\nconstant<LONG>  mapper.add  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.add\"},\"mapper.and\":{\"description\":\"This mapper function applies the logical operator **AND** on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.and  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.and\"},\"mapper.ceil\":{\"description\":\"This mapper function rounds the single value in a sliding window to the closests greater **LONG**.\\n\\nThe `mapper.ceil` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.ceil  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.ceil\"},\"mapper.count\":{\"description\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.count  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count\"},\"mapper.count.exclude-nulls\":{\"description\":\"**Deprecated**: `mapper.count.exclude-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.count.exclude-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.exclude-nulls\"},\"mapper.count.include-nulls\":{\"description\":\"**Deprecated**: `mapper.count.include-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.count.include-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.include-nulls\"},\"mapper.count.nonnull\":{\"description\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.count.nonnull  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.nonnull\"},\"mapper.day\":{\"description\":\"This mapper function returns the day of the tick for which it is computed.\\n\\nThe `mapper.day` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n@param `timezone` Timezone to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"timezone<STRING>  mapper.day  result<AGGREGATOR>\\noffset<NUMBER>  mapper.day  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.day\"},\"mapper.delta\":{\"description\":\"This mapper function computes the delta between the last and first values (delta = last - first) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.delta` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does \\nnot return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.delta  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.delta\"},\"mapper.dotproduct\":{\"description\":\"The `mapper.dotproduct` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"vector<LIST>  mapper.dotproduct  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct\"},\"mapper.dotproduct.positive\":{\"description\":\"The `mapper.dotproduct.positive` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it sets all negative results to 0.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"vector<LIST>  mapper.dotproduct.positive  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.positive\"},\"mapper.dotproduct.sigmoid\":{\"description\":\"The `mapper.dotproduct.sigmoid` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the sigmoid of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"vector<LIST>  mapper.dotproduct.sigmoid  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.sigmoid\"},\"mapper.dotproduct.tanh\":{\"description\":\"The `mapper.dotproduct.tanh` function consumes a vector as parameter (a **LIST* of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the \\n[hyperbolic tangent](https://en.wikipedia.org/wiki/Hyperbolic_function) of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"vector<LIST>  mapper.dotproduct.tanh  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.tanh\"},\"mapper.eq\":{\"description\":\"This mapper function returns the first value in a sliding window which is equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.eq` function can be applied to data of any type.\\n\\nThe `mapper.eq` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.eq  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.eq  result<AGGREGATOR>\\nparameter<BOOLEAN>  mapper.eq  result<AGGREGATOR>\\nparameter<STRING>  mapper.eq  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.eq\"},\"mapper.eq.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is equal to a given value.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.eq.elev` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.eq.elev  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.elev\"},\"mapper.eq.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is equal to a given value.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.eq.hhcode` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.eq.hhcode  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.hhcode\"},\"mapper.eq.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is equal to a given value.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.eq.lat` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.eq.lat  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.eq.lat  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lat\"},\"mapper.eq.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is equal to a given value.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.eq.lon` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.eq.lon  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.eq.lon  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lon\"},\"mapper.eq.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is equal to a given value.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.eq.tick` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.eq.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.tick\"},\"mapper.exp\":{\"description\":\"This mapper function raises a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.exp` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.exp` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\n> ## Note\\n> The `mapper.exp` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n>\\n> So you are looking for a way to apply the exponential function, ex, to a series of Geo Time Series™. It’s very easy to do it using `mapper.exp` and the\\n> [`e`](/doc/OF) constant.\\n\\n@param `result` Mapper to apply\\n\\n@param `constant` Constant to use\\n\\n\",\"signature\":\"constant<LONG>  mapper.exp  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.exp  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.exp\"},\"mapper.finite\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns its input value only if it is finite (*i.e.* a non DOUBLE or a DOUBLE which is neither NaN nor Infinity).\\n\\n@param `result` Instance of mapper.finite.\\n\\n\",\"signature\":\" mapper.finite  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.finite\"},\"mapper.first\":{\"description\":\"This mapper function returns the first value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.first` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.first  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.first\"},\"mapper.floor\":{\"description\":\"This mapper function rounds the *single value* in a sliding window to the closests lower **LONG**.\\n\\nThe `mapper.floor` function can be applied to data of type **LONG** or **DOUBLE**.      \\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.floor  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.floor\"},\"mapper.ge\":{\"description\":\"This mapper function returns the first value in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ge` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.ge` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ge  result<AGGREGATOR>\\nthreshold<STRING>  mapper.ge  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ge  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ge\"},\"mapper.ge.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ge.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ge.elev  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.elev\"},\"mapper.ge.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ge.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ge.hhcode  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.hhcode\"},\"mapper.ge.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ge.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ge.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ge.lat  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lat\"},\"mapper.ge.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ge.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ge.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ge.lon  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lon\"},\"mapper.ge.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ge.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ge.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.tick\"},\"mapper.geo.approximate\":{\"description\":\"Pushes onto the stack a mapper instance which will transform the input Geo Time Series™ by approximating the location to the given resolution.\\n\\nApproximation is done by clearing lower bits of the location [HHCode](https://en.wikipedia.org/wiki/HHCode). At resolution `R`, the lower `64 - 2R` bits are cleared.\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\n\\n\\n@param `resolution` HHCode resolution at which to approximate the locations. Resoluion is an even number between 2 (coarsest) and 32 (finest).\\n\\n@param `result` Instance of mapper.\\n\\n\",\"signature\":\"resolution<LONG>  mapper.geo.approximate  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.approximate\"},\"mapper.geo.clear\":{\"description\":\"Pushes onto the stack a mapper which will discard location and elevation information when applied to a Geo Time Series™.\\n\\nThis mapper can only be applied to single values\\n\\n@param `result` Instance of the `mapper.geo.clear` mapper.\\n\\n\",\"signature\":\" mapper.geo.clear  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.geo.clear\"},\"mapper.geo.fence\":{\"description\":\"This function produces a `mapper` which outputs a `BOOLEAN` for each point with an associated location. The value of the output is `true` if the location is inside the provided `GEOSHAPE` and `false` otherwise.\\nThe geo zone can be defined in [WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using [`GEO.WKT`](/doc/GEO.WKT) or in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) using [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `zone` Geographical zone.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"zone<GEOSHAPE>  mapper.geo.fence  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"2.7.1\",\"OPB64name\":\"mapper.geo.fence\"},\"mapper.geo.outside\":{\"description\":\"This mapper filters the Geo Time Series™, keeping only the points outside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"geoZone<GEOSHAPE>  mapper.geo.outside  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.outside\"},\"mapper.geo.within\":{\"description\":\"This mapper filters the Geo Time Series™, keeping only the points inside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"geoZone<GEOSHAPE>  mapper.geo.within  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.within\"},\"mapper.gt\":{\"description\":\"This mapper function returns the first value in a sliding window which is greater than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.gt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.gt` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.gt  result<AGGREGATOR>\\nthreshold<STRING>  mapper.gt  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.gt  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.gt\"},\"mapper.gt.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is greater than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.gt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.gt.elev  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.elev\"},\"mapper.gt.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.gt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.gt.hhcode  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.hhcode\"},\"mapper.gt.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is greater than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.gt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.gt.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.gt.lat  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lat\"},\"mapper.gt.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is greater than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.gt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.gt.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.gt.lon  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lon\"},\"mapper.gt.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is greater than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.gt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.gt.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.tick\"},\"mapper.hdist\":{\"description\":\"The `mapper.hdist` function computes the total distance traveled while going through the points in the sliding window in chronological order. This distance is in meters.\\n\\nThe distance used is the loxodromic distance aka rhumb line. As a consequence, elevation is not taken into account in the distance.\\n\\nIf a point has no position in the sliding window, it is ignored.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe `mapper.hdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `hdistMapper` A function which can be used in a mapper.\\n\\n\",\"signature\":\" mapper.hdist  hdistMapper<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hdist\"},\"mapper.highest\":{\"description\":\"This mapper function returns the value associated with the highest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the most recent is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.highest  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.highest\"},\"mapper.hour\":{\"description\":\"This mapper function returns the hour of the tick for which it is computed.\\n\\nThe `mapper.hour` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"timezone<STRING>  mapper.hour  result<AGGREGATOR>\\noffset<NUMBER>  mapper.hour  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.hour\"},\"mapper.hspeed\":{\"description\":\"This mapper function computes the horizontal speed along the path traveled in the sliding window.\\n\\nThe distance is computed by summing the distances along the rhumb line between two consecutive locations.\\n\\nIf there is only one tick in the sliding window, the speed is 0.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.hspeed` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.hspeed  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hspeed\"},\"mapper.join\":{\"description\":\"This mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"separator<STRING>  mapper.join  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join\"},\"mapper.join.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.join.forbid-nulls` has the same behavior as `mapper.join`, use `mapper.join` instead.\\n\\nThis mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"separator<STRING>  mapper.join.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join.forbid-nulls\"},\"mapper.kernel.cosine\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [cosine kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics.\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.cosine  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.cosine\"},\"mapper.kernel.epanechnikov\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using an [epanechnikov kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.epanechnikov  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.epanechnikov\"},\"mapper.kernel.gaussian\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [gaussian kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.gaussian  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.gaussian\"},\"mapper.kernel.logistic\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [logistic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.logistic  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.logistic\"},\"mapper.kernel.quartic\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [quartic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.quartic  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.quartic\"},\"mapper.kernel.silverman\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [silverman kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.silverman  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.silverman\"},\"mapper.kernel.triangular\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triangular kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.triangular  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triangular\"},\"mapper.kernel.tricube\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [tricube kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.tricube  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.tricube\"},\"mapper.kernel.triweight\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triweight kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.triweight  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triweight\"},\"mapper.kernel.uniform\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [uniform kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bandwidth<LONG> step<LONG>  mapper.kernel.uniform  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.uniform\"},\"mapper.last\":{\"description\":\"This [`mapper`](/doc/MAP) function returns the last value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.last` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.last  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.last\"},\"mapper.le\":{\"description\":\"This mapper function returns the first value in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.le` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.le` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<DOUBLE>  mapper.le  result<AGGREGATOR>\\nthreshold<LONG>  mapper.le  result<AGGREGATOR>\\nthreshold<STRING>  mapper.le  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.le\"},\"mapper.le.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.le.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.le.elev  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.elev\"},\"mapper.le.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.le.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.le.hhcode  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.hhcode\"},\"mapper.le.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.le.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.le.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.le.lat  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lat\"},\"mapper.le.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.le.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.le.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.le.lon  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lon\"},\"mapper.le.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.le.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.le.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.tick\"},\"mapper.log\":{\"description\":\"This mapper function takes the log of the **single value** in a sliding window in the base used as parameter to `mapper.log`.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.log` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.log` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\nThe `mapper.log` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n\\n@param `constant` Constant parameter\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<DOUBLE>  mapper.log  result<AGGREGATOR>\\nconstant<LONG>  mapper.log  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.log\"},\"mapper.lowest\":{\"description\":\"This mapper function returns the value associated with the lowest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the one appearing first chronologically is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.lowest  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.lowest\"},\"mapper.lt\":{\"description\":\"This mapper function returns the first value in a sliding window which is less than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.lt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.lt` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<DOUBLE>  mapper.lt  result<AGGREGATOR>\\nthreshold<LONG>  mapper.lt  result<AGGREGATOR>\\nthreshold<STRING>  mapper.lt  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.lt\"},\"mapper.lt.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is less than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.lt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.lt.elev  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.elev\"},\"mapper.lt.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.lt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.lt.hhcode  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.hhcode\"},\"mapper.lt.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is less than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.lt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.lt.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.lt.lat  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lat\"},\"mapper.lt.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is less than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.lt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.lt.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.lt.lon  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lon\"},\"mapper.lt.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is less than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.lt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.lt.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.tick\"},\"mapper.mad\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) over each sliding window.\\n\\nThe returned location is the median of all the locations in the sliding window, and the returned elevation is the median of all the elevations in the window.\\n\\n@param `result` Instance of `mapper.mad`.\\n\\n\",\"signature\":\" mapper.mad  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.2.0\",\"OPB64name\":\"mapper.mad\"},\"mapper.max\":{\"description\":\"This mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.max  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max\"},\"mapper.max.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.max.forbid-nulls` has the same behavior as `mapper.max`, use `mapper.max` instead.\\n\\nThis mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.max.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max.forbid-nulls\"},\"mapper.max.x\":{\"description\":\"This mapper function returns the max between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.max.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<DOUBLE>  mapper.max.x  result<AGGREGATOR>\\nconstant<LONG>  mapper.max.x  result<AGGREGATOR>\\nconstant<STRING>  mapper.max.x  result<AGGREGATOR>\\nconstant<BOOLEAN>  mapper.max.x  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.max.x\"},\"mapper.mean\":{\"description\":\"This mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.mean  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean\"},\"mapper.mean.circular\":{\"description\":\"This function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`mapper.mean.circular.exclude-nulls`](/doc/mapper.mean.circular.exclude-nulls) if your sliding windows may contain nulls.\\n\\nThe `mapper.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"modulo<NUMBER>  mapper.mean.circular  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular\"},\"mapper.mean.circular.exclude-nulls\":{\"description\":\"**Deprecated**: `mapper.mean.circular.exclude-nulls` has the same behavior as `mapper.mean.circular`, use `mapper.mean.circular` instead.\\n\\nThis function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular.exclude-nulls` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `mapper.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"modulo<NUMBER>  mapper.mean.circular.exclude-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular.exclude-nulls\"},\"mapper.mean.exclude-nulls\":{\"description\":\"**Deprecated**: `mapper.mean.exclude-nulls` has the same behavior as `mapper.mean`, use `mapper.mean` instead.\\n        \\nThis mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.mean.exclude-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.exclude-nulls\"},\"mapper.median\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median`.\\n\\n\",\"signature\":\" mapper.median  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.median\"},\"mapper.median.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.median.forbid-nulls` has the same behavior as `mapper.median`, use `mapper.median` instead.\\n\\nPushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median.forbid-nulls`.\\n\\n\",\"signature\":\" mapper.median.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"2.4.0\",\"OPB64name\":\"mapper.median.forbid-nulls\"},\"mapper.min\":{\"description\":\"This mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.min  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min\"},\"mapper.min.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.min.forbid-nulls` has the same behavior as `mapper.min`, use `mapper.min` instead.\\n\\nThis mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.min.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min.forbid-nulls\"},\"mapper.min.x\":{\"description\":\"This mapper function returns the min between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.min.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<DOUBLE>  mapper.min.x  result<AGGREGATOR>\\nconstant<LONG>  mapper.min.x  result<AGGREGATOR>\\nconstant<STRING>  mapper.min.x  result<AGGREGATOR>\\nconstant<BOOLEAN>  mapper.min.x  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.min.x\"},\"mapper.minute\":{\"description\":\"This mapper function returns the minute of the tick for which it is computed.\\n\\nThe `mapper.minute` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"timezone<STRING>  mapper.minute  result<AGGREGATOR>\\noffset<NUMBER>  mapper.minute  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.minute\"},\"mapper.mod\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the remainder of a value given a modulus.\\n\\nThis MAPPER can only be applied to a single value.\\n\\n@param `modulus` Modulus to consider when computing the remainder.\\n\\n@param `result` Instance of `mapper.mod`.\\n\\n\",\"signature\":\"modulus<NUMBER>  mapper.mod  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"mapper.mod\"},\"mapper.month\":{\"description\":\"This mapper function returns the month of the tick for which it is computed.\\n\\nThe `mapper.month` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"timezone<STRING>  mapper.month  result<AGGREGATOR>\\noffset<NUMBER>  mapper.month  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.month\"},\"mapper.mul\":{\"description\":\"This mapper function multiplies by a constant the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.mul` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.mul` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<LONG>  mapper.mul  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.mul  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.mul\"},\"mapper.ne\":{\"description\":\"This mapper function returns the first value in a sliding window which is not equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ne` function can be applied to data of any type.\\n\\nThe `mapper.ne` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"parameter<LONG>  mapper.ne  result<AGGREGATOR>\\nparameter<DOUBLE>  mapper.ne  result<AGGREGATOR>\\nparameter<BOOLEAN>  mapper.ne  result<AGGREGATOR>\\nparameter<STRING>  mapper.ne  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ne\"},\"mapper.ne.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is not equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ne.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ne.elev  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.elev\"},\"mapper.ne.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is not equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ne.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ne.hhcode  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.hhcode\"},\"mapper.ne.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ne.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ne.lat  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ne.lat  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lat\"},\"mapper.ne.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ne.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ne.lon  result<AGGREGATOR>\\nthreshold<DOUBLE>  mapper.ne.lon  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lon\"},\"mapper.ne.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is not equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ne.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"threshold<LONG>  mapper.ne.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.tick\"},\"mapper.npdf\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the probability of a value given a normal distribution.\\n\\n@param `mu` Mean of the normal (Gaussian) distribution to consider.\\n\\n@param `sigma` Standard deviation of the normal (Gaussian) distribution to consider.\\n\\n@param `result` Instance of `mapper.npdf`.\\n\\n\",\"signature\":\"mu<DOUBLE> sigma<DOUBLE>  mapper.npdf  result<AGGREGATOR>\",\"tags\":[\"gts\",\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.npdf\"},\"mapper.or\":{\"description\":\"This mapper function applies the logical operator OR on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.or  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.or\"},\"mapper.parsedouble\":{\"description\":\"This mapper function converts a **STRING** single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.parsedouble` function can be applied to data of type **STRING**.\\n\\nThis function expects a [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) \\nparameter in top of the mapper. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `tag` [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) parameter. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"tag<STRING>  mapper.parsedouble  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.2.5\",\"OPB64name\":\"mapper.parsedouble\"},\"mapper.percentile\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"percentile<NUMBER>  mapper.percentile  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  mapper.percentile  bucketizer<AGGREGATOR>\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile\"},\"mapper.percentile.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.percentile.forbid-nulls` has the same behavior as `mapper.percentile`, use `mapper.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"percentile<NUMBER>  mapper.percentile.forbid-nulls  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  mapper.percentile.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile.forbid-nulls\"},\"mapper.pow\":{\"description\":\"This mapper function raises the single value in a sliding window to a constant power.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.pow` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.pow` function must be parameterized with the constant.\\n\\nThe result is always of type DOUBLE.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<LONG>  mapper.pow  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.pow  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.pow\"},\"mapper.product\":{\"description\":\"This mapper function computes the product of all the values found in the sliding window.\\n\\nThe `mapper.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\nOn [bucketized](/doc/BUCKETIZE) Geo Time Series™, it is necessary to fill gaps with [`FILLVALUE`](/doc/FILLVALUE)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.product  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.product\"},\"mapper.rate\":{\"description\":\"This mapper function computes the rate of change between the first and last values (rate = (last - first) / (lastick - firsttick)) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.rate` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value. If the\\nsliding window contains less than 2 values, the rate of change will be 0.0.\\n\\nThe rate of change is expressed in units per second.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.rate  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.rate\"},\"mapper.replace\":{\"description\":\"This mapper function replaces windows with at least one value with a constant. The location and elevation returned are those associated with the most \\nrecent value in the sliding window.\\n\\n@param `constant` constant used for replacement\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"constant<LONG>  mapper.replace  result<AGGREGATOR>\\nconstant<DOUBLE>  mapper.replace  result<AGGREGATOR>\\nconstant<STRING>  mapper.replace  result<AGGREGATOR>\\nconstant<BOOLEAN>  mapper.replace  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.replace\"},\"mapper.rms\":{\"description\":\"This mapper function returns the root mean square of all the values found in each sliding window. The associated location is the last one of the window.\\n\\nThe `mapper.rms` function can only be applied to values of type **LONG** or **DOUBLE**.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.rms  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.2.18\",\"OPB64name\":\"mapper.rms\"},\"mapper.round\":{\"description\":\"This mapper function rounds the *single value* in a sliding window to the closests **LONG**.\\n\\nThe `mapper.round` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.round  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.round\"},\"mapper.sd\":{\"description\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  mapper.sd  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd\"},\"mapper.sd.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.sd.forbid-nulls` has the same behavior as `mapper.sd`, use `mapper.sd` instead.\\n\\nThis mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  mapper.sd.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd.forbid-nulls\"},\"mapper.sd.welford\":{\"description\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  mapper.sd.welford  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.sd.welford\"},\"mapper.second\":{\"description\":\"This mapper function returns the second of the tick for which it is computed.\\n\\nThe `mapper.second` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"timezone<STRING>  mapper.second  result<AGGREGATOR>\\noffset<NUMBER>  mapper.second  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.second\"},\"mapper.sigmoid\":{\"description\":\"This mapper function returns the sigmoid of *single value* in a sliding window.\\n\\nThe `mapper.sigmoid` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.sigmoid  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sigmoid\"},\"mapper.sqrt\":{\"description\":\"This mapper function computes the square root of the single value in a sliding window.\\n\\nFor negative numerics, this mapper returns **NaN**. For string values, this mapper returns 0.\\n\\nThe associated location and elevation are those of the single value.\\n\\n> ### Note\\n> The `mapper.sqrt` mapper needs a single value sliding window, i.e. pre-window and post-window to 0\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.sqrt  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.2.11\",\"OPB64name\":\"mapper.sqrt\"},\"mapper.sum\":{\"description\":\"This mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.sum  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum\"},\"mapper.sum.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.sum.forbid-nulls` has the same behavior as `mapper.sum`, use `mapper.sum` instead.\\n\\nThis mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.sum.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum.forbid-nulls\"},\"mapper.tanh\":{\"description\":\"This mapper function returns the hyperbolic tangent of *single value* in a sliding window.\\n\\nThe `mapper.tanh` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.tanh  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tanh\"},\"mapper.tick\":{\"description\":\"This mapper function returns the tick for which it is computed. The associated location and elevation are those of the selected value.\\n\\nThe `mapper.tick` function can be applied to values of any type.        \\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.tick  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.tick\"},\"mapper.toboolean\":{\"description\":\"This mapper function converts the single value in a sliding window to **BOOLEAN**.\\n\\nThe `mapper.toboolean` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.toboolean  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.toboolean\"},\"mapper.todouble\":{\"description\":\"This mapper function converts the single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.todouble` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.todouble  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.todouble\"},\"mapper.tolong\":{\"description\":\"This mapper function converts the single value in a sliding window to **LONG**.\\n\\nThe `mapper.tolong` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.tolong  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tolong\"},\"mapper.tostring\":{\"description\":\"This mapper function converts the single value in a sliding window to **STRING**.\\n\\nThe `mapper.tostring` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.tostring  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tostring\"},\"mapper.truecourse\":{\"description\":\"Pushes onto the stack a mapper which will compute the initial [true course]http://www.edwilliams.org/avform.htm#Crs) on a great circle from the first to the last datapoint in the sliding window.\\n\\nThe location and elevation of the result is that of the tick being considered.\\n\\n@param `result` Instance of mapper.truecourse.\\n\\n\",\"signature\":\" mapper.truecourse  result<AGGREGATOR>\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.truecourse\"},\"mapper.var\":{\"description\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  mapper.var  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var\"},\"mapper.var.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.var.forbid-nulls` has the same behavior as `mapper.var`, use `mapper.var` instead.\\n\\nThis mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  mapper.var.forbid-nulls  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var.forbid-nulls\"},\"mapper.var.welford\":{\"description\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.var`](/doc/mapper.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bessel<BOOLEAN>  mapper.var.welford  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.var.welford\"},\"mapper.vdist\":{\"description\":\"This mapper function computes the total distance traveled in the vertical plane in the sliding window.\\n\\nThe distance is computed by summing the distances between consecutive elevations (this differs from the computation done in [`mapper.vspeed`](/doc/mapper.vspeed))\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed distance is expressed in meters.\\n\\nThe `mapper.vdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.vdist  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vdist\"},\"mapper.vspeed\":{\"description\":\"This mapper function computes the vertical speed between the first and last readings of the sliding window. It does not compute the speed based on the total\\nvertical distance traveled in the sliding window, it only considers its extrema (it differs significantly of what is done for horizontal speed in\\n[`mapper.hspeed`](/doc/mapper.hspeed)), thus the result can be positive or negative.\\n\\nIf one of the extrema of the sliding window has no elevation, no value is returned.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.vspeed` function can be applied to data of any type since it only considers elevations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\" mapper.vspeed  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vspeed\"},\"mapper.weekday\":{\"description\":\"This mapper function returns the day of the week of the tick for which it is computed.\\n\\nThe `mapper.weekday` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"timezone<STRING>  mapper.weekday  result<AGGREGATOR>\\noffset<NUMBER>  mapper.weekday  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.weekday\"},\"mapper.year\":{\"description\":\"This mapper function returns the year of the tick for which it is computed.\\n\\nThe `mapper.year` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"timezone<STRING>  mapper.year  result<AGGREGATOR>\\noffset<NUMBER>  mapper.year  result<AGGREGATOR>\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.year\"},\"max.tick.sliding.window\":{\"description\":\"Pushes onto the stack [`MAXLONG`](/doc/MAXLONG) divided by 2, to serve as the maximum number of ticks left or right of the current tick in a [`MAP`](/doc/MAP) sliding window.\\n\\nGiven that a Geo Time Series™ can have no more than 2**32 datapoints, this value is sufficient to cover the whole GTS left or right of the current tick.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"signature\":\" max.tick.sliding.window  max<LONG>\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.tick.sliding.window\"},\"max.time.sliding.window\":{\"description\":\"Pushes onto the stack half of the minimum LONG value, to serve as a *pre* or *post* extension of a [`MAP`](/doc/MAP) sliding window in time units.\\n\\nThis value spans a lot of time but may not be enough to cover the entirety of a GTS.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"signature\":\" max.time.sliding.window  max<LONG>\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.time.sliding.window\"},\"ms\":{\"description\":\"Converts a number of milliseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of milliseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of milliseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of milliseconds\\n\\n\",\"signature\":\"input<NUMBER>  ms  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ms\"},\"mwei\":{\"description\":\"The `mwei` function returns 1,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" mwei  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"mwei\"},\"ns\":{\"description\":\"Converts a number of nanoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of nanoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of nanoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of nanoseconds\\n\\n\",\"signature\":\"input<NUMBER>  ns  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ns\"},\"op.add\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter Geo Time Series™.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator forbids null values, *i.e.* if a `null` is encountered, then there will be no result for the given tick.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.add  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.add\"},\"op.add.ignore-nulls\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter GTS.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.add.ignore-nulls  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.add.ignore-nulls\"},\"op.and\":{\"description\":\"To apply an `op.and` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.and  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and\"},\"op.and.ignore-nulls\":{\"description\":\"To apply an `op.and.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and.ignore-nulls` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.and.ignore-nulls  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and.ignore-nulls\"},\"op.div\":{\"description\":\"To apply an `op.div` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.div is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.div` operation can only operate on equivalence classes which have two GTS (if the equivalence class has more than two GTS, there is no result guaranted). It will divide at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.div  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.div\"},\"op.eq\":{\"description\":\"To apply an `op.eq` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.eq is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.eq` operation will check for equality at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.eq  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.eq\"},\"op.ge\":{\"description\":\"To apply an `op.ge` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ge` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ge` operation will check at each tick if the value of the current GTS is greater or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.ge  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ge\"},\"op.gt\":{\"description\":\"To apply an `op.gt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.gt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.gt` operation will check at each tick if the value of the current GTS is greater than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.gt  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.gt\"},\"op.le\":{\"description\":\"To apply an `op.le` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.le` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.le` operation will check at each tick if the value of the current GTS is lesser or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.le  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.le\"},\"op.lt\":{\"description\":\"To apply an `op.lt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.lt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.lt` operation will check at each tick if the value of the current GTS is lesser than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.lt  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.lt\"},\"op.mask\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), retains datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.mask  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mask\"},\"op.mul\":{\"description\":\"To apply an `op.mul` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.mul  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mul\"},\"op.mul.ignore-nulls\":{\"description\":\"To apply an `op.mul.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul.ignore-nulls` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.mul.ignore-nulls  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.mul.ignore-nulls\"},\"op.ne\":{\"description\":\"To apply an `op.ne` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ne` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ne` operation will check for inequality at each tick all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.ne  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ne\"},\"op.negmask\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), removes datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The operator instance.\\n\\n\",\"signature\":\" op.negmask  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.negmask\"},\"op.or\":{\"description\":\"To apply an `op.or` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.or  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or\"},\"op.or.ignore-nulls\":{\"description\":\"To apply an `op.or.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or.ignore-nulls` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.or.ignore-nulls  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or.ignore-nulls\"},\"op.sub\":{\"description\":\"To apply an `op.sub` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.sub` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe sub operator can only operate on equivalence classes which have **exactly two GTS**. It will substract at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\" op.sub  op<OPERATOR>\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.sub\"},\"pi\":{\"description\":\"Alias of [PI](/doc/J3Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"signature\":\" pi  pi<DOUBLE>\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"R5Z\"},\"ps\":{\"description\":\"Converts a number of picoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of picoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of picoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of picoseconds\\n\\n\",\"signature\":\"input<NUMBER>  ps  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ps\"},\"pwei\":{\"description\":\"The `pwei` function returns 1,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" pwei  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"pwei\"},\"reducer.and\":{\"description\":\"The `reducer.and` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.and  reducer<AGGREGATOR>\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and\"},\"reducer.and.exclude-nulls\":{\"description\":\"The `reducer.and.exclude-nulls` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ \\nwhich are in the same equivalence class, excluding nulls from the computation.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, \\nthe current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.and.exclude-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and.exclude-nulls\"},\"reducer.argmax\":{\"description\":\"The `reducer.argmax` function outputs for each tick, the tick and the concatenation separated by ‘,’ of the values of the labels for which the\\nvalue is the maximum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the maximum to report (use 0 to report all), and a **STRING**\\nparameter to choose on which label it operates.\\n\\n@param `maximum` Maximum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"label<STRING> maximum<LONG>  reducer.argmax  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmax\"},\"reducer.argmin\":{\"description\":\"The `reducer.argmin` function outputs for each tick, the tick and the concatenation separated by ‘,’ \\nwith the values of the labels for which the value is the minimum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the minimum to report (use 0 to report all), and a **STRING** \\nparameter to choose on which label it operates.\\n\\n@param `minimum` Minimum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"label<STRING> minimum<LONG>  reducer.argmin  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmin\"},\"reducer.count\":{\"description\":\"The `reducer.count` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe include null version, [`reducer.count.include-nulls`](/doc/reducer.count.include-nulls), will include null values when computing the count. The exclude null version, \\n[`reducer.count.exclude-nulls`](/doc/reducer.count.exclude-nulls), will exclude null values when computing the count.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.count  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count\"},\"reducer.count.exclude-nulls\":{\"description\":\"The `reducer.count.exclude-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.count.exclude-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.exclude-nulls\"},\"reducer.count.include-nulls\":{\"description\":\"The `reducer.count.include-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are included.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.count.include-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.include-nulls\"},\"reducer.count.nonnull\":{\"description\":\"The `reducer.count.nonnull` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.count.nonnull  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.nonnull\"},\"reducer.join\":{\"description\":\"The 'reducer.join' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will exclude all null values when computing the join.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"separator<STRING>  reducer.join  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join\"},\"reducer.join.forbid-nulls\":{\"description\":\"Alias of [`reducer.join.nonnull`](/doc/reducer.join.nonnull).\\n\\nThe 'reducer.join.forbid-nulls' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"separator<STRING>  reducer.join.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.forbid-nulls\"},\"reducer.join.nonnull\":{\"description\":\"Alias of [`reducer.join.forbid-nulls`](/doc/reducer.join.forbid-nulls).\\n\\nThe 'reducer.join.nonnull' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"separator<STRING>  reducer.join.nonnull  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.nonnull\"},\"reducer.join.urlencoded\":{\"description\":\"The 'reducer.join.urlencoded' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) charset.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"separator<STRING>  reducer.join.urlencoded  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.urlencoded\"},\"reducer.mad\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) for each ticks. Null values are removed before computing the MAD for each ticks.\\n\\nThe returned location is the median of all the locations and the returned elevation is the median of all the elevations.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.mad  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.2.0\",\"OPB64name\":\"reducer.mad\"},\"reducer.max\":{\"description\":\"The `reducer.max` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will exclude all null values when computing the maximum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.max  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max\"},\"reducer.max.forbid-nulls\":{\"description\":\"Alias of [`reducer.max.nonnull`](/doc/reducer.max.nonnull).\\n\\nThe `reducer.max.forbid-nulls` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.max.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.forbid-nulls\"},\"reducer.max.nonnull\":{\"description\":\"Alias of [`reducer.max.forbid-nulls`](/doc/reducer.max.forbid-nulls).\\n\\nThe `reducer.max.nonnull` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.max.nonnull  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.nonnull\"},\"reducer.mean\":{\"description\":\"The `reducer.mean` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.mean  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean\"},\"reducer.mean.circular\":{\"description\":\"The `reducer.mean.circular` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`reducer.mean.circular.exclude-nulls`](/doc/reducer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `reducer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"modulo<NUMBER>  reducer.mean.circular  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular\"},\"reducer.mean.circular.exclude-nulls\":{\"description\":\"The `reducer.mean.circular.exclude-nulls` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `reducer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"modulo<NUMBER>  reducer.mean.circular.exclude-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular.exclude-nulls\"},\"reducer.mean.exclude-nulls\":{\"description\":\"The `reducer.mean.exclude-nulls` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will exclude all null values when computing the mean.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.mean.exclude-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.exclude-nulls\"},\"reducer.median\":{\"description\":\"The `reducer.median` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.median  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.median\"},\"reducer.median.forbid-nulls\":{\"description\":\"The `reducer.median.forbid-nulls` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series™ in the same equivalence class, it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.median.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"2.4.0\",\"OPB64name\":\"reducer.median.forbid-nulls\"},\"reducer.min\":{\"description\":\"The `reducer.min` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will exclude all null values when computing the minimum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.min  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min\"},\"reducer.min.forbid-nulls\":{\"description\":\"Alias of [`reducer.min.nonnull`](/doc/reducer.min.nonnull).\\n\\nThe `reducer.min.forbid-nulls` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.min.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.forbid-nulls\"},\"reducer.min.nonnull\":{\"description\":\"Alias of [`reducer.min.forbid-nulls`](/doc/reducer.min.forbid-nulls).\\n\\nThe `reducer.min.nonnull` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.min.nonnull  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.nonnull\"},\"reducer.or\":{\"description\":\"The `reducer.or` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.or  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or\"},\"reducer.or.exclude-nulls\":{\"description\":\"The `reducer.or.exclude-nulls` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.or.exclude-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or.exclude-nulls\"},\"reducer.percentile\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"percentile<NUMBER>  reducer.percentile  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  reducer.percentile  bucketizer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile\"},\"reducer.percentile.forbid-nulls\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nFor this reducer, GTS must be aligned and must have a value for each tick of each GTS. If this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series in the same equivalence class, it throws an error.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"percentile<NUMBER>  reducer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\\npercentile<NUMBER> type<STRING>  reducer.percentile.forbid-nulls  bucketizer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile.forbid-nulls\"},\"reducer.product\":{\"description\":\"This reducer function computes the product of all the values for each tick.\\n\\nThe `reducer.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.product  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.product\"},\"reducer.rms\":{\"description\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIf one value is null, there won't be any result for the concerned tick.\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.rms  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms\"},\"reducer.rms.exclude-nulls\":{\"description\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms. Even if input GTS are misaligned, there will be one result per tick.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.rms.exclude-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms.exclude-nulls\"},\"reducer.sd\":{\"description\":\"The `reducer.sd` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.sd  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd\"},\"reducer.sd.forbid-nulls\":{\"description\":\"The `reducer.sd.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.sd.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd.forbid-nulls\"},\"reducer.sd.welford\":{\"description\":\"The `reducer.sd.welford` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.sd.welford  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford\"},\"reducer.sd.welford.forbid-nulls\":{\"description\":\"The `reducer.sd.welford.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`reducer.sd.forbid-nulls`](/doc/reducer.sd.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.sd.welford.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford.forbid-nulls\"},\"reducer.shannonentropy.0\":{\"description\":\"The `reducer.shannonentropy.0` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 0 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.shannonentropy.0  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.0\"},\"reducer.shannonentropy.1\":{\"description\":\"The `reducer.shannonentropy.1` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 1 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.shannonentropy.1  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.1\"},\"reducer.sum\":{\"description\":\"The `reducer.sum` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.sum  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum\"},\"reducer.sum.forbid-nulls\":{\"description\":\"Alias of [`reducer.sum.nonnull`](/doc/reducer.sum.nonnull).\\n\\nThe `reducer.sum.forbid-nulls` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.sum.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.forbid-nulls\"},\"reducer.sum.nonnull\":{\"description\":\"Alias of [`reducer.sum.forbid-nulls`](/doc/reducer.sum.forbid-nulls).\\n\\nThe `reducer.sum.nonnull` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\" reducer.sum.nonnull  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.nonnull\"},\"reducer.var\":{\"description\":\"The `reducer.var` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.var  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var\"},\"reducer.var.forbid-nulls\":{\"description\":\"The `reducer.var.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.var.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var.forbid-nulls\"},\"reducer.var.welford\":{\"description\":\"The `reducer.var.welford` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var`](/doc/reducer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.var.welford  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford\"},\"reducer.var.welford.forbid-nulls\":{\"description\":\"The `reducer.var.welford.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var.forbid-nulls`](/doc/reducer.var.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"bessel<BOOLEAN>  reducer.var.welford.forbid-nulls  reducer<AGGREGATOR>\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford.forbid-nulls\"},\"s\":{\"description\":\"Converts a number of seconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of seconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of seconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of seconds\\n\\n\",\"signature\":\"input<NUMBER>  s  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"s\"},\"shannon\":{\"description\":\"The `shannon` function returns 1,000,000,000.\\n\\nThe unit is named after [Claude Shannon](https://en.wikipedia.org/wiki/Claude_Shannon).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" shannon  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"shannon\"},\"szabo\":{\"description\":\"The `szabo` function returns 1,000,000,000,000.\\n\\nThe unit is named after [Nick Szabo](https://en.wikipedia.org/wiki/Nick_Szabo).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" szabo  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"szabo\"},\"twei\":{\"description\":\"The `twei` function returns 1,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" twei  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"twei\"},\"us\":{\"description\":\"Converts a number of microseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of microseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of microseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of microseconds\\n\\n\",\"signature\":\"input<NUMBER>  us  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"us\"},\"w\":{\"description\":\"Converts a number of weeks (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of weeks from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of weeks to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of weeks\\n\\n\",\"signature\":\"input<NUMBER>  w  output<LONG>\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"w\"},\"wei\":{\"description\":\"The `wei` function returns 1 as the base unit of currency.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\" wei  value<LONG>\",\"tags\":[\"extensions\"],\"OPB64name\":\"wei\"},\"{\":{\"description\":\"Starts a map creation.\\n\\nThe `{` function creates a map by pushing a mark onto the stack. This is a syntactic help to better present map constructions. This function behaves like [`MARK`].\\n\\n@param `mark` A MARK object.\\n\\n\",\"signature\":\" {  mark<MARK>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tk\"},\"{}\":{\"description\":\"The {} function creates an empty MAP on the top of the stack.\\n\\n\\n@param `newmap` Empty map instance.\\n\\n\",\"signature\":\" {}  newmap<MAP>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tro\"},\"|\":{\"description\":\"Performs a bitwise **OR** operation.\\n\\nThe `|` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **OR**.\\n \\nSince Warp 10™ 2.1, `|` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be OR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with OR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts OR with mask\\n\\n\",\"signature\":\"p1<LONG> p2<LONG>  |  result<LONG>\\ninputgts<GTS> mask<LONG>  |  maskedgts<GTS>\\ngts1<GTS> gts2<GTS>  |  outputgts<GTS>\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"U.\"},\"||\":{\"description\":\"The `||` operator is a synonymous for [`OR`](/doc/OR).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `||` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"signature\":\"p1<BOOLEAN> p2<BOOLEAN>  ||  result<BOOLEAN>\\nl<LIST>  ||  result<BOOLEAN>\\ngts1<GTS> gts2<GTS>  ||  gtsresult<GTS>\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"U6k\"},\"}\":{\"description\":\"Closes a currently open map and pushes it onto the stack.\\n\\nThe `}` function pops from the stack the elements (key/value pairs) of the map up to the first mark. The marks are consumed.\\n\\n@param `k1` The first key\\n\\n@param `v1` The first value\\n\\n@param `kN` The Nth key\\n\\n@param `vN` The Nth value\\n\\n@param `map` The built map\\n\\n@param `mark` The mark indicating the deepest level to consider when building the map\\n\\n\",\"signature\":\"mark<MARK> k1<ANY> v1<ANY> kN<ANY> vN<ANY>  }  map<MAP>\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"UF\"},\"~\":{\"description\":\"Computes the unary bitwise complement of the long value on top of the stack.\\n\\n@param `param` Value to compute\\n\\n@param `result` Bitwise result\\n\\n\",\"signature\":\"param<LONG>  ~  result<LONG>\",\"tags\":[\"operators\",\"binary\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"UV\"},\"~=\":{\"description\":\"The `~=` operator consumes three parameters from the top of the stack, two operands p1 and p2 and a tolerance factor lambda, \\nand pushes onto the stack true if *|p1-p2| < lambda*, i.e. the difference between the two operands is lesser than lambda.\\n\\nAll parameters must be of numeric types.\\n\\nThe operator `~=` is useful when making comparaisons between doubles, where floating point operations generate rounding errors.\\n\\n@param `p1` First number\\n\\n@param `p2` Second number\\n\\n@param `lambda` Tolerance factor lambda\\n\\n@param `result` \\n\\n\",\"signature\":\"p2<NUMBER> p1<NUMBER> lambda<NUMBER>  ~=  result<BOOLEAN>\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"UYo\"}};\n            ","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CancellationToken, editor, IMarkdownString, languages, Position, Range} from 'monaco-editor';\nimport HoverProvider = languages.HoverProvider;\nimport Hover = languages.Hover;\nimport ProviderResult = languages.ProviderResult;\n\nexport abstract class W10HoverProvider implements HoverProvider {\n  languageId: string;\n\n  constructor(languageId: string) {\n    this.languageId = languageId;\n  }\n\n  abstract provideHover(model: editor.ITextModel, position: Position, token: CancellationToken): languages.ProviderResult<languages.Hover>;\n\n  // noinspection JSUnusedLocalSymbols\n  _provideHover(model: editor.ITextModel, position: Position, token: CancellationToken, provider: any): ProviderResult<Hover> {\n    const word = model.getWordAtPosition(position);\n    if (!!word) {\n      const range = new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n      const name = word.word;\n      const entry = provider[name];\n      if (entry && entry.description) {\n        const signature = (entry.signature || '').split('\\n').map(s => '+ ' + s).join('\\n');\n        const contents: IMarkdownString[] = [\n          {value: '### ' + name},\n          {value: signature},\n          {value: entry.description.replace(/(\\/doc\\/\\w+)/g, x => `https://www.warp10.io${x}`)}\n        ];\n        return {range, contents: W10HoverProvider.toMarkedStringArray(contents)} as Hover;\n      }\n    }\n    return undefined;\n  }\n\n  protected static toMarkedStringArray(contents: IMarkdownString[]): IMarkdownString[] {\n    if (!contents) {\n      return void 0;\n    }\n    if (Array.isArray(contents)) {\n      return contents.map(W10HoverProvider.toMarkdownString);\n    }\n    return [W10HoverProvider.toMarkdownString(contents)];\n  }\n\n  private static toMarkdownString(entry: IMarkdownString): IMarkdownString {\n    if (typeof entry === 'string') {\n      return {value: entry};\n    }\n    return {value: entry.value};\n  }\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CancellationToken, editor, languages, Position} from 'monaco-editor';\nimport {globalfunctions as wsGlobals} from '../../../model/wsGlobals';\nimport {W10HoverProvider} from './W10HoverProvider';\nimport {EditorUtils} from './editorUtils';\nimport Hover = languages.Hover;\nimport ProviderResult = languages.ProviderResult;\n\nexport class WSHoverProvider extends W10HoverProvider {\n\n  constructor() {\n    super(EditorUtils.WARPSCRIPT_LANGUAGE);\n  }\n\n  provideHover(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Hover> {\n    return super._provideHover(model, position, token, wsGlobals);\n  }\n}\n","export class Flows {\n  static reference:any[] = [{\"name\":\"!\",\"detail\":\"!( input:BOOLEAN ): result:BOOLEAN\\n!( gtsinput:GTS ): gtsresult:GTS\",\"documentation\":\"Negates a boolean.\\n\\nThe `!` function is synonymous for [`NOT`](/doc/NOT). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nSince Warp 10™ 2.1, `!` can be applied on a boolean GTS to flip all values.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gtsinput` Since 2.1, a GTS with boolean value.\\n\\n@param `gtsresult` Since 2.1, a GTS with negated boolean value. GTS is not sorted by the operation. Metadata are kept.\\n\\n\",\"tags\":[\"logic\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7F\"},{\"name\":\"!=\",\"detail\":\"!=( p1:ANY p2:ANY ): result:BOOLEAN\\n!=( inputgts:GTS constant:ANY ): outgts:GTS\\n!=( constant:ANY inputgts:GTS ): outgts:GTS\\n!=( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Tests if both parameters are different.\\n\\nThe `!=` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are different, false otherwise.\\n\\nThe two parameters must be homogeneous of numeric, boolean or string types.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `!=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 !=` is strictly equivalent of a `42 mapper.ne` MAP operation, with a simplified syntax.\\n\\n@param `p1` First parameter to compare, anything except a GTS.\\n\\n@param `p2` Second parameter to compare, anything except a GTS.\\n\\n@param `result` True if p1 and p2 are different, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values different from constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is different from gts2 value.\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7Io\"},{\"name\":\"%\",\"detail\":\"%( divisor:LONG dividend:LONG ): modulo:LONG\\n%( divisor:DOUBLE dividend:LONG ): modulo:DOUBLE\\n%( divisor:LONG dividend:DOUBLE ): modulo:DOUBLE\\n%( divisor:DOUBLE dividend:DOUBLE ): modulo:DOUBLE\\n%( divisor:COUNTER dividend:COUNTER ): modulo:LONG\\n%( divisor:DOUBLE dividend:COUNTER ): modulo:DOUBLE\\n%( divisor:COUNTER dividend:DOUBLE ): modulo:DOUBLE\\n%( divisor:LONG dividend:COUNTER ): modulo:LONG\\n%( divisor:COUNTER dividend:LONG ): modulo:LONG\",\"documentation\":\"The `%` operator consumes two parameters from the top of the stack and pushes back the remainder of the Euclidean division of the first one by the second one.\\n\\nThe two parameters must be of numeric types.\\n\\n@param `dividend` Number divided by divisor\\n\\n@param `divisor` Number used to divide dividend\\n\\n@param `modulo` Modulo of the two given parameters\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"8F\"},{\"name\":\"&\",\"detail\":\"&( p1:LONG p2:LONG ): result:LONG\\n&( inputgts:GTS mask:LONG ): maskedgts:GTS\\n&( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Performs a bitwise **AND** operation.\\n\\nThe `&` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **AND**.\\n\\nSince Warp 10™ 2.1, `&` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be AND to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with AND between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts AND with mask\\n\\n\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"8V\"},{\"name\":\"&&\",\"detail\":\"&&( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\n&&( l:LIST ): result:BOOLEAN\\n&&( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"documentation\":\"The `&&` operator is a synonymous for [`AND`](/doc/AND).\\n\\nIt performs a logical **&&** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `&&` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical && applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with && between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"8XN\"},{\"name\":\"(\",\"detail\":\"((): mark:MARK\",\"documentation\":\"Starts a set creation.\\n\\nThe `(` function creates a set by pushing a mark onto the stack. This is a syntactic help to better present set constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9.\"},{\"name\":\"()\",\"detail\":\"()( content:ANY ): newset:SET\",\"documentation\":\"The `()` function creates an empty SET on the top of the stack.\\nA Set is a collection that cannot contain duplicate elements.\\n\\nThis is an implementation of java [HashSet](https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html). NULL object is permitted. It makes no guarantees as to the iteration order of the set.\\n\\nThe SET object could not be represented on the stack.\\nIt has to be converted in a list to be displayed.\\n\\nStoring GTS into sets do not guarantee uniqueness. each GTS has a hidden id. see example.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newset` set instance, initialized with content.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"91Z\"},{\"name\":\")\",\"detail\":\")( mark:MARK v1:ANY vN:ANY ): set:SET\",\"documentation\":\"Closes a currently open set and pushes it onto the stack.\\n\\nThe `)` function pops from the stack the elements of the set up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `set` The built set\\n\\n@param `mark` The mark indicating the deepest level to consider when building the set\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9F\"},{\"name\":\"*\",\"detail\":\"*( p1:NUMBER p2:NUMBER ): result:NUMBER\\n*( p1:VECTOR p2:NUMBER ): result:VECTOR\\n*( p1:NUMBER p2:VECTOR ): result:VECTOR\\n*( p1:MATRIX p2:NUMBER ): result:MATRIX\\n*( p1:NUMBER p2:MATRIX ): result:MATRIX\\n*( p1:MATRIX p2:VECTOR ): result:VECTOR\\n*( p1:VECTOR p2:MATRIX ): result:VECTOR\\n*( p1:MATRIX p2:MATRIX ): result:VECTOR\\n*( p2:GTS p1:GTS ): result:GTS\\n*( p2:GTS p1:NUMBER ): result:GTS\\n*( p2:NUMBER p1:GTS ): result:GTS\",\"documentation\":\"The `*` operator consumes two parameters from the top of the stack and pushes back the result of multiplying both of them.\\n\\nIf you want to multiply two matrices together, they have to be of the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Multiplication result\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"9V\"},{\"name\":\"**\",\"detail\":\"**( b:LONG n:LONG ): result:LONG\\n**( b:DOUBLE n:LONG ): result:DOUBLE\\n**( b:LONG n:DOUBLE ): result:DOUBLE\\n**( b:DOUBLE n:DOUBLE ): result:DOUBLE\\n**( b:COUNTER n:COUNTER ): result:LONG\\n**( b:DOUBLE n:COUNTER ): result:DOUBLE\\n**( b:COUNTER n:DOUBLE ): result:DOUBLE\\n**( b:COUNTER n:LONG ): result:LONG\\n**( b:LONG n:COUNTER ): result:LONG\\n**( bgts:GTS n:NUMBER ): outgts:GTS\\n**( b:NUMBER ngts:GTS ): outgts:GTS\\n**( bgts:GTS ngts:GTS ): outgts:GTS\\n**( blist:LIST n:NUMBER ): outlist:LIST\\n**( b:NUMBER nlist:LIST ): outlist:LIST\\n**( bgts:GTS n:NUMBER ): outgts:GTS\\n**( b:NUMBER ngts:GTS ): outgts:GTS\",\"documentation\":\"Returns the value of the first argument raised to the power of the second argument.\\n\\nThe `**` operator consumes two parameters from the top of the stack (a base **b** and an exponent **n**) and pushes back the result raising b to the power of n,\\ni.e. b<sup>n</sup>. For special cases see [pow()](https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#pow-double-double- \\\"javadoc\\\").\\n\\nSince 2.7.1, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nAlso since 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `b` First parameter, the base\\n\\n@param `n` Second parameter, the exponent\\n\\n@param `blist` List of bases\\n\\n@param `nlist` List of exponents\\n\\n@param `bgts` Numerical GTS of bases\\n\\n@param `ngts` Numerical GTS of exponents\\n\\n@param `result` The result of b<sup>n</sup>\\n\\n@param `outlist` List of b<sup>n</sup>\\n\\n@param `outgts` GTS of b<sup>n</sup>\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9Xc\"},{\"name\":\"+\",\"detail\":\"+( param1:STRING param2:STRING ): result:STRING\\n+( param1:LONG param2:LONG ): result:LONG\\n+( param1:DOUBLE param2:LONG ): result:DOUBLE\\n+( param1:COUNTER param2:LONG ): result:LONG\\n+( param1:LONG param2:DOUBLE ): result:DOUBLE\\n+( param1:DOUBLE param2:DOUBLE ): result:DOUBLE\\n+( param1:COUNTER param2:DOUBLE ): result:DOUBLE\\n+( param1:COUNTER param2:COUNTER ): result:LONG\\n+( param1:DOUBLE param2:COUNTER ): result:DOUBLE\\n+( param1:LONG param2:COUNTER ): result:LONG\\n+( param1:LIST param2:ANY ): result:LIST\\n+( param1:SET param2:ANY ): result:SET\\n+( param1:VECTOR param2:NUMBER ): result:VECTOR\\n+( param1:NUMBER param2:VECTOR ): result:VECTOR\\n+( param1:VECTOR param2:VECTOR ): result:VECTOR\\n+( param1:MACRO param2:MACRO ): result:MACRO\\n+( param1:MATRIX param2:NUMBER ): result:MATRIX\\n+( param1:NUMBER param2:MATRIX ): result:MATRIX\\n+( param1:MATRIX param2:MATRIX ): result:MATRIX\\n+( param2:GTS param1:GTS ): result:GTS\\n+( param2:GTS param1:DOUBLE ): result:GTS\\n+( param2:GTS param1:LONG ): result:GTS\\n+( param2:GTS param1:STRING ): result:GTS\\n+( param2:DOUBLE param1:GTS ): result:GTS\\n+( param2:LONG param1:GTS ): result:GTS\\n+( param2:STRING param1:GTS ): result:GTS\\n+( param1:BYTES param2:BYTES ): result:BYTES\",\"documentation\":\"The `+` operator consumes two parameters from the top of the stack and pushes back the result of adding them.\\n\\nThe meaning of adding depends on the type of parameter:\\n\\n- If both parameters are numbers, the result is the sum of both numbers.\\n\\n- If both parameters are strings, the result is the concatenation of both strings.\\n- If both parameters are byte arrays, the result is the concatenation of both byte arrays (version 2.1+).\\n\\n- If the first parameter is a list, the + operator clones the list and appends the second parameter to the cloned list.\\n\\n- If the first parameter is a set, the + operator clones the set and appends the second parameter to the cloned set.\\n\\n- If both parameters are macros, the result is a macro concatenating the two others in any other case + with throw an exception.\\n\\n- If the first parameter is a vector, the + operator adds the second numeric parameter to each element of the vector.\\n- If the second parameter is a vector, the + operator adds the first numeric parameter to each element of the vector.\\n- If both parameters are vectors, the + operator adds each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If the first parameter is a matrix, the + operator adds the second numeric parameter to each element of the matrix.\\n- If the second parameter is a matrix, the + operator adds the first numeric parameter to each element of the matrix.\\n- If both parameters are matrices, the + operator adds each element of matrices which are on the same index. Matrices must be the same size.\\n- If one of the parameters is a Geo Time Series™, the result will be a Geo Time Series™ of type DOUBLE.\\n\\n@param `param1` First parameter\\n\\n@param `param2` Second parameter\\n\\n@param `result` Result of the addition\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9k\"},{\"name\":\"+!\",\"detail\":\"+!( input:LIST item:ANY ): output:LIST\\n+!( input:SET item:ANY ): output:SET\",\"documentation\":\"The +! operator adds the element on top of the stack to the set or list below it. \\nThe element is added to the existing collection. \\n\\n\\n@param `input` reference to the list or set to be modified\\n\\n@param `output` copy of input list or set reference.\\n\\n@param `item` the item to append to inputlist. Depending on list content, could be any type.\\n\\n\",\"tags\":[\"lists\",\"operators\"],\"since\":\"1.2.0\",\"OPB64name\":\"9m3\"},{\"name\":\"-\",\"detail\":\"-( p1:LONG p2:LONG ): result:LONG\\n-( p1:LONG p2:DOUBLE ): result:DOUBLE\\n-( p1:DOUBLE p2:LONG ): result:DOUBLE\\n-( p1:DOUBLE p2:DOUBLE ): result:DOUBLE\\n-( p1:COUNTER p2:COUNTER ): result:LONG\\n-( p1:COUNTER p2:DOUBLE ): result:DOUBLE\\n-( p1:DOUBLE p2:COUNTER ): result:DOUBLE\\n-( p1:LONG p2:COUNTER ): result:LONG\\n-( p1:COUNTER p2:LONG ): result:LONG\\n-( p1:MATRIX p2:MATRIX ): result:MATRIX\\n-( p1:VECTOR p2:VECTOR ): result:VECTOR\\n-( p2:GTS p1:GTS ): result:GTS\\n-( p2:GTS p1:NUMBER ): result:GTS\\n-( p2:NUMBER p1:GTS ): result:GTS\",\"documentation\":\"Subtracts two parameters.\\n\\nThe `-` operator consumes two parameters from the top of the stack and pushes back the result of subtracting the second one from the first one.\\n\\n- If both parameters are numbers, the result is the subtraction of both numbers.\\n\\n- If both parameters are vectors, the - operator subtracts each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If both parameters are matrices, the - operator subtracts each element of matrices which are on the same index. Matrices must be the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Subtraction result\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"AF\"},{\"name\":\"->B58\",\"detail\":\"->B58( input:STRING ): result:STRING\\n->B58( input:BYTES ): result:STRING\",\"documentation\":\"Encodes the string on top of the stack in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58 encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIV\"},{\"name\":\"->B58C\",\"detail\":\"->B58C( input:STRING prefix:BYTES ): result:STRING\\n->B58C( input:BYTES prefix:BYTES ): result:STRING\",\"documentation\":\"Encodes the string on top of the stack in [Base58Check](https://en.bitcoin.it/wiki/Base58Check_encoding).\\n\\n@param `prefix` Prefix to use for Base58Check encoding\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58Check encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIW2\"},{\"name\":\"->B64\",\"detail\":\"->B64( input:STRING ): result:STRING\\n->B64( input:BYTES ): result:STRING\",\"documentation\":\"Encodes the string on top of the stack in [base64](https://en.wikipedia.org/wiki/Base64).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base64 encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYF\"},{\"name\":\"->B64URL\",\"detail\":\"->B64URL( input:STRING ): result:STRING\\n->B64URL( bytes:BYTES ): result:STRING\",\"documentation\":\"Encodes the string on top of the stack in [base64url](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).\\n\\n@param `input` String to encode\\n\\n@param `bytes` Byte array to encode\\n\\n@param `result` Base64url encoded string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYGKJZk\"},{\"name\":\"->BIN\",\"detail\":\"->BIN( input:STRING ): output:STRING\\n->BIN( input:BYTES ): output:STRING\\n->BIN( input:LONG ): output:STRING\\n->BIN( input:BITSET ): output:STRING\",\"documentation\":\"The ->BIN function converts the byte array or the string on top of the stack \\nto its binary representation.\\n\\nSince the 2.8.0 version, it also converts a **LONG** to its 64 bits binary representation. Thus, this function and [TOBIN](/doc/TOBIN) are equivalent.\\n\\nApplied on a string, `->BIN` replaces ` 'utf-8' ->BYTES ->BIN `\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that. \\n\\n@param `input` Any string or byte array.\\n\\n@param `output` Binary representation of the input.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1HJs\"},{\"name\":\"->BYTES\",\"detail\":\"->BYTES( input:STRING charset:STRING ): output:BYTES\",\"documentation\":\"->BYTES function converts a string into a bytes array given a charset\\nand put the result on top of the stack.\\n\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\nBytes array cannot be represented on the stack.\\n\\n\\n@param `input` String input.\\n\\n@param `charset` Charset to use.\\n\\n@param `output` Byte array representation of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1LKG4Jk\"},{\"name\":\"->DOUBLEBITS\",\"detail\":\"->DOUBLEBITS( number:NUMBER ): bits:LONG\\n->DOUBLEBITS( gts:GTS ): longgts:GTS\",\"documentation\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"tags\":[\"math\",\"gts\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt3IpK1I3K1HKGI\"},{\"name\":\"->ENCODER\",\"detail\":\"->ENCODER( elements:LIST ): output:GTSENCODER\\n->ENCODER( lgts:LIST<GTS> ): output:GTSENCODER\\n->ENCODER( lwrappedgts:LIST<STRING> ): output:GTSENCODER\\n->ENCODER( lrawwrappedgts:LIST<BYTES> ): output:GTSENCODER\",\"documentation\":\"The `->ENCODER` function takes a list of points and encode them in a single encoder. Each point is a list of ( timestamp, latitude, longitude, elevation, value ). Since 2.1.1, a point can also be a Geo Time Series™ or a wrapped one. In that case all the points of the Geo Time Series™ are added to the encoder.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `elements` List of list of ( timestamp, latitude, longitude, elevation, value ). See example to see which element(s) can be omitted.\\n\\n@param `lgts` A list of Geo Time Series™ instances.\\n\\n@param `lwrappedgts` A list of wrapped Geo Time Series™ instances, such as produced by [`WRAP`](/doc/WRAP).\\n\\n@param `lrawwrappedgts` A list of raw wrapped Geo Time Series™ instances, such as produced by [`WRAPRAW`](/doc/WRAPRAW).\\n\\n@param `output` Encoder\\n\\n\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt4IZCEG3KH\"},{\"name\":\"->ENCODERS\",\"detail\":\"->ENCODERS( encoder:GTSENCODER ): output:MAP\\n->ENCODERS( wrappedencoder:STRING ): output:MAP\\n->ENCODERS( rawwrappedencoder:BYTES ): output:MAP\",\"documentation\":\"The `->ENCODERS` function converts an encoder into one encoder per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content, when a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AIt4IZCEG3KHJk\"},{\"name\":\"->FLOATBITS\",\"detail\":\"->FLOATBITS( input:NUMBER ): result:LONG\",\"documentation\":\"Converts a numeric value to a **FLOAT** then to a **LONG** value of the raw bits of its representation.\\n\\nOnly the lower 32 bits of the **LONG** value are significant.\\n\\n@param `input` Double to convert\\n\\n@param `result` Raw bits representation\\n\\n\",\"tags\":[\"math\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt5I3x0K388K4B\"},{\"name\":\"->GEOCELL\",\"detail\":\"->GEOCELL( hhPrefixS:STRING ): geocell:LONG\\n->GEOCELL( hhPrefixB:BYTES ): geocell:LONG\",\"documentation\":\"The `->GEOCELL` function converts a **STRING** or a **BYTES** HHCode prefix to a **LONG** geocell. The length of the input implicitly specifies the resolution of the cell.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `hhPrefixS` A HHCode prefix representing a cell. Resolution is twice the length of the **STRING**.\\n\\n@param `hhPrefixB` A HHCode prefix representing a cell. Resolution is four times the length of the **BYTES**.\\n\\n@param `geocell` The geocell representation.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJx2GJlB\"},{\"name\":\"->GEOHASH\",\"detail\":\"->GEOHASH( lat:DOUBLE lon:DOUBLE ): geohash:STRING\\n->GEOHASH( hhcode:LONG ): geohash:STRING\\n->GEOHASH( shape:GEOSHAPE ): geohashes:LIST<STRING>\",\"documentation\":\"The `->GEOHASH` function packs a latitude and a longitude into a STRING [Geohash](https://en.wikipedia.org/wiki/Geohash), converts a [HHCode](https://en.wikipedia.org/wiki/HHCode) into its Geohash counterpart, or converts a `GEOSHAPE` into a list of Geohashes covering the same geographical area.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `geohash` Geohash string packing the specified latitude and longitude.\\n\\n@param `hhcode` HHCode to transform.\\n\\n@param `shape` `GEOSHAPE` to convert.\\n\\n@param `geohashes` List of Geohashes covering the same area as `shape`.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt6GJx7FKC7\"},{\"name\":\"->GEOJSON\",\"detail\":\"->GEOJSON( shape:GEOSHAPE ): geojson:STRING\\n->GEOJSON( shape:GEOSHAPE allCells:BOOLEAN ): geojson:STRING\\n->GEOJSON( wkt_kml_gml:STRING ): geojson:STRING\\n->GEOJSON( wkb:BYTES ): geojson:STRING\",\"documentation\":\"The `->WKB` function converts a WKT **STRING**, WKB **BYTES**, a GML **STRING, a KML **STRING** or a **SHAPE** to a GeoJSON **STRING**.\\n\\nThe resulting GeoJSON is a string representing a MultiPolygon geometry. By default, it defines the boundaries of the covered areas and any holes it these areas, if any.\\n\\nIt is also possible for this function to return a GeoJSON representing all the cells in the GeoShape.\\n\\n GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson` The resulting GeoJSON.\\n\\n@param `wkt_kml_gml` A WKT, KML or GML string\\n\\n@param `wkb` WKB bytes\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.1\",\"OPB64name\":\"AIt6GJx9JoxD\"},{\"name\":\"->GEOSHAPE\",\"detail\":\"->GEOSHAPE( geocells:LIST<LONG> ): geoshape:GEOSHAPE\\n->GEOSHAPE( hhPrefixesS:LIST<STRING> ): geoshape:GEOSHAPE\\n->GEOSHAPE( hhPrefixesB:LIST<BYTES> ): geoshape:GEOSHAPE\",\"documentation\":\"The `->GEOSHAPE` function converts a list of **LONG** geocells or HHCode prefixes (**STRING** or **BYTES**) to a **GEOSHAPE**.\\n\\n@param `geocells` List of geocells, as **LONGs**.\\n\\n@param `hhPrefixesS` List of HHCode prefixes, as **STRINGs**.\\n\\n@param `hhPrefixesB` List of HHCode prefixes, as **BYTESs**.\\n\\n@param `geoshape` The resulting **GEOSHAPE**.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJxIH34FGF\"},{\"name\":\"->GML\",\"detail\":\"->GML( shape:GEOSHAPE ): gml:STRING\\n->GML( shape:GEOSHAPE allCells:BOOLEAN ): gml:STRING\\n->GML( geojson_wkt_kml:STRING ): gml:STRING\\n->GML( wkb:BYTES ): gml:STRING\",\"documentation\":\"The `->GML` function converts a GeoJSON **STRING**, a WKT **STRING**, WKB **BYTES**, a KML **STRING** or a **SHAPE** to a GML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml` A GeoJSON, WKT or KML string.\\n\\n@param `gml` The resulting GML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AIt6IJk\"},{\"name\":\"->GTS\",\"detail\":\"->GTS( encoder:GTSENCODER ): output:MAP\\n->GTS( wrappedencoder:STRING ): output:MAP\\n->GTS( rawwrappedencoder:BYTES ): output:MAP\\n->GTS( lencoder:LIST<GTSENCODER> ): loutput:MAP\\n->GTS( lwrappedencoder:LIST<STRING> ): loutput:MAP\\n->GTS( lrawwrappedencoder:LIST<BYTES> ): loutput:MAP\\n->GTS( encoder:GTSENCODER conversionmap:MAP ): conversionoutput:GTS\\n->GTS( wrappedencoder:STRING conversionmap:MAP ): conversionoutput:GTS\\n->GTS( rawwrappedencoder:BYTES conversionmap:MAP ): conversionoutput:GTS\\n->GTS( lencoder:LIST<GTSENCODER> conversionmap:MAP ): conversionoutput:LIST<GTS>\\n->GTS( lwrappedencoder:LIST<STRING> conversionmap:MAP ): conversionoutput:LIST<GTS>\\n->GTS( lrawwrappedencoder:LIST<BYTES> conversionmap:MAP ): conversionoutput:LIST<GTS>\",\"documentation\":\"The `->GTS` function converts an encoder into one GTS per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\n###### Since 2.4.0:\\n- `->GTS` function can also take a conversion MAP input. Using this conversion MAP, the output is always a list of GTS.\\n- The conversion map can also take a list of selectors for each output type.\\n- The conversion map can be empty: In this case, the GTS type is enforced by the type of the first element in the encoder input.\\n- The first selector match stops the research. It means key order matters. See Examples.\\n- A new '.type' label is added to each output GTS. This could be overridden with the 'label.type' parameter of the conversion MAP.\\n- `->GTS` function can handle encoders, or list of encoders.\\n\\n###### What is an encoder ?\\nA Geo Time Series™ is limited to the type of the first value stored.\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content.\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder. Values are GTS.\\n\\n@param `lencoder` List of encoders input (supported since 2.4.0).\\n\\n@param `lwrappedencoder` List of encoders after WRAP (supported since 2.4.0).\\n\\n@param `lrawwrappedencoder` List of encoders after WRAPRAW (supported since 2.4.0).\\n\\n@param `loutput` Map with a key/value per type encountered in the input encoder. Values are a list of GTS.\\n\\n@param `conversionmap` Map with type as keys, selectors or list of selectors as values. The special key `label.type` allow to change the default `.type` label. Set `label.type` to NULL to avoid any new label. The conversion map could be empty.\\n\\n@param `conversionoutput` A GTS, or a list of GTS.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt6K4B\"},{\"name\":\"->GTSHHCODE\",\"detail\":\"->GTSHHCODE( lat:NUMBER lon:NUMBER ): hhcode:STRING\",\"documentation\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3J\"},{\"name\":\"->GTSHHCODELONG\",\"detail\":\"->GTSHHCODELONG( lat:NUMBER lon:NUMBER ): hhcode:STRING\",\"documentation\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3KBIot6\"},{\"name\":\"->HEX\",\"detail\":\"->HEX( input:STRING ): output:STRING\\n->HEX( input:BYTES ): output:STRING\\n->HEX( input:LONG ): output:STRING\",\"documentation\":\"The `->HEX` function decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV).\\n\\nApplied on a string, `->HEX` replaces `'utf-8' ->BYTES ->HEX`\\n\\nSince 2.8.0 this function also converts a long to its 64 bits hexadecimal representation. Thus this function is equivalent to [TOHEX](/doc/TOHEX).\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that.\\n\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Decoded string of input, assuming utf-8 encoding of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt7GKV\"},{\"name\":\"->HHCODE\",\"detail\":\"->HHCODE( lat:NUMBER lon:NUMBER ): hhcode:STRING\",\"documentation\":\"The `->HHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt7H3CEG3J\"},{\"name\":\"->HHCODELONG\",\"detail\":\"->HHCODELONG( lat:NUMBER lon:NUMBER ): hhcode:LONG\",\"documentation\":\"The `->HHCODELONG` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.5\",\"OPB64name\":\"AIt7H3CEG3KBIot6\"},{\"name\":\"->JSON\",\"detail\":\"->JSON( object:ANY ): output:STRING\",\"documentation\":\"The `->JSON` functions serialize structures containing numbers, strings, booleans, lists, vlists and maps which do not reference the same list/map multiple times.\\n\\n@param `object` Object to serialize\\n\\n@param `output` JSON formatted string\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt9JoxD\"},{\"name\":\"->KML\",\"detail\":\"->KML( shape:GEOSHAPE ): kml:STRING\\n->KML( shape:GEOSHAPE allCells:BOOLEAN ): kml:STRING\\n->KML( geojson_wkt_gml:STRING ): kml:STRING\\n->KML( wkb:BYTES ): kml:STRING\",\"documentation\":\"The `->KML` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, WKB **BYTES** or a **SHAPE** to a KML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_gml` A GeoJSON, WKT or GML string.\\n\\n@param `kml` The resulting KML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AItAIJk\"},{\"name\":\"->LIST\",\"detail\":\"->LIST( content:ANY* N:LONG ): newlist:LIST\",\"documentation\":\"The `->LIST` function create a list from N elements on the stack.\\nN and the N next elements on the stack are consumed.\\n\\nIf N is greater than current stack depth, the function raises an error.\\n\\n@param `N` The number of elements to take on the top of the stack to build the list.\\n\\n@param `newlist` The list of N elements. [deepest in stack ... TOP-1 ]\\n\\n@param `content` 0 to n elements\\n\\n\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItBHKCJ\"},{\"name\":\"->LONGBYTES\",\"detail\":\"->LONGBYTES( number:LONG nbbytes:LONG ): output:BYTES\\n->LONGBYTES( numberList:LIST<LONG> nbbytes:LONG ): output:BYTES\",\"documentation\":\"`->LONGBYTES` converts a LONG to a byte array. It expects a number of bytes on the top of the stack.\\n\\nSince Warp 10™ 2.1, `->LONGBYTES` can also convert a list of LONG.\\n\\n@param `nbbytes` Number of bytes for number conversion: nbbytes could be 1 to 8. If less than 8, most significant bytes will be truncated.\\n\\n@param `number` must be a LONG\\n\\n@param `output` byte array, from 1 to 8 bytes per number\\n\\n@param `numberList` Since Warp 10 2.1, a list of LONG\\n\\n\",\"tags\":[\"binary\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItBIot6F__JGKB\"},{\"name\":\"->MACRO\",\"detail\":\"->MACRO( statements:LIST ): macro:MACRO\",\"documentation\":\"The `->MACRO->` creates a `MACRO` from a `LIST` of statements such as the ones created by `MACRO->`.\\n\\n@param `macro` `MACRO` containing the statements from `statements`.\\n\\n@param `statements` List of statements.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItCFJCHIk\"},{\"name\":\"->MAP\",\"detail\":\"->MAP( content:ANY* N:LONG ): newmap:MAP\",\"documentation\":\"The ->MAP function creates a MAP from an even number N of elements on the stack. \\nN is consumed off the top of the stack. For each pair, the deepest element is the key, the shallowest is the value.\\n\\n\\n@param `content` 0 to n pairs of key-value elements. Keys must be different.\\n\\n@param `N` Number of content elements to consume on the stack. It must be even.\\n\\n@param `newmap` map instance, initialized with content.\\n\\n\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItCFK.\"},{\"name\":\"->MAT\",\"detail\":\"->MAT( [ input:LIST ] ): result:MATRIX\",\"documentation\":\"The `->MAT` function converts nested lists of numbers (2D array with same number of columns) into a Matrix.\\n\\nMATRIX objects cannot be represented on the stack. \\n\\nMatrix entries must be numbers.\\n\\n\\n@param `input` List of lists of values\\n\\n@param `result` A MATRIX object\\n\\n\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItCFKF\"},{\"name\":\"->MVSTRING\",\"detail\":\"->MVSTRING( input:STRING ): mvstring:STRING\\n->MVSTRING( input:BYTES ): mvstring:STRING\\n->MVSTRING( input:GTS ): mvstring:STRING\\n->MVSTRING( input:GTSENCODER ): mvstring:STRING\",\"documentation\":\"The `->MVSTRING` function generates a STRING representation of an ENCODER in the format expected by the `/update` endpoint for multi values.\\n\\nWhen encountering a binary element, the function attempts to interpret it as a wrapped encoder, if that fails then it will output the element as a binary (`b64:...`) value.\\n\\n@param `input` Wrapped or unwrapped Geo Time Series™ or ENCODER.\\n\\n@param `mvstring` MultiValue format representation of the wrapped encoder/GTS.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItCK_CJJZ_DGk\"},{\"name\":\"->OPB64\",\"detail\":\"->OPB64( input:STRING ): output:STRING\\n->OPB64( input:BYTES ): output:STRING\",\"documentation\":\"Encode a String in order preserving base64. OPB64 is a Base64 like encoding which preserves the lexicographic order of\\nthe original byte arrays in the encoded ones. This is useful to compare encoded byte arrays without having to first decode them.\\n\\n@param `input` Could be a string or a byte array.\\n\\n@param `output` OPB64 of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItEJ37qC.\"},{\"name\":\"->PICKLE\",\"detail\":\"->PICKLE( input:ANY ): output:BYTES\",\"documentation\":\"The `->PICKLE` function converts the object on top of the stack to a Python object and serializes it using Pickle protocol version 2.\\nThe conversion table used is as follow:\\n\\n| WarpScript | Python |\\n|------------|--------|\\n| NULL | None |\\n| BOOLEAN | bool |\\n| BYTES | bytearray |\\n| STRING | str/unicode |\\n| DOUBLE | float |\\n| LONG | int |\\n| LIST | list |\\n| MAP | dict |\\n| SET | set |\\n| GTS | dict |\\n| ENCODER | dict |\\n\\nOther types are unsupported.\\n\\nPython examples with `->PICKLE ->HEX` output:\\n\\n**Python2**\\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle\\n>>> pickle.loads(s.decode(\\\"hex\\\"))\\n[u'PICKLE', u'STRING', [5, 3.141592653589793]]\\n```\\n**Python3** \\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle, codecs\\n>>> pickle.loads(codecs.decode(s, \\\"hex\\\"))\\n['PICKLE', 'STRING', [5, 3.141592653589793]]\\n```\\n\\n@param `input` A serializable object\\n\\n@param `output` Pickle encoded content\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"AItFHJCAI3J\"},{\"name\":\"->Q\",\"detail\":\"->Q( w:DOUBLE x:DOUBLE y:DOUBLE z:DOUBLE ): result:LONG\",\"documentation\":\"The `->Q` function consumes on the stack 4 doubles (w, x, y, z, with z being on top) representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion)\\nand push back quaternion representation into a **LONG**.\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `result` Quaternion representation\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItG\"},{\"name\":\"->RLP\",\"detail\":\"->RLP( str:STRING ): encoded:BYTES\\n->RLP( bytes:BYTES ): encoded:BYTES\\n->RLP( long:LONG ): encoded:BYTES\\n->RLP( list:LIST ): encoded:BYTES\",\"documentation\":\"The `->RLP` function converts an individual `LONG`, `STRING` or `BYTES` element or a list of elements (including lists) into a byte array using the [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoding.\\n\\n@param `str` `STRING` to encode. It will first be converted to `BYTES` using the `UTF-8` character set.\\n\\n@param `bytes` Byte array to encode.\\n\\n@param `long` `LONG` value to encode.\\n\\n@param `list` `LIST` to encode.\\n\\n@param `encoded` Result of encoding.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItHI4.\"},{\"name\":\"->SET\",\"detail\":\"->SET( input:LIST ): newset:SET\",\"documentation\":\"The -`>SET` function converts a **LIST** on top of the stack into a **SET**.\\n\\nSETs are not viewable, null will be return if it remains on the stack.\\n\\nThe order in the SET is not guaranteed, see [`()`](/doc/91Z).\\n\\n\\n@param `input` The input list\\n\\n@param `newset` The new set reference. SETs are not viewable, null remains on the stack.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItIGKF\"},{\"name\":\"->SSSS\",\"detail\":\"->SSSS( secret:BYTES N:LONG K:LONG randomness:BOOLEAN ): splits:LIST<BYTES>\",\"documentation\":\"The `->SSSS` function splits a byte array into `N` shares so `K` of them can reconstruct the original byte array.\\n\\nThe splitting is done using a Shamir Secret Sharing Scheme as described in the [seminal paper](http://web.mit.edu/6.857/OldStuff/Fall03/ref/Shamir-HowToShareASecret.pdf) by [Adi Shamir](https://en.wikipedia.org/wiki/Adi_Shamir).\\n\\nThe principle is based on the fact that a polynomial `P` of degree `K-1` can be fully determined by `K` points (`X`,`Y`), where `Y = P(X)`. All computations are performed using arithmetic in the [Galois Field](https://en.wikipedia.org/wiki/Finite_field) [`GF(256)`](https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Finite_field_arithmetic) used for [QR/Code]() Reed Solomon error correction, its generator is `2` and its primitive polynomial `0x11D` (`x^8 + x^4 + x^3 + x^2 + 1`).\\n\\nFor each byte `B` to encode, a random polynomial `P` over `GF(256)` is chosen with the constraint that `P(0) = B`. Then `N` random values of `GF(256)` are selected and for each `X` such value, the two bytes `X` and `P(X)` are output to a share. If `X` was 0, a random value is emitted instead of `P(X)` and a new `X` value is selected. This is done to ensure the randomness of the output. It may therefore be possible that a split is longer than twice the size of the original input.\\n\\n@param `secret` Secret to split.\\n\\n@param `N` Number of splits to generated, minimum is 2, maximum is 255.\\n\\n@param `K` Number of splits needed to reconstruct `secret`, must be less or equal to `N`.\\n\\n@param `randomness` Flag indicating whether or not the byte pairs starting with `0x00` should be retained (`true`) or stripped (`false`). This parameter is optional.\\n\\n@param `splits` List of generated splits.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"AItIJpCI\"},{\"name\":\"->TSELEMENTS\",\"detail\":\"->TSELEMENTS( timestamp:LONG ): dateAndTimeElements:LIST<LONG>\\n->TSELEMENTS( timestamp:LONG timezone:STRING ): dateAndTimeElements:LIST<LONG>\",\"documentation\":\"The `->TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"AItJJoKBGJp4I_GI\"},{\"name\":\"->V\",\"detail\":\"->V( list:LIST ): result:VLIST\\n->V( set:SET ): result:VLIST\",\"documentation\":\"The `->V` function converts a list of objects into a Pig Vector (VLIST).\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `list` Input list\\n\\n@param `set` Input set\\n\\n@param `result` Result list\\n\\n\",\"tags\":[\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"AItL\"},{\"name\":\"->VARINT\",\"detail\":\"->VARINT( number:LONG ): encoded:BYTES\\n->VARINT( numbers:LIST<LONG> ): encoded:BYTES\",\"documentation\":\"The `->VARINT` function encodes a `LONG` or a list of `LONG`s using [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoding. The result is a byte array containing the concatenation of the encoded numbers.\\n\\nThe `->VARINT` function is optimized for encoding unsigned `LONG`s, this means that negative numbers (with the most significant bit set to 1) will be encoded on 10 bytes. In order to reduce this footprint you can pre-process the numbers to encode so they are encoded using [ZigZag VarInt](https://developers.google.com/protocol-buffers/docs/encoding#types) encoding. The simple trick is to compute\\n\\n```\\n$value 1 << $value 63 >> ^\\n```\\n\\nthis will have the effect of alternatively encoding positive and negative numbers thus leading to a more efficient footprint for negative numbers.\\n\\nAt decoding time using `VARINT->`, simply undo the *Zig-Zag* trick:\\n\\n```\\n$unsigned 63 << 63 >> $unsigned ^ 1 >>\\n// Flip the top bit\\n$unsigned 1 63 << & ^\\n```\\n\\n@param `number` Single number to encode.\\n\\n@param `numbers` List of numbers to encode.\\n\\n@param `encoded` Byte array containing the encoded number(s).\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"AItLFK88I_F\"},{\"name\":\"->VEC\",\"detail\":\"->VEC( list:LIST ): result:VECTOR\\n->VEC( matrix:MATRIX ): result:VECTOR\",\"documentation\":\"The `->VEC` function converts a list of numbers into a Vector.\\n\\nVectors objects cannot be represented on the stack. \\n\\nVectors entries must be numbers.\\n\\n@param `list` List to convert\\n\\n@param `matrix` Matrix with a single column\\n\\n@param `result` Vector\\n\\n\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItLGJB\"},{\"name\":\"->WKB\",\"detail\":\"->WKB( shape:GEOSHAPE ): wkb:BYTES\\n->WKB( shape:GEOSHAPE allCells:BOOLEAN ): wkb:BYTES\\n->WKB( geojson_wkt_kml_gml:STRING ): wkb:BYTES\",\"documentation\":\"The `->WKB` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, a KML **STRING** or a **SHAPE** to WKB **BYTES**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml_gml` A GeoJSON, WKT, KML or GML string.\\n\\n@param `wkb` The resulting WKB.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHo7\"},{\"name\":\"->WKT\",\"detail\":\"->WKT( shape:GEOSHAPE ): wkt:STRING\\n->WKT( shape:GEOSHAPE allCells:BOOLEAN ): wkt:STRING\\n->WKT( geojson_kml_gml:STRING ): wkt:STRING\\n->WKT( wkb:BYTES ): wkt:STRING\",\"documentation\":\"The `->WKT` function converts a GeoJSON **STRING**, WKB **BYTES**, a KML **STRING**, a GML **STRING** or a **SHAPE** to a WKT **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_kml_gml` A GeoJSON, KML or GML string.\\n\\n@param `wkt` The resulting WKT.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHpF\"},{\"name\":\"->Z\",\"detail\":\"->Z( longs:LIST<LONG> bitwidth:LONG ): z:BYTES\",\"documentation\":\"The `->Z` function packs multiple **LONG** arguments into a byte array by interleaving the bits of the arguments. This produces a \\n[Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) value encoding the original arguments. The value might be right padded with bits set to 0 to reach a multiple of 8 bits.\\n\\n@param `bitwidth` Number of bits to consider for each LONG in 'longs', from 1 to 63.\\n\\n@param `longs` List of LONGs to pack. Each LONG *MUST* be positive, i.e. with bit 63 set to 0.\\n\\n@param `z` Byte array containing the packed values.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItP\"},{\"name\":\"/\",\"detail\":\"/( long:LONG long:LONG ): long-result:LONG\\n/( double:DOUBLE long:LONG ): double-result:DOUBLE\\n/( long:LONG double:DOUBLE ): double-result:DOUBLE\\n/( double:DOUBLE double:DOUBLE ): double-result:DOUBLE\\n/( counter:COUNTER counter:COUNTER ): long-result:LONG\\n/( double:DOUBLE counter:COUNTER ): long-result:DOUBLE\\n/( counter:COUNTER double:DOUBLE ): long-result:DOUBLE\\n/( counter:COUNTER long:LONG ): long-result:LONG\\n/( long:LONG counter:COUNTER ): long-result:LONG\\n/( double:VECTOR double:NUMBER ): double-result:VECTOR\\n/( param2:GTS param1:GTS ): result:GTS\\n/( param2:GTS param1:NUMBER ): result:GTS\\n/( param2:NUMBER param1:GTS ): result:GTS\",\"documentation\":\"The `/` operator consumes two parameters from the top of the stack and pushes back the result of dividing the first one by the second one.\\n\\nYou can't devide by zero.\\n\\nThe two parameters must be of numeric types, or Geo Time Series™, or a mix of the two.\\n\\n@param `long` Numeric integer\\n\\n@param `long-result` Numeric floor-rounded integer\\n\\n@param `double` Numeric floating point number\\n\\n@param `double-result` Numeric floating point number\\n\\n@param `counter` Numeric counter\\n\\n@param `param1` First parameter of the division.\\n\\n@param `param2` Second parameter of the division.\\n\\n@param `result` Resulting GTS, of type DOUBLE.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ak\"},{\"name\":\"<\",\"detail\":\"<( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n<( p1:STRING p2:STRING ): result:BOOLEAN\\n<( inputgts:GTS constant:ANY ): outgts:GTS\\n<( constant:ANY inputgts:GTS ): outgts:GTS\\n<( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"The `<` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 < p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <` is strictly equivalent of a `42 mapper.lt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 < p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E.\"},{\"name\":\"<<\",\"detail\":\"<<( number:LONG shift:LONG ): result:LONG\\n<<( inputgts:GTS number:LONG ): maskedgts:GTS\\n<<( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Shifts the bits of a long by a number of positions to the left. The least significant bit is filled with 0 after each shift.\\n\\nSince Warp 10™ 2.1, `<<` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2k\"},{\"name\":\"<=\",\"detail\":\"<=( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n<=( p1:STRING p2:STRING ): result:BOOLEAN\\n<=( inputgts:GTS constant:ANY ): outgts:GTS\\n<=( constant:ANY inputgts:GTS ): outgts:GTS\\n<=( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"The `<=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 <= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <=` is strictly equivalent of a `42 mapper.le` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 <= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less or equal than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2o\"},{\"name\":\"==\",\"detail\":\"==( p1:ANY p2:ANY ): result:BOOLEAN\\n==( inputgts:GTS constant:ANY ): outgts:GTS\\n==( constant:ANY inputgts:GTS ): outgts:GTS\\n==( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Tests if both parameters are equal.\\n\\nThe `==` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are equal, false otherwise.\\n\\nThe two parameters must be of numeric, boolean, vector, matrix or string types.\\nFor vector or matrix, the parameters must be the same size.\\n\\nSince 2.1.0, as every other comparison operators, `==` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 ==` is strictly equivalent of a `42 mapper.eq` MAP operation, with a simplified syntax.\\n\\nSince 2.1.1, `==` can be use to check equality between Lists, Maps and Sets. For for details about how this is defined, check the [java documentation](https://docs.oracle.com/en/java/javase/index.html).\\n\\n@param `p1` First parameter to compare\\n\\n@param `p2` Second parameter to compare\\n\\n@param `result` True if p1 and p2 are equal, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values equal to constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value equals gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EIo\"},{\"name\":\">\",\"detail\":\">( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n>( p1:STRING p2:STRING ): result:BOOLEAN\\n>( inputgts:GTS constant:ANY ): outgts:GTS\\n>( constant:ANY inputgts:GTS ): outgts:GTS\\n>( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"The `>` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 > p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >` is strictly equivalent of a `42 mapper.gt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 > p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EV\"},{\"name\":\">=\",\"detail\":\">=( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n>=( p1:STRING p2:STRING ): result:BOOLEAN\\n>=( inputgts:GTS constant:ANY ): outgts:GTS\\n>=( constant:ANY inputgts:GTS ): outgts:GTS\\n>=( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"The `>=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 >= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >=` is strictly equivalent of a `42 mapper.ge` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 >= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater or equal than gts2 value.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYo\"},{\"name\":\">>\",\"detail\":\">>( number:LONG shift:LONG ): result:LONG\\n>>( inputgts:GTS number:LONG ): maskedgts:GTS\\n>>( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after shifting depends on the sign of the unshifted long.\\n\\nSince Warp 10™ 2.1, `>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYs\"},{\"name\":\">>>\",\"detail\":\">>>( number:LONG shift:LONG ): result:LONG\\n>>>( inputgts:GTS number:LONG ): maskedgts:GTS\\n>>>( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after each shift is set to 0, regardless of the sign of \\nthe unshifted long.\\n\\nSince Warp 10™ 2.1, `>>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYsy\"},{\"name\":\"ABI->\",\"detail\":\"ABI->( json:STRING ): abi:MAP\",\"documentation\":\"The `ABI->` function parses a JSON structure describing an [`ABI`](https://docs.soliditylang.org/en/develop/abi-spec.html) and produces a `MAP` with individual entries for each definition appearing in the JSON spec.\\n\\n@param `json` JSON representation of the ABI, as produced by `solc --abi`.\\n\\n@param `abi` `MAP` containing entries for each function, error or event described in the `ABI`.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"FJ88AIs\"},{\"name\":\"ABI.SIG\",\"detail\":\"ABI.SIG( abi:MAP ): signature:STRING\",\"documentation\":\"Computes the signature of an [ABI](https://docs.soliditylang.org/en/v0.8.13/abi-spec.html) element. The element can be of type `function` or `event`.\\n\\n@param `abi` ABI description of the element whose signature must be generated.\\n\\n@param `signature` Hex encoded and `0x` prefixed 32 bits signature of the ABI.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ABI.SIG\"},{\"name\":\"ABS\",\"detail\":\"ABS( value:LONG ): result:LONG\\nABS( value:COUNTER ): result:LONG\\nABS( value:DOUBLE ): result:DOUBLE\\nABS( lvalue:LIST<LONG> ): lresult:LIST<LONG>\\nABS( lvalue:LIST<COUNTER> ): lresult:LIST<LONG>\\nABS( lvalue:LIST<DOUBLE> ): lresult:LIST<DOUBLE>\\nABS( gts:GTS ): gtsresult:GTS\",\"documentation\":\"Computes the absolute value of a number value.\\n\\nThe `ABS` function consumes a numeric value from the top of the stack and pushes back its absolute value.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` A numeric value\\n\\n@param `result` The absolute value of the given numeric value.\\n\\n@param `lvalue` A list of numeric values\\n\\n@param `lresult` A list of the absolute values of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the absolute values of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ABS\"},{\"name\":\"ACCEL.CACHE\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.CACHE` function will enable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.CACHE\"},{\"name\":\"ACCEL.NOCACHE\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOCACHE` function will disable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOCACHE\"},{\"name\":\"ACCEL.NOPERSIST\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOPERSIST` function will disable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOPERSIST\"},{\"name\":\"ACCEL.PERSIST\",\"detail\":\"\",\"documentation\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.PERSIST` function will enable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.PERSIST\"},{\"name\":\"ACCEL.REPORT\",\"detail\":\"ACCEL.REPORT(): report:MAP\",\"documentation\":\"The `ACCEL.REPORT` function will produce a map containing informations related to the Warp 10 Accelerator. The following table describes the various keys present in this map:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `accelerated` | Boolean indicating whether or not the last [`FETCH`](/doc/FETCH) accessed the in-memory data managed by the Warp 10 Accelerator. |\\n| `status` | Boolean indicating whether or not the Warp 10 Accelerator is enabled. |\\n| `cache` | Boolean indicating if the in-memory data will be considered for update, fetch and delete operations. |\\n| `persist` | Boolean indicating if the persistent data will be considered for update, fetch and delete operations. |\\n| `chunkcount` | Number of chunks managed by the accelerator for its in-memory data. |\\n| `chunkspan` | Length of each chunk expressed in platform time units. |\\n\\n@param `report` Map containing informations related to the Warp 10 Accelerator\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.REPORT\"},{\"name\":\"ACOS\",\"detail\":\"ACOS( value:NUMBER ): result:DOUBLE\\nACOS( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nACOS( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `ACOS` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arccosine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arccosine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arccosine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arccosine in radians of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ACOS\"},{\"name\":\"ADDDAYS\",\"detail\":\"ADDDAYS( timestamp:LONG timezone:STRING days:LONG ): result:LONG\\nADDDAYS( timestamp:LONG days:LONG ): result:LONG\\nADDDAYS( tselements:LIST<LONG> days:LONG ): tselementsresult:LIST<LONG>\",\"documentation\":\"Adds days to a timestamp or a tselements.\\n\\nThe `ADDDAYS` function consumes from the top of the stack a number (positive or negative) of days, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the days and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `days` The number of days to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDDAYS\"},{\"name\":\"ADDDURATION\",\"detail\":\"ADDDURATION( timestamp:LONG timezone:STRING duration:STRING ): result:LONG\\nADDDURATION( timestamp:LONG timezone:STRING duration:STRING factor:LONG ): result:LONG\\nADDDURATION( timestamp:LONG duration:STRING ): result:LONG\\nADDDURATION( timestamp:LONG duration:STRING factor:LONG ): result:LONG\\nADDDURATION( tselements:LIST<LONG> duration:STRING ): tselementsresult:LIST<LONG>\\nADDDURATION( tselements:LIST<LONG> duration:STRING factor:LONG ): tselementsresult:LIST<LONG>\",\"documentation\":\"Adds an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) to a timestamp or a tselements.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `duration` The duration\\n\\n@param `factor` The number of durations to add. Can be negative. Default to 1 if not set.\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"2.4.0\",\"OPB64name\":\"ADDDURATION\"},{\"name\":\"ADDEXACT\",\"detail\":\"ADDEXACT( x:NUMBER y:NUMBER ): sum:LONG\\nADDEXACT( list:LIST<NUMBER> ): ssum:LONG\\nADDEXACT( lx:LIST<NUMBER> y:NUMBER ): lsum:LIST<LONG>\\nADDEXACT( gts:GTS ): gsum:GTS\\nADDEXACT( gtsx:GTS y:NUMBER ): gtssum:GTS\",\"documentation\":\"The `ADDEXACT` function consumes two LONGs from the top of the stack and puts back the sum. If the sum overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `sum` The sum of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `ssum` The sum of all the elements of list\\n\\n@param `gsum` The sum of all the values of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lsum` List of **LONG** where each value is the sum of y and an element in lx\\n\\n@param `gtssum` GTS of **LONG** values where each value is the sum of y and an element in gtsx\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"ADDEXACT\"},{\"name\":\"ADDMONTHS\",\"detail\":\"ADDMONTHS( timestamp:LONG timezone:STRING months:LONG ): result:LONG\\nADDMONTHS( timestamp:LONG months:LONG ): result:LONG\\nADDMONTHS( tselements:LIST<LONG> months:LONG ): tselementsresult:LIST<LONG>\",\"documentation\":\"Adds months to a timestamp or a tselements.\\n\\nThe `ADDMONTHS` function consumes from the top of the stack a number (positive or negative) of months, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the months and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `months` The number of months to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDMONTHS\"},{\"name\":\"ADDVALUE\",\"detail\":\"ADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:STRING ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:BYTES ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:BOOLEAN ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:DOUBLE ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:LONG ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:GTSENCODER ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:GTS ): result:GTS\",\"documentation\":\"The `ADDVALUE` function adds a value to a GTS, without checking for tick duplicates. The added data point is appended to the GTS.\\nThe [`SETVALUE`](/doc/SETVALUE) overrides an existing value.\\n\\nThe `ADDVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `ADDVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, for example by using [`GET`](/doc/GET)\\nwith value 0 as parameter.\\n\\nIf latitude or longitude are NaN (not a number), value has only timestamp, elevation, value.\\nIf elevation is NaN (not a number), value has only timestamp, latitude, longitude, value.\\nIf elevation is NaN and longitude or latitude are NaN, value has only timestamp, value.\\n\\nWhen adding a Geo Time Series™ or GTS Encoder value, the value will be wrapped (as when using `WRAPRAW`) and added as a binary value.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Series™\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `result` The Geo Time Series™ with the new datapoint added\\n\\n@param `elevation` Elevation or NaN\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ADDVALUE\"},{\"name\":\"ADDYEARS\",\"detail\":\"ADDYEARS( timestamp:LONG timezone:STRING years:LONG ): result:LONG\\nADDYEARS( timestamp:LONG years:LONG ): result:LONG\\nADDYEARS( tselements:LIST<LONG> years:LONG ): tselementsresult:LIST<LONG>\",\"documentation\":\"Adds years to a timestamp or a tselements.\\n\\nThe `ADDYEARS` function consumes from the top of the stack a number (positive or negative) of years, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the years and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `years` The number of years to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDYEARS\"},{\"name\":\"AESUNWRAP\",\"detail\":\"AESUNWRAP( key:BYTES data:BYTES ): decoded:BYTES\",\"documentation\":\"Unwraps a byte array with the [AES WRAP](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") and pushes back the decrypted data into an bytes array.\\n\\n`AESUNWRAP` removes the a 64bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) added by [`AESWRAP`](/doc/AESWRAP) WarpScript function\\n\\n@param `data` Encoded Byte array.\\n\\n@param `key` Byte array, 128, 192 or 256 bits key.\\n\\n@param `decoded` Decoded Byte array.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESUNWRAP\"},{\"name\":\"AESWRAP\",\"detail\":\"AESWRAP( string:STRING key:BYTES ): encrypted:BYTES\\nAESWRAP( bytes:BYTES key:BYTES ): encrypted:BYTES\",\"documentation\":\"Wraps a byte array or String with the [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt) algorithm and pushes a byte array containing the encrypted data onto the stack.\\n\\n`AESWRAP` adds a 64 bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) prefix to the input in order to protect the encrypted data against AES block determinism as [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") uses a fixed Initialization Vector.\\n\\n@param `key` 128, 192 or 256 bits key to use for encryption.\\n\\n@param `string` String data to encrypt.\\n\\n@param `bytes` Byte array to encrypt.\\n\\n@param `encrypted` Encrypted result.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESWRAP\"},{\"name\":\"AGO\",\"detail\":\"AGO( offset:NUMBER ): timestamp:LONG\",\"documentation\":\"The `AGO` function is a shortcut which enables you to compute timestamps by specifying an offset from the current time.\\n\\n@param `offset` The numbers of ticks in platform time unit to subtract, truncated if floating-point.\\n\\n@param `timestamp` The computed timestamp\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"AGO\"},{\"name\":\"AND\",\"detail\":\"AND( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\nAND( l:LIST ): result:BOOLEAN\\nAND( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"documentation\":\"The `AND` operator is a synonymous for [`&&`](/doc/8XN).\\n\\nIt performs a logical **AND** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `AND` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical AND applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with AND between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"AND\"},{\"name\":\"APPEND\",\"detail\":\"APPEND( inputlist:LIST newitems:LIST ): outputlist:LIST\\nAPPEND( inputmap:MAP newitems:MAP ): outputmap:MAP\\nAPPEND( inputGTS:GTS newitems:GTS ): outputGTS:GTS\\nAPPEND( inputset:SET newitems:SET ): outputset:SET\\nAPPEND( inputset:SET newitems:LIST ): outputset:SET\\nAPPEND( inputlist:LIST newitems:SET ): outputlist:LIST\",\"documentation\":\"The `APPEND` function consumes two paramters from the top of the stack and appends the LIST, MAP or GTS on top of the stack to the one just below.\\nThe augmented LIST, MAP or GTS is then pushed back on the stack.\\n\\n@param `newitems` items to append to input.\\n\\n@param `inputlist` LIST to be modified.\\n\\n@param `outputlist` The LIST that has been modified\\n\\n@param `inputmap` MAP to be modified.\\n\\n@param `outputmap` The MAP that has been modified \\n\\n@param `inputGTS` GTS to be modified.\\n\\n@param `outputGTS` The GTS that has been modified\\n\\n@param `inputset` SET to be modified.\\n\\n@param `outputset` The SET that has been modified\\n\\n\",\"tags\":[\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPEND\"},{\"name\":\"APPLY\",\"detail\":\"APPLY( [ gts:LIST<GTS>+ labels:LIST op:OPERATOR ] ): result:LIST<GTS>\",\"documentation\":\"The `APPLY` framework provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can do. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` List of resulting GTS, one per equivalence class.\\n\\n@param `op` Operation to perform.\\n\\n\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPLY\"},{\"name\":\"ASENCODERS\",\"detail\":\"ASENCODERS( gts:GTS ): encoder:GTSENCODER\\nASENCODERS( lgts:LIST<GTS> ): lencoder:LIST<GTSENCODER>\\nASENCODERS( wrappedgts:STRING ): encoder:GTSENCODER\\nASENCODERS( lwrappedgts:LIST<STRING> ): lencoder:LIST<GTSENCODER>\\nASENCODERS( rawwrappedgts:BYTES ): encoder:GTSENCODER\\nASENCODERS( lrawwrappedgts:LIST<BYTES> ): lencoder:LIST<GTSENCODER>\\nASENCODERS( encoder:GTSENCODER ): encoder:GTSENCODER\\nASENCODERS( lencoder:LIST<GTSENCODER> ): lencoder:LIST<GTSENCODER>\",\"documentation\":\"The `ASENCODERS` function consumes a Geo Time Series™, a wrap or a raw wrap, or a list thereof and convert each one into an encoder.\\n\\n@param `gts` Geo Time Series™ to be converted.\\n\\n@param `lgts` List of Geo Time Series™ to be converted.\\n\\n@param `wrappedgts` Wrapped Geo Time Series™ to be converted.\\n\\n@param `lwrappedgts` List of wrapped Geo Time Series™ to be converted.\\n\\n@param `rawwrappedgts` Raw wrapped Geo Time Series™ to be converted.\\n\\n@param `lrawwrappedgts` List of raw wrapped Geo Time Series™ to be converted.\\n\\n@param `encoder` Encoder of the given Geo Time Series™.\\n\\n@param `lencoder` List of encoder, one for each given Geo Time Series™.\\n\\n\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"2.2.0\",\"OPB64name\":\"ASENCODERS\"},{\"name\":\"ASIN\",\"detail\":\"ASIN( value:NUMBER ): result:DOUBLE\\nASIN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nASIN( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `ASIN` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arcsine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arcsine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arcsine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arcsine in radians of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASIN\"},{\"name\":\"ASREGS\",\"detail\":\"ASREGS( macro:MACRO vars:LIST<STRING> ): macro:MACRO\\nASREGS( macro:MACRO ): macro:MACRO\",\"documentation\":\"Replaces in a macro the uses of the given symbols by the use of registers.\\n\\nIf there are not enough registers available, replace each of the symbols from the start of the list until all registers are used.\\n\\nSince 2.6.0, the list of symbols is optional. In that case, `ASREGS` first recursively extracts all the symbols from given the macro and uses that list to do the replacement.\\n\\n@param `macro` Macro to transform.\\n\\n@param `vars` List of symbols.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ASREGS\"},{\"name\":\"ASSERT\",\"detail\":\"ASSERT( condition:BOOLEAN ): \",\"documentation\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise.\\n\\nThe `ASSERT` function consumes a **BOOLEAN** parameter from the top of the stack. If the boolean is **true** the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception.\\n\\n`ASSERT` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n\",\"tags\":[\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASSERT\"},{\"name\":\"ASSERTMSG\",\"detail\":\"ASSERTMSG( condition:BOOLEAN message:STRING ): \",\"documentation\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise and displays a message.\\n\\nThe `ASSERTMSG` function consumes a **BOOLEAN** parameter and a **STRING** parameter from the top of the stack. If the boolean is **true**, the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception with a message displaying the **STRING** parameter.\\n\\n`ASSERTMSG` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n@param `message` The exception message to display if the test fails\\n\\n\",\"tags\":[\"debug\"],\"since\":\"1.2.13\",\"OPB64name\":\"ASSERTMSG\"},{\"name\":\"ATAN\",\"detail\":\"ATAN( value:NUMBER ): result:DOUBLE\\nATAN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nATAN( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `ATAN` function consumes a floating point number between -1 et 1 from the top of the stack and pushes back its arctangent in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arctangent in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arctangent in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arctangent in radians of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATAN\"},{\"name\":\"ATAN2\",\"detail\":\"ATAN2( y:NUMBER x:NUMBER ): result:DOUBLE\\nATAN2( y:NUMBER lx:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nATAN2( ly:LIST<NUMBER> x:NUMBER ): lresult:LIST<DOUBLE>\\nATAN2( y:NUMBER gtsx:GTS ): gtsresult:GTS\\nATAN2( gtsy:GTS x:NUMBER ): gtsresult:GTS\",\"documentation\":\"ATAN2 function returns the polar angle theta (azimut) from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta). This method computes the phase theta by computing an arc tangent of y/x in the range of `] -pi  pi ]`.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `result` theta in polar coordinates\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `lresult` List of thetas in polar coordinates\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `gtsresult` Numerical GTS of thetas in polar coordinates\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.2.13\",\"OPB64name\":\"ATAN2\"},{\"name\":\"ATBUCKET\",\"detail\":\"ATBUCKET( gts:GTS index:LONG ): result:LIST\",\"documentation\":\"The `ATBUCKET` function consumes a bucketized GTS from the stack, looks at its `index`-th bucket and puts on the stack a\\nlist with the timestamp, latitude, longitude, elevation and value for this bucket.\\n\\n@param `gts` Bucketized Geo Time Series™\\n\\n@param `index` Index of the bucket\\n\\n@param `result` List with the timestamp, latitude, longitude, elevation and value for the index-th bucket of the GTS\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATBUCKET\"},{\"name\":\"ATINDEX\",\"detail\":\"ATINDEX( gts:GTS index:NUMBER ): data:LIST\\nATINDEX( lgts:LIST<GTS> index:NUMBER ): ldata:LIST<LIST>\",\"documentation\":\"The `ATINDEX` function consumes a Geo Time Series™ or a list thereof from the stack, looks at its index-th point and put on the stack a list with the timestamp, longitude,\\nlatitude, elevation and value for the `index`-th point of the GTS.\\n\\nSince 2.1, the index can be negative. In this case, the effective index is index + size of the GTS.\\n\\n@param `index` Index of the tick, truncated if floating-point.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATINDEX\"},{\"name\":\"ATTICK\",\"detail\":\"ATTICK( gts:GTS timestamp:LONG ): data:LIST\\nATTICK( lgts:LIST<GTS> timestamp:LONG ): ldata:LIST<LIST>\\nATTICK( gts:GTS timestamp:COUNTER ): data:LIST\\nATTICK( lgts:LIST<GTS> timestamp:COUNTER ): ldata:LIST<LIST>\\nATTICK( gts:GTS timestamp:DOUBLE ): data:LIST\\nATTICK( lgts:LIST<GTS> timestamp:DOUBLE ): ldata:LIST<LIST>\",\"documentation\":\"The `ATTICK` function consumes a Geo Time Series™ from the stack, looks at its tick-th tick (the data point with a timestamp tick) and put on the\\nstack a list with the timestamp, latitude, longitude, elevation and value for that data point.\\n\\nIf there is no data point with tick timestamp, it returns a list with timestamp, latitude, longitude and elevation at **NaN** and value at **null**.\\n\\n@param `timestamp` Timestamp at which to take the data, if it is a floating-point value, it is truncated.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTICK\"},{\"name\":\"ATTRIBUTES\",\"detail\":\"ATTRIBUTES( gts:GTS ): return:MAP\\nATTRIBUTES( encoder:GTSENCODER ): return:MAP\",\"documentation\":\"Retrieves the attributes of a Geo Time Series™.\\n\\nThe `ATTRIBUTES` function takes a **GTS** on top of the stack and push back a **MAP** including all its attributes.\\n\\nAn attribute corresponds to a tag for a specific series.\\nThe attribute system allows the user to add some information that can change in a series.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `encoder` The input Geo Time Series™ Encoder\\n\\n@param `return` The attributes MAP of the input Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTRIBUTES\"},{\"name\":\"AUTHENTICATE\",\"detail\":\"AUTHENTICATE( token:STRING ): \",\"documentation\":\"The `AUTHENTICATE` function authenticates the current stack with the **read token** on top of the stack. This function removes the token from the stack.\\n\\nInside a WarpScript, the stack could be authenticated only once. An exception is thrown when the stack is already authenticated.\\n\\nIn macros, use ISAUTHENTICATED to make sure the stack is not already authenticated.\\n\\n@param `token` Read token\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"AUTHENTICATE\"},{\"name\":\"B58->\",\"detail\":\"B58->( base58:STRING ): decoded:BYTES\",\"documentation\":\"Decodes a STRING encoded in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58 encoded STRING to decode.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsAIs\"},{\"name\":\"B58C->\",\"detail\":\"B58C->( base58:STRING prefix:BYTES ): decoded:BYTES\",\"documentation\":\"Decodes a STRING encoded in [Base58Check](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58Check encoded STRING to decode.\\n\\n@param `prefix` Base58Check prefix used at encoding time.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsFmoy\"},{\"name\":\"B64->\",\"detail\":\"B64->( content:STRING ): result:BYTES\",\"documentation\":\"Decodes the [base64](http://tools.ietf.org/html/rfc4648#section-4) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoAIs\"},{\"name\":\"B64TOHEX\",\"detail\":\"B64TOHEX( content:STRING ): result:STRING\",\"documentation\":\"Decodes the  [base64](http://tools.ietf.org/html/rfc4648#section-4) content on top of the stack and immediately re-encode it in hexadecimal.\\nThis enables you to convert encoded content which would not be valid UTF-8 encoding from base64 to hexadecimal. \\nAs the string are URL encoded, the symbol `+` have to be replaced by `%2B`, otherwise a space will replace the `+` in the string.\\n\\n@param `content` String to convert\\n\\n@param `result` Hexadecimal converted string\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"B64TOHEX\"},{\"name\":\"B64URL->\",\"detail\":\"B64URL->( content:STRING ): result:BYTES\",\"documentation\":\"Decodes the [base64url](http://tools.ietf.org/html/rfc4648#section-5) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoKK8BAIs\"},{\"name\":\"BBOX\",\"detail\":\"BBOX( gts:GTS ): [  minlat:DOUBLE  minlon:DOUBLE  maxlat:DOUBLE  maxlon:DOUBLE  ]\\nBBOX( lgts:LIST<GTS> ): extremas:LIST<LIST<DOUBLE>>\",\"documentation\":\"The `BBOX` function computes the bounding box of a Geo Time Series™ or a list thereof. It returns a list with extremas (West, South, East, North), or a list of list of extremas.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `minlat` Latitude of lower left of bounding box.\\n\\n@param `minlon` Longitude of lower left of bounding box.\\n\\n@param `maxlat` Latitude of upper right of bounding box.\\n\\n@param `maxlon` Longitude of upper right of bounding box.\\n\\n@param `extremas` List of list containing minlat, minlon, maxlat, maxlon, for every GTS in lgts.\\n\\n\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BBOX\"},{\"name\":\"BIN->\",\"detail\":\"BIN->( binary:STRING ): result:BYTES\",\"documentation\":\"The `->BIN` function decodes a binary string representation into a bytes array.\\n\\n@param `binary` The binary string representation\\n\\n@param `result` The bytes array\\n\\n\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"FZ_DAIs\"},{\"name\":\"BINTOHEX\",\"detail\":\"BINTOHEX( content:STRING ): result:STRING\",\"documentation\":\"Converts a string representing a binary number into a string representing a hexadecimal number.\\n\\nThe `BINTOHEX` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from binary to hexadecimal.\\n\\n@param `content` The string representing a binary number\\n\\n@param `result` The string representing a hexadecimal number\\n\\n\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"BINTOHEX\"},{\"name\":\"BITCOUNT\",\"detail\":\"BITCOUNT( bitset:BITSET ): cardinality:LONG length:LONG\",\"documentation\":\"Returns the logical size and the cardinality of a [BitSet](https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html).\\n\\nThe `BITCOUNT` function consumes a bitset on the top of the stack and push back its logical size and its cardinality.\\n  * The logical size is the index of the highest bit set to true plus one.\\n  * The cardinality is the number of bit set to true.\\n\\n@param `bitset` The BitSet to count\\n\\n@param `length` The logical size of the BitSet\\n\\n@param `cardinality` The number of bits set to true\\n\\n\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITCOUNT\"},{\"name\":\"BITGET\",\"detail\":\"BITGET( bitset:BITSET index:LONG ): return:BOOLEAN\",\"documentation\":\"Returns the value of the bit with the specified index.\\n\\nThe `BITGET` function consumes a bitset and a long on the top of the stack. It returns the value of the bit with the specified index. The bit index starts at 0 from the right.\\n\\n@param `index` The bit index\\n\\n@param `bitset` The bitset\\n\\n@param `return` The value of the bit with the specified index\\n\\n\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.5\",\"OPB64name\":\"BITGET\"},{\"name\":\"BITSTOBYTES\",\"detail\":\"BITSTOBYTES( bitset:BITSET ): result:BYTES\",\"documentation\":\"Converts a bitset into a bytes array.\\n\\n@param `bitset` Bitset\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"bitset\",\"binary\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITSTOBYTES\"},{\"name\":\"BOOTSTRAP\",\"detail\":\"\",\"documentation\":\"This function is executed systematically before the WarpScript stack is available for anything else. By default this function does nothing, it is equivalent \\nto [`NOOP`](/doc/NOOP).\\n\\nIf bootstrap code was specified in the Warp 10 platform configuration, for either or all of `egress`, `mobius` or `runner`, the `BOOTSTRAP` function might\\nhave been redefined and actual code could be executed.\\n\\nThis function is not meant to be used in user provided scripts.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"BOOTSTRAP\"},{\"name\":\"BREAK\",\"detail\":\"\",\"documentation\":\"The `BREAK` function breaks out of the current loop. It takes no argument.\\n\\n> If used outside a loop, an error is thown\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"BREAK\"},{\"name\":\"BUCKETCOUNT\",\"detail\":\"BUCKETCOUNT( gts:GTS ): result:LONG\",\"documentation\":\"The function `BUCKETCOUNT` consumes a GTS off the stack and pushes its bucketcount onto the stack.\\n\\n> Note: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Number of buckets\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETCOUNT\"},{\"name\":\"BUCKETIZE\",\"detail\":\"BUCKETIZE( [ gts:GTS+ bucketizer:AGGREGATOR lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE( [ gtsList:LIST<GTS>+ bucketizer:AGGREGATOR lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE( [ gts:GTS+ macro:MACRO lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE( [ gtsList:LIST<GTS>+ macro:MACRO lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\",\"documentation\":\"The `BUCKETIZE` framework allow to realign datapoints:\\n- A **bucket** is a time interval which spans a certain number of time units called the **bucketspan**\\n- BUCKETIZE sort the geotimeserie input, starts by computing the last bucket defined by **lastbucket**, always going backward in time.\\n- BUCKETIZE ends when there is no more ticks to compute, or when **bucketcount** is reached.\\n\\nThe **bucketizer** is a function that aggregates all the datapoints that falls into the bucket. It means their timestamp belongs to range `](bucketEnd - bucketspan);bucketEnd]`. If there is no datapoint in the bucket range, there is no aggregate output for the bucket, and `BUCKETIZE` jumps to the next non empty bucket.\\n\\n\\n###### Parameters\\n\\n| last bucket | bucket span | bucket count | |\\n|---|---|---|---|\\n| 0 | span |0 | `BUCKETIZE` will choose last bucket as multiple of the bucket span, and will adjust bucketcount to cover all the input time range. This is the most straightforward way to use `BUCKETIZE`. As last bucket is a multiple of bucket span, **results will be aligned**. |\\n| lastbucket | span | 0 | `BUCKETIZE` will adjust bucketcount to cover all the input time range. As lastbucket is fixed, **results will be aligned**. |\\n| 0 | span | count | `BUCKETIZE` will choose the GTS last tick as last bucket, and stop computation as soon as bucket count is reached. Results may not be aligned. |\\n| 0 | 0 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts + 1) / bucket count`. Results may not be aligned.|\\n| 0 | -1 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts) / (bucket count - 1)`. Results may not be aligned.|\\n\\n\\nAll the output will be bucketized. The bucket span and last bucket can be retrieved with [`BUCKETSPAN`](/doc/BUCKETSPAN) and [`BUCKETCOUNT`](/doc/BUCKETCOUNT).\\n\\nUp to bucketization, the other WarpLib functions will process the series differently. Empty buckets will be considered as values. You may need to remove the bucketized property from a GTS, with [`UNBUCKETIZE`](/doc/UNBUCKETIZE) function.\\n\\n###### Aggregators\\n\\nYou can use `BUCKETIZE` with 3 different type of aggregators:\\n- The WarpLib aggregators: they are all named **bucketizer.xxx**, you will find them in the [bucketizer section](/tags/bucketizer).\\n- A macro: for each bucket, BUCKETIZE will push a new sub Geo Time Series™ which will contain the ticks and values that falls in current bucket, then execute the macro. The macro can process the GTS, and let the aggregation result on the stack.\\n- A MACROBUCKETIZER: see [`MACROBUCKETIZER`](/doc/MACROBUCKETIZER) documentation.\\n\\n\\nIf the bucketizer argument is NULL, then BUCKETIZE do not create any new Geo Time Series™ but instead sets the lastbucket, bucketspan and bucketcount of its inputs without processing their data.\\n\\n`BUCKETIZE` output is always a list of GTS, even if the input is a single GTS.\\n\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so the first value of the geo time series is at the beginning of the first bucket.\\n\\n@param `bucketspan` Width in time units of each bucket. If `bucketspan` is 0 but `bucketcount` is set, WarpScript will compute `bucketspan` so `bucketcount` buckets cover the complete set of values from firsttick to lasttick. If this value is set to -1, the number of buckets is computed so the first tick is towards the end of the first bucket.\\n\\n@param `lastbucket` Specifies the timestamp in time units since the Unix Epoch of the end of the most recent bucket. If you set this value to 0, this timestamp will be computed automatically so it covers the most recent value of the geo time series and falls on a `bucketspan` boundary.\\n\\n@param `gts` One or more Geo Time Series™\\n\\n@param `gtsList` One or more lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS\\n\\n\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETIZE\"},{\"name\":\"BUCKETIZE.CALENDAR\",\"detail\":\"BUCKETIZE.CALENDAR( [ gts:GTS+ bucketizer:AGGREGATOR lastbucket:LONG bucketduration:STRING bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE.CALENDAR( [ gts:GTS+ macro:MACRO lastbucket:LONG bucketduration:STRING bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE.CALENDAR( [ gts:GTS+ bucketizer:AGGREGATOR lastbucket:LONG bucketduration:STRING bucketcount:LONG timezone:STRING ] ): result:LIST<GTS>\\nBUCKETIZE.CALENDAR( [ gts:GTS+ macro:MACRO lastbucket:LONG bucketduration:STRING bucketcount:LONG timezone:STRING ] ): result:LIST<GTS>\",\"documentation\":\"Creates bucketized Geo Time Series with buckets that span a calendar duration that can be irregular (e.g. taking into account leap years and daylight saving time).\\n\\nInstead of using a bucketspan like the BUCKETIZE framework, it uses a bucketduration: a STRING in [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format, as `PyYmMwWdDThHmMsS` similarly to that of ADDDURATION function. However, complex bucketdurations that can be non-positive from some ticks are not allowed.\\n\\nIn the result, the tick of each bucket is its index, which is equal to the number of buckets that are ended since Unix Epoch. In particular, the tick of the bucket that contains Unix Epoch is always 0. The resulting GTS is considered bucketized for further operations. Then, the function UNBUCKETIZE.CALENDAR can be used to replace bucket indices with their timestamp end boundaries.\\n\\nThis function answers the limitation of BUCKETIZE to regular buckets. For instance, BUCKETIZE.CALENDAR can be used with a duration of one month (`P1M`) or one year (`P1Y`).\\n\\nThe delta between Unix Epoch and the first timestamp of bucket 0th is called the bucketoffset. The bucketoffset, bucketduration and buckettimezone are stored in the attributes.\\n\\nSee also the macros: [@senx/cal/BUCKETIZE.bymonth](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.bymonth.mc2), [@senx/cal/BUCKETIZE.byyear](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.byyear.mc2).\\n\\n\\n@param `timezone` The timezone to consider. Default to UTC\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so every value of the GTS falls in a bucket.\\n\\n@param `bucketduration` Width in ISO 8601 duration format of each bucket.\\n\\n@param `lastbucket` Specifies the timestamp in platform time units of the end boundary of the most recent bucket. For coherency with BUCKETIZE, this value can not be set to 0.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS in the new time referential\\n\\n\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"BUCKETIZE.CALENDAR\"},{\"name\":\"BUCKETSPAN\",\"detail\":\"BUCKETSPAN( gts:GTS ): result:LONG\",\"documentation\":\"The function `BUCKETSPAN` consumes a GTS off the stack and pushes its bucketspan onto the stack.\\n\\n> when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Bucketspan\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETSPAN\"},{\"name\":\"BYTES->\",\"detail\":\"BYTES->( bytes:BYTES charset:STRING ): result:STRING\",\"documentation\":\"Converts a bytes array into a string with given a charset and put the string on top of the stack.\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\n\\n@param `charset` Charset to use\\n\\n@param `bytes` Bytes array to convert\\n\\n@param `result` String converted byte array\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"F__JGKBhEV\"},{\"name\":\"BYTESTOBITS\",\"detail\":\"BYTESTOBITS( bytesarray:BYTES ): result:BITSET\",\"documentation\":\"Converts a byte array into a bitset.\\n\\n@param `bytesarray` Bytes array\\n\\n@param `result` Bitset\\n\\n\",\"tags\":[\"bitset\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BYTESTOBITS\"},{\"name\":\"CALL\",\"detail\":\"CALL( params:STRING program:STRING ): result:STRING\",\"documentation\":\"The `CALL` function invokes the external program whose path (relative to the `warpscript.call.directory` directory) is on top of the stack. The calling convention will pass to the external\\nprogram the **STRING** object below the path on a line by itself on standard input after having URL encoded the **STRING**. The invoked\\nprogram is expected to return a URL encoded **STRING** object if invocation was successful, or a string starting with a space and followed by a URL encoded error message if an error was encoutered.\\n\\nIf you need to pass complex structures to the invoked program, you can use functions such as [`->JSON`](/doc/AIt9JoxD), [`->PICKLE`](/doc/AItFHJCAI3J)\\nand [`->B64`](/doc/AIt1CYF) to encode the input prior to the invocation.\\n\\nExamples of callable programs are provided in [shell](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/sh/callable.sh)\\nand [python](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/python/callable.py).\\n\\nThe program must be stored in the directory described by the `warpscript.call.directory` configuration parameter.\\n\\nThe program must first output on the stdout the number of concurrent thread allowed.\\n\\nExample:\\n\\n```bash\\n#!/bin/bash\\necho 5 # 5 threads allowed\\nurldecode() {\\n  # urldecode <string>\\n  local url_encoded=\\\"${1//+/ }\\\"\\n  printf '%b' \\\"${url_encoded//%/\\\\\\\\x}\\\"\\n}\\nwhile true\\n\\ndo\\n  read line\\n  line=`urldecode \\\"${line}\\\"` # read the params given by the WarpScript\\n  echo $line # Will be pushed on the stack\\ndone\\n```\\n\\n@param `program` Program path\\n\\n@param `params` URL encoded input\\n\\n@param `result` URL encoded output\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"CALL\"},{\"name\":\"CAPADD\",\"detail\":\"CAPADD( token:STRING ): \",\"documentation\":\"The `CAPADD` function extracts capabilities from a `READ` or `WRITE` token and adds them to the current execution environment.  All the capabilities contained in the token will be added except those which are already set in the WarpScript execution environment.\\n\\n@param `token` Token whose capabilities must be extracted and added to the execution environment.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPADD\"},{\"name\":\"CAPCHECK\",\"detail\":\"CAPCHECK( capability:STRING ): set:BOOLEAN\",\"documentation\":\"Checks if a capability is set in the current execution environment.\\n\\n@param `capability` Name of the capability to check.\\n\\n@param `set` Boolean indicating whether or not `capability` is set.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPCHECK\"},{\"name\":\"CAPDEL\",\"detail\":\"CAPDEL( capability:STRING ): \\nCAPDEL( capabilities:LIST<STRING> ): \",\"documentation\":\"Removes a capability or list of capabilities from the current execution environment. This function can prove handy when willing to add capabilities from a token to an environment which already has certain capabilities set which would prevent the new values to be taken into account.\\n\\n@param `capability` Name of the capability to remove.\\n\\n@param `capabilities` List of names of capabilities to remove. If the list is empty, all capabilities will be removed.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPDEL\"},{\"name\":\"CAPGET\",\"detail\":\"CAPGET( capability:STRING ): value:STRING\\nCAPGET( capabilities:LIST<STRING> ): values:MAP\",\"documentation\":\"Retrieves values associated with capabilities.\\nWhen the capability was not [added](/doc/CAPADD), returns NULL.\\n\\n@param `capability` Name of the capability to retrieve.\\n\\n@param `capabilities` List of names of capabilities to retrieve. If the list is empty, all capabilities will be retrieved.\\n\\n@param `value` Value associated with `capability`, or NULL when the capability was not added.\\n\\n@param `values` Map of capability name to associated value.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPGET\"},{\"name\":\"CBRT\",\"detail\":\"CBRT( value:NUMBER ): result:DOUBLE\\nCBRT( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCBRT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `CBRT` function consumes a numeric parameter from the top of the stack and pushes back its cubic root.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Cubic root of the given value.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of cubic root of each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cubic root of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CBRT\"},{\"name\":\"CEIL\",\"detail\":\"CEIL( value:NUMBER ): result:DOUBLE\\nCEIL( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCEIL( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `CEIL` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number bigger than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-up value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-up values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-up of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEIL\"},{\"name\":\"CELL->\",\"detail\":\"CELL->( cell:CELL ): details:MAP\",\"documentation\":\"The `CELL->` function extracts informations from a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\nThe informations returned are stored in a `MAP` under the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `row` | A byte array (`BYTES`) containing the row key. |\\n| `cf` | A byte array containing the column family. |\\n| `cq` | A byte array containing the column qualifier. |\\n| `ts` | The timestamp associated with the `Cell`. |\\n| `value` | A byte array containing the value of the `Cell`. |\\n| `tags` | A list of `MAP` instances, one per tag, with `type` (`LONG`) and `value` (`BYTES`) elements. |\\n\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `details` A `MAP` containing the various fields extracted from the `Cell` instance. See above for available informations.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"FoKBI1oy\"},{\"name\":\"CELLCF\",\"detail\":\"CELLCF( cell:CELL ): cf:BYTES\",\"documentation\":\"The `CELLCF` function returns the column family associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cf` Byte array containing the column family of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCF\"},{\"name\":\"CELLCQ\",\"detail\":\"CELLCQ( cell:CELL ): cq:BYTES\",\"documentation\":\"The `CELLCQ` function returns the column qualfier associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cq` Byte array containing the column qualifier of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCQ\"},{\"name\":\"CELLROW\",\"detail\":\"CELLROW( cell:CELL ): row:BYTES\",\"documentation\":\"The `CELLROW` function returns the row key associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `row` Byte array containing the row key of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLROW\"},{\"name\":\"CELLTAGS\",\"detail\":\"CELLTAGS( cell:CELL ): tags:LIST<MAP>\",\"documentation\":\"The `CELLTAGS` function returns the tags associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `tags` List of `MAP` instances, one per tag. Each map contains an entry `type` with the type of the tag (`LONG`) and an entry `value` with the associated value (`BYTES`).\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTAGS\"},{\"name\":\"CELLTS\",\"detail\":\"CELLTS( cell:CELL ): ts:LONG\",\"documentation\":\"The `CELLTS` function returns the timestamp associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `ts` Timestamp of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTS\"},{\"name\":\"CELLVALUE\",\"detail\":\"CELLVALUE( cell:CELL ): value:BYTES\",\"documentation\":\"The `CELLVALUE` function returns the value associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `value` Byte array containing the value of the `Cell`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLVALUE\"},{\"name\":\"CEVAL\",\"detail\":\"CEVAL( macros:LIST poolSize:LONG ): result:LIST\",\"documentation\":\"The `CEVAL` function allows you to execute macros in a concurrent way on a pool of threads.\\n\\nAll macros will be executed with the maximum parallelism level specified. Each macro is executed on its own stack. The context of the global stack is\\nreplicated to each of those stacks so each macro will have access to the existing symbols and the redefined functions. Any modification to the symbol\\ntable or redifined functions done in a concurrent macro will not be reflected in the global stack afterwards.\\n\\nEach macro is invoked with its index in the list on top of the stack.\\n\\nUpon termination of each macro, the content of their respective stacks is put into a list, with the top of the stack at index 0, and those lists are\\nmerged into a global list which is then pushed onto the stack. The resulting list for each macro appears at the index of the macro in the original macro list.\\n\\nBeware that no synchronization is implicitely performed between the concurrent macros. If you require synchronization between macros, for example because\\nyou are modifying a list accessible by all macros via a symbol, you must use the [`SYNC`](/doc/SYNC) function.\\n\\nIf one of the macros fail, an attempt to interrupt the other running macros will be done and the failure will be propagated to the other macros. For the\\ntime being, a call to [`STOP`](/doc/STOP) or [`RETURN`](/doc/RETURN) in one of the macros will stop all of them.\\n\\nUse of `CEVAL` is not available from within a macro currently executing in a `CEVAL` call.\\n\\nThe `CEVAL` function is part of the `io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```properties\\n// Enable CEVAL and SYNC functions\\nwarpscript.extension.concurrent = io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension\\n```\\n\\n@param `poolSize` Parallelism level\\n\\n@param `macros` List of macros\\n\\n@param `result` Result list\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEVAL\"},{\"name\":\"CHECKMACRO\",\"detail\":\"CHECKMACRO( name:STRING ): \",\"documentation\":\"The `CHECKMACRO` function checks if a macro is defined and aborts the execution when it encounters an undefined macro.\\n\\n@param `name` The macro name\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKMACRO\"},{\"name\":\"CHECKSHAPE\",\"detail\":\"CHECKSHAPE( list:LIST ): result:LIST\\nCHECKSHAPE( { list:LIST  } ): result:LIST\",\"documentation\":\"Return a BOOLEAN indicating whether an input list and its nested lists sizes are coherent together to form a tensor (or multidimensional array).\\n\\n@param `list` The input list.\\n\\n@param `result` true or false.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKSHAPE\"},{\"name\":\"CHRONOEND\",\"detail\":\"CHRONOEND( name:STRING ): \",\"documentation\":\"The `CHRONOEND` function ends a stopwatch with the given name previously started with [`CHRONOSTART`](/doc/CHRONOSTART). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\nIt is a good practice to put `CHRONOEND` in the finally clause of a [`TRY`](/doc/TRY) for the timing to work even if exceptions are thrown.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOEND\"},{\"name\":\"CHRONOSTART\",\"detail\":\"CHRONOSTART( name:STRING ): \",\"documentation\":\"The `CHRONOSTART` function starts a stopwatch with the given name. To stop the stopwatch, call [`CHRONOEND`](/doc/CHRONOEND). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTART\"},{\"name\":\"CHRONOSTATS\",\"detail\":\"CHRONOSTATS(): stats:MAP\",\"documentation\":\"The `CHRONOSTATS` function \\n\\n@param `stats` A map with stopwatches names as keys and maps as values. These maps have two keys, `total_calls` and `total_time`. The former gives the number of calls to [`CHRONOSTART`](/doc/CHRONOSTART) and the latter gives the cumulative time between [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND) in **nanoseconds**.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTATS\"},{\"name\":\"CHUNK\",\"detail\":\"CHUNK( gts:GTS lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<GTS>\\nCHUNK( gtsList:LIST<GTS> lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<GTS>\\nCHUNK( encoder:GTSENCODER lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): resultEncoders:LIST<GTSENCODER>\\nCHUNK( lEncoder:LIST<GTSENCODER> lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): resultEncoders:LIST<GTSENCODER>\",\"documentation\":\"The `CHUNK` is used to split a Geo Time Series™ into partial GTS. The split operation is controlled by multiple parameters.\\nThe series will be splitted in chunks, each chunks will form a new GTS, with a label value corresponding to its first tick.\\n\\n@param `keepempty` If true empty chunks are kept\\n\\n@param `chunklabel` The label name of the label added by the split operation (with a value corresponding to the first tick of the chunk).\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` An overlap duration (in time units) between chunks, this is useful when chunking a GTS to apply an algorithm which operates on a sliding window.\\n\\n@param `chunkwidth` The width in time units of each chunk.\\n\\n@param `lastchunkend` The end timestamp of the most recent split to consider.\\n\\n@param `gts` A single GTS instance.\\n\\n@param `gtsList` A GTS list to split, each GTS will be splitted individually.\\n\\n@param `encoder` A single GTS Encoder instance.\\n\\n@param `lEncoder` A GTS Encoder list to split, each GTS Encoder will be splitted individually.\\n\\n@param `result` GTS Chunks, a list formed with its partial GTS.\\n\\n@param `resultEncoders` GTS Encoders Chunks, a list formed with its partial GTS Encoders.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CHUNK\"},{\"name\":\"CHUNKENCODER\",\"detail\":\"CHUNKENCODER( GTSEncoder:GTSENCODER lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<GTSENCODER>\\nCHUNKENCODER( GTSEncoderList:LIST<GTSENCODER> lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<LIST<GTSENCODER>>\",\"documentation\":\"The `CHUNKENCODER` function is used to split a [GTSEncoder](/doc/NEWENCODER) into partial GTSEncoder. The user defines some parameters that will \\nbe applied to the split operation. The series will be splitted in chunks, each chunks will form a new GTSEncoder, with a label value \\ncorresponding to its first tick.\\n\\nDeprecated since 2.1, use CHUNK instead which behaves the same.\\n\\n@param `keepempty` If true empty chunk are kept\\n\\n@param `chunklabel` The label name of the label added by this split operation (add a value corresponding to the first tick of the chunk). Could be a regular expression.\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` A time overlap for each chunks in time units.\\n\\n@param `chunkwidth` The width in time unit of each chunks in time units.\\n\\n@param `lastchunkend` The split operation end when it encounters this timestamp.\\n\\n@param `GTSEncoder` A single GTSEncoder \\n\\n@param `GTSEncoderList` A GTSEncoder list to split, each GTSEncoder will be splitted individually.\\n\\n@param `result` GTSEncoder Chunks, a list formed with its partial GTSEncoder\\n\\n\",\"tags\":[\"encoder\"],\"since\":\"1.2.9\",\"OPB64name\":\"CHUNKENCODER\"},{\"name\":\"CLEAR\",\"detail\":\"CLEAR( input:ANY* ): \",\"documentation\":\"The `CLEAR` function empties the stack.\\n\\n@param `input` all the input on the stack will be erased from the stack.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEAR\"},{\"name\":\"CLEARDEFS\",\"detail\":\"\",\"documentation\":\"The `CLEARDEFS` function allows you to clear all [redefined WarpScript functions](/doc/DEF).\\n\\nBy default, all redefined WarpScript function, will not be available anymore. Set the `warpscript.def.unshadow` \\nconfiguration property to change this behaviour.\\n\\nThis configuration parameter determines if undefining a function (via NULL 'XXX' DEF) will unshadow the original statement \\nthus making it available again or if it will replace it with a function that will fail with a message saying the function is undefined.\\nThe safest behavior is to leave this undefined or set to **false**.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARDEFS\"},{\"name\":\"CLEARREGS\",\"detail\":\"CLEARREGS(): value:ANY\",\"documentation\":\"Clears all registers, setting their current value to `NULL`.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CLEARREGS\"},{\"name\":\"CLEARSYMBOLS\",\"detail\":\"\",\"documentation\":\"The `CLEARSYMBOLS` function clears all symbols defined with the function [`STORE`](/doc/STORE).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARSYMBOLS\"},{\"name\":\"CLEARTOMARK\",\"detail\":\"CLEARTOMARK( mark:MARK inputs:ANY* ): \",\"documentation\":\"Removes elements from the stack up to and including the first mark encountered.\\n\\n@param `inputs` all the inputs references on the stack will be erased\\n\\n@param `mark` the mark will also be erased\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARTOMARK\"},{\"name\":\"CLIP\",\"detail\":\"CLIP( gts:GTS bounds:LIST<LIST<LONG>> ): result:LIST<GTS>\\nCLIP( lgts:LIST<GTS> bounds:LIST<LIST<LONG>> ): result:LIST<LIST<GTS>>\\nCLIP( encoder:GTSENCODER bounds:LIST<LIST<LONG>> ): result:LIST<GTSENCODER>\\nCLIP( lencoder:LIST<GTSENCODER> bounds:LIST<LIST<LONG>> ): result:LIST<LIST<GTS>>\",\"documentation\":\"The `CLIP` function clips a Geo Time Series™, encoders or list thereof according to a series of limits. The limits are lists of pair containing the lower and upper \\ntimestamps used to clip. Each pair will generate a clipped GTS or encoder for each instance.\\n\\n@param `bounds` List of timestamp pairs. Each pair is a list of LONG.\\n\\n@param `gts` GTS to clip\\n\\n@param `lgts` List of GTSs to clip\\n\\n@param `encoder` Emcoder to clip\\n\\n@param `lencoder` List of encoders to clip\\n\\n@param `result` List of clipped GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.0\",\"OPB64name\":\"CLIP\"},{\"name\":\"CLONE\",\"detail\":\"CLONE( gts:GTS ): original:GTS clone:GTS\\nCLONE( list:LIST ): original:LIST clone:LIST\\nCLONE( map:MAP ): original:MAP clone:MAP\\nCLONE( set:SET ): original:SET clone:SET\\nCLONE( vector:VECTOR ): original:VECTOR clone:VECTOR\\nCLONE( encoder:GTSENCODER ): original:GTSENCODER clone:GTSENCODER\",\"documentation\":\"The `CLONE` function does a shallow copy of a given Geo Time Series™, List, Map or Vector. Since 2.1.1 it can also clone Encoders.\\n\\nAs it makes a shallow copy, be careful when using CLONE on a List of Geo Time Series™ like those generated by the use of [`FETCH`](/doc/FETCH). Modifying a Geo Time Series™ in any of those list will alter the matching Geo Time Series™ in the other List.\\nIf you want to use `CLONE` after a [`FETCH`](/doc/FETCH), you will need to extract the Geo Time Series™ from the list, for example by using [`LIST->`](/doc/I3_IK1oy), [`GET`](/doc/GET) or [`LMAP`](/doc/LMAP).\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `list` The List to clone\\n\\n@param `map` The Map to clone\\n\\n@param `set` The Set to clone\\n\\n@param `vector` The Vector to clone\\n\\n@param `encoder` The Encoder to clone\\n\\n@param `clone` The cloned Geo Time Series™, List, Map, Vector or Encoder\\n\\n@param `original` The original Geo Time Series™, List, Map, Vector or Encoder\\n\\n\",\"tags\":[\"gts\",\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONE\"},{\"name\":\"CLONEEMPTY\",\"detail\":\"CLONEEMPTY( gts:GTS ): result:GTS\\nCLONEEMPTY( gtsList:LIST<GTS> ): resultList:LIST<GTS>\\nCLONEEMPTY( encoder:GTSENCODER ): encoderResult:GTSENCODER\\nCLONEEMPTY( encoderList:LIST<GTSENCODER> ): encoderResultList:LIST<GTSENCODER>\",\"documentation\":\"Clones a Geo Time Series™, an Encoder or all the instances in a list of Geo Time Series™ or an Encoder, keeping only the metadata and not the values.\\n\\nThe `CLONEEMPTY` function takes as parameter a Geo Time Series™, an Encoder or a list thereof. It creates an empty clone of the input with only his metadata. The cloned metadata are:\\n * Classname\\n * Labels\\n * Attributes\\n * Lastbucket, for Geo Time Series™ only\\n * Bucketspan, for Geo Time Series™ only\\n * Bucketcount, for Geo Time Series™ only\\n * Base timestamp, for Encoders only\\n * Wrapping key, for Encoders only\\n\\nThe input parameter is consumed and the clone or list of clones is left on the stack.\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `gtsList` The list of Geo Time Series™ to clone\\n\\n@param `result` The cloned Geo Time Series™\\n\\n@param `resultList` The cloned list of Geo Time Series™\\n\\n@param `encoder` The encoder to clone\\n\\n@param `encoderList` The list of encoder to clone\\n\\n@param `encoderResult` The cloned encoder\\n\\n@param `encoderResultList` The cloned list of encoders\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEEMPTY\"},{\"name\":\"CLONEREVERSE\",\"detail\":\"CLONEREVERSE( input:LIST ): output:LIST\\nCLONEREVERSE( input:STRING ): output:STRING\\nCLONEREVERSE( input:BYTES ): output:BYTES\",\"documentation\":\"The function CLONEREVERSE clone the input and reverses the order of the elements. \\nOutput is a reference to a new object.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n@param `input` reference of the list or string to reverse.\\n\\n@param `output` reference to a new reversed list or string or byte array.\\n\\n\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEREVERSE\"},{\"name\":\"COMMONTICKS\",\"detail\":\"COMMONTICKS( gtsList:LIST<GTS> ): result:LIST<GTS>\",\"documentation\":\"Take a list of Geo Time Series™ and output A GTS list with only the set of ticks they have in common compared by timestamp.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with common ticks\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMMONTICKS\"},{\"name\":\"COMPACT\",\"detail\":\"COMPACT( gts:GTS ): result:GTS\\nCOMPACT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `COMPACT` function produces GTS with fewer values, by removing measurements which have the same value, location and elevation as the previous one.\\n\\nIt expects a Geo Time Series™ or a **LIST** of GTS as parameter.\\n\\nThe first tick will be kept, then ticks with value or position change will be kept. The last tick from the original GTS will be copied, in order to keep the same LASTTICK.\\n\\n@param `gts` A GTS to compact\\n\\n@param `gtsList` A GTS list to compact\\n\\n@param `result` A compacted GTS\\n\\n@param `resultList` A compacted GTS list\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMPACT\"},{\"name\":\"CONTAINS\",\"detail\":\"CONTAINS( list:LIST item:ANY ): list:LIST presence:BOOLEAN\\nCONTAINS( set:SET item:ANY ): set:LIST presence:BOOLEAN\\nCONTAINS( str:STRING substr:STRING ): presence:BOOLEAN\",\"documentation\":\"The `CONTAINS` function checks if the element on top of the stack is contained by the list on second position. A boolean is pushed on the stack.\\n\\nIf the parameters are two STRINGs, `CONTAINS` checks if the second STRING is contained in the first one, leaving a boolean on the stack. This latter usage is available since revision 2.1.0.\\n\\n@param `item` Depending on list construction, could be a number, a string, a boolean, NULL, a GTS...\\n\\n@param `presence` true if inputlist contains the item. false otherwise or if inputlist is empty.\\n\\n@param `list` reference to the LIST to search.\\n\\n@param `set` reference to the SET to search.\\n\\n@param `str` STRING in which to find `substr`.\\n\\n@param `substr` STRING to find in `str`.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINS\"},{\"name\":\"CONTAINSKEY\",\"detail\":\"CONTAINSKEY( inputmap:MAP key:ANY ): outputmap:MAP presence:BOOLEAN\",\"documentation\":\"The `CONTAINSKEY` function checks if the key element on top of the stack is a key \\nof the map on second position. \\n\\nThe key is consumed, and a boolean is pushed on the stack.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this key. Do not trust presence if key is NULL.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSKEY\"},{\"name\":\"CONTAINSVALUE\",\"detail\":\"CONTAINSVALUE( inputmap:MAP value:ANY ): outputmap:MAP presence:BOOLEAN\",\"documentation\":\"The `CONTAINSVALUE` function checks if the value element on top of the stack is a value \\nof the map on second position. \\n\\nThe value is consumed, and a boolean is pushed on the stack.\\n\\n@param `value` Depending on map construction, could be a number, a string, a boolean, NULL.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this value in at least one pair of its key-value.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSVALUE\"},{\"name\":\"CONTINUE\",\"detail\":\"\",\"documentation\":\"Immediately stop executing the current iteration of an ongoing loop and start the next one.\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTINUE\"},{\"name\":\"COPYGEO\",\"detail\":\"COPYGEO( gts:GTS geogts:GTS ): result:GTS\\nCOPYGEO( gtsList:LIST<GTS> geogts:GTS ): resultList:LIST<GTS>\",\"documentation\":\"The `COPYGEO` function forces the location elements of a GTS onto others. `COPYGEO` expects two parameters on the stack.\\nFirst input is GTS or a gts list: those series(s) will have their location overwritten by the one of the second GTS parameter. Geo information will be copied only if they are present in the second paramaters on the same tick otherwise it keep the existing location. See [`COMMONTICKS`](/doc/COMMONTICKS) to keep only commonticks before calling `COPYGEO`.\\n\\n@param `gts` A GTS\\n\\n@param `gtsList` A list of GTS\\n\\n@param `geogts` A GTS with the geo information you want to copy to other (list of) gts.\\n\\n@param `result` A GTS with the geo information of the geogts input\\n\\n@param `resultList` A list of GTS with the geo information of the geogts input\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYGEO\"},{\"name\":\"COPYSIGN\",\"detail\":\"COPYSIGN( p1:NUMBER p2:NUMBER ): result:DOUBLE\\nCOPYSIGN( p1:NUMBER list2:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCOPYSIGN( list1:LIST<NUMBER> p2:NUMBER ): lresult:LIST<DOUBLE>\\nCOPYSIGN( p1:NUMBER gts2:GTS ): gtsresult:GTS\\nCOPYSIGN( gts1:GTS p2:NUMBER ): gtsresult:GTS\",\"documentation\":\"The `COPYSIGN` function copies the sign of a number on another one and pushes back the value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `p1` Numerical value on which sign is applied\\n\\n@param `p2` Numerical value from which sign is extracted\\n\\n@param `list1` List of numerical values on which sign is applied\\n\\n@param `list2` List of numerical values from which sign is extracted\\n\\n@param `gts1` Numerical GTS on which sign is applied\\n\\n@param `gts2` Numerical GTS from which sign is extracted\\n\\n@param `result` Value of p1 with the sign of p2 s a DOUBLE\\n\\n@param `lresult` List of results\\n\\n@param `gtsresult` Numerical GTS of results\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYSIGN\"},{\"name\":\"CORRELATE\",\"detail\":\"CORRELATE( baseGTS:GTS gtsList:LIST timeOffsets:LIST ): result:LIST<GTS>\",\"documentation\":\"The `CORRELATE` function allows you to compute correlation between one base Geo Time Series™ and a set of others. \\nBy putting the base GTS in the set of others, cross correlation can be computed.\\n\\n@param `baseGTS` The base Geo Time Series\\n\\n@param `gtsList` A list of Geo Time Series against which to compute the correlation\\n\\n@param `timeOffsets` A list of time offsets for which the correlation will be computed (expressed in time units of the Warp instance)\\n\\n@param `result` A list of synthetic Geo Time Series™ whose timestamps are the offsets from the initial offset list and the values are the computed correlations. There is one GTS per GTS in the list at TOP-1.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CORRELATE\"},{\"name\":\"COS\",\"detail\":\"COS( value:NUMBER ): result:DOUBLE\\nCOS( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCOS( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `COS` function consumes a floating point number from the top of the stack and pushes back its cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Cosine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cosine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COS\"},{\"name\":\"COSH\",\"detail\":\"COSH( value:NUMBER ): result:DOUBLE\\nCOSH( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCOSH( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `COSH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic cosine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic cosine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COSH\"},{\"name\":\"COUNTER\",\"detail\":\"COUNTER(): counter:COUNTER\",\"documentation\":\"The `COUNTER` function pushes a counter (AtomicLong) initialized with the value 0 onto the stack.\\n\\nThis atomic counter can be safely shared in multiple concurrent macros (see [`CEVAL`](/doc/CEVAL)).\\n\\n@param `counter` Counter instance.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTER\"},{\"name\":\"COUNTERDELTA\",\"detail\":\"COUNTERDELTA( counter:COUNTER increment:LONG ): counter:COUNTER\",\"documentation\":\"The `COUNTERDELTA` function increments a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `increment` Counter increment.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERDELTA\"},{\"name\":\"COUNTERSET\",\"detail\":\"COUNTERSET( counter:COUNTER value:LONG ): counter:COUNTER\",\"documentation\":\"The `COUNTERSET` function set the value of a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `value` Counter value.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.2.22\",\"OPB64name\":\"COUNTERSET\"},{\"name\":\"COUNTERVALUE\",\"detail\":\"COUNTERVALUE( counter:COUNTER ): value:LONG\",\"documentation\":\"The `COUNTERVALUE` function pushes the counter value onto the stack.\\n\\n@param `counter` The counter instance.\\n\\n@param `value` The value of the counter.\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERVALUE\"},{\"name\":\"COUNTTOMARK\",\"detail\":\"COUNTTOMARK(): result:LONG\",\"documentation\":\"Counts the number of elements on the stack up to but excluding the first mark encountered. Neither the mark nor the\\nelements on top of it are removed from the stack.\\n\\n@param `result` Stack depth until `MARK`\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTTOMARK\"},{\"name\":\"CPOPR\",\"detail\":\"CPOPR( value:ANY ): \",\"documentation\":\"Pops a value from the top of the stack and stores it into the designated register if the register is empty (*i.e.* has `NULL` as its current value).\\n\\nThe `CPOPR` function is really a family of functions named `CPOPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CPOPR\"},{\"name\":\"CPROB\",\"detail\":\"CPROB( gts:GTS separator:STRING ): result:GTS\\nCPROB( lgts:LIST<GTS> separator:STRING ): lresult:LIST<GTS>\",\"documentation\":\"The function `CPROB` generates a new Geo Time Series™ from an input Geo Time Series™ by computing a conditional probability.\\n\\nThe function expects a **STRING** separator on top of the stack and expects the input Geo Time Series™ to have \\nvalues of the form given1< SEP >given2< SEP >....< SEP >event. It will then emit P(event|given1,given2,...).\\n\\nIf the separator is **NULL**, `CPROB` behaves like [`PROB`](/doc/PROB).\\n\\n@param `separator` Value separator\\n\\n@param `gts` Geo Time Series™\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `lresult` List of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.6\",\"OPB64name\":\"CPROB\"},{\"name\":\"CROP\",\"detail\":\"CROP( gts:GTS ): result:GTS\\nCROP( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `CROP` function works on bucketized Geo Time Series™ instances, it transforms a GTS into another one whose bucketcount, last bucket parameters span the smallest interval with actual values. Bucket span remains the same.\\n\\nWhen called on a non bucketized GTS instance, `CROP` simply clones it.\\n\\nThis function expects a list of GTS instances on the top of the stack.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `resultList` A list of cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"CROP\"},{\"name\":\"CSTORE\",\"detail\":\"CSTORE( value:ANY symbol:STRING ): \\nCSTORE( value:ANY register:LONG ): \",\"documentation\":\"The `CSTORE` function stores a value in a symbol or a register only if that symbol or register is not yet defined. The name of this function stands for Conditional STORE.\\n\\n@param `symbol` Name of symbol under which to store `value`.\\n\\n@param `register` Number of the register under which to store `value`.\\n\\n@param `value` Value to store unde `symbol`.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CSTORE\"},{\"name\":\"CUDF\",\"detail\":\"CUDF( class:STRING ): \",\"documentation\":\"The `CUDF` function invokes a User Defined Function from a Jar as [`UDF`](/doc/UDF) but reuses a cached instance of the function.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CUDF\"},{\"name\":\"DEBUGOFF\",\"detail\":\"\",\"documentation\":\"Turns off stack debugging which was turned on by [`DEBUGON`](/doc/DEBUGON) or [`NDEBUGON`](/doc/NDEBUGON).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGOFF\"},{\"name\":\"DEBUGON\",\"detail\":\"\",\"documentation\":\"Turns on stack debugging which returns the stack content in case of error. Stack debugging is off by default.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGON\"},{\"name\":\"DECREMENTEXACT\",\"detail\":\"DECREMENTEXACT( value:NUMBER ): result:LONG\\nDECREMENTEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nDECREMENTEXACT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `DECREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value decremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be decremented by one\\n\\n@param `result` The decremented value\\n\\n@param `lvalue` List of values to be decremented by one\\n\\n@param `lresult` List of decremented values\\n\\n@param `gts` GTS whose values are to be decremented by one\\n\\n@param `gtsresult` GTS of decremented values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"DECREMENTEXACT\"},{\"name\":\"DEDUP\",\"detail\":\"DEDUP( gts:GTS ): result:GTS\\nDEDUP( gts:GTS mapper:AGGREGATOR ): lresult:GTS\\nDEDUP( gts:GTS macro:MACRO ): lresult:GTS\\nDEDUP( lgts:LIST<GTS> ): lresult:LIST<GTS>\\nDEDUP( lgts:LIST<GTS> mapper:AGGREGATOR ): lresult:LIST<GTS>\\nDEDUP( lgts:LIST<GTS> macro:MACRO ): lresult:LIST<GTS>\",\"documentation\":\"Removes duplicate ticks.\\n\\nThe `DEDUP` function consumes a Geo Time Series™ or a **LIST** thereof from the top of the stack and pushes back the Geo Time Series™ with deduplicated ticks.\\n\\nSince the 2.7.0 version, this function can be given an optional mapper or macro to combine the duplicate data points.\\n\\n@param `gts` The Geo Time Series™ to deduplicate\\n\\n@param `result` The Geo Time Series™ with deduplicated ticks\\n\\n@param `lgts` The list of Geo Time Series™ to deduplicate\\n\\n@param `lresult` The list of Geo Time Series™ with deduplicated ticks\\n\\n@param `mapper` Mapper used to aggregate duplicate values\\n\\n@param `macro` Macro used to aggregate duplicate values given as a GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEDUP\"},{\"name\":\"DEF\",\"detail\":\"DEF( newDef:MACRO name:STRING ): \",\"documentation\":\"The `DEF` function allows you to define new WarpScript functions or redefine existing ones for the duration of your script execution.\\n\\nThe function expects on the stack a macro which will be used as the content of the newly defined function, and a name under which to define the new function.\\n\\nWhen redefining a function, if the function being redefined is used within the macro, the code which will be executed is the current one, \\nas the binding of function to code is done at the time when the macro is defined and not when it is executed.\\n\\nYou may therefore add limits to the use of an existing function by rewrapping it in a macro which will be associated with the original function name.\\n\\nTo remove redefined functions see [`CLEARDEFS`](/doc/CLEARDEFS).\\n\\n@param `name` New function name\\n\\n@param `newDef` Macro which will be used as the content of the newly defined function\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEF\"},{\"name\":\"DEFINED\",\"detail\":\"DEFINED( name:STRING ): result:BOOLEAN\",\"documentation\":\"The `DEFINED` function checks whether or not a symbol is defined.\\n\\n@param `name` Symbol name\\n\\n@param `result` Whether or not the symbol is defined\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEFINED\"},{\"name\":\"DEFINEDMACRO\",\"detail\":\"DEFINEDMACRO( name:STRING ): result:BOOLEAN\",\"documentation\":\"The `DEFINEDMACRO` function checks if a macro is defined and pushes true or false on the stack accordingly.\\n\\n@param `name` The macro name\\n\\n@param `result` True if the macro is defined, false otherwise\\n\\n\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.16\",\"OPB64name\":\"DEFINEDMACRO\"},{\"name\":\"DEFLATE\",\"detail\":\"DEFLATE( string:STRING ): compressed:BYTES\\nDEFLATE( bytes:BYTES ): compressed:BYTES\",\"documentation\":\"The `DEFLATE` function compresses a STRING or a byte array using the [Zlib](https://en.wikipedia.org/wiki/Zlib) library. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"DEFLATE\"},{\"name\":\"DELETE\",\"detail\":\"DELETE( writeToken:STRING gts_selector:STRING start_timestamp:LONG end_timestamp:LONG count:LONG ): result:LONG\",\"documentation\":\"The `DELETE` function is used to delete a set of GTS from a Warp 10 platform. A delete endpoint must be set on the Warp 10 configuration.\\n\\nDelete expects 5 parameters on top of the stack: the write token of the Warp 10 application, a string corresponding to a gts selector, a start \\nand a end timestamp and finally the number of GTS expected to be deleted.\\n\\nIf you specify start and end, Warp 10 will delete datapoints. If there is not any datapoints left, the GTS will remain in the directory (FIND will return it). To delete all datapoints and the directory entry, use NULL for end_timestamp and start_timestamp. FIND won't find anything after a delete all.\\n\\nFor safety reasons `DELETE` will first perform a dryrun call to the /delete endpoint to retrieve the number of GTS which would be deleted by the call. \\nIf this number is above the expected number provided by the user the actual delete will not be performed and instead an error will be raised.\\n\\nDelete will push as a result the number of GTS really deleted.\\n\\nSince 2.7.3, when setting `NULL` as the number of GTSs to delete, the `DELETE` function runs in dry mode. This means no GTS is deleted and the function returns the GTSs list that would be considered by the `DELETE`.\\n\\nOn a standalone version, deleting data will not free disk space until the next compaction. If you want to immediatly free disk space, contact us to get the leveldb plugin.\\n\\n\\n@param `count` Number of GTS expected to be deleted or NULL for a dryrun\\n\\n@param `end_timestamp` End timestamp or NULL\\n\\n@param `start_timestamp` Start timestamp or NULL\\n\\n@param `gts_selector` GTS selector\\n\\n@param `writeToken` Write token\\n\\n@param `result` Actual deleted GTS count\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.5\",\"OPB64name\":\"DELETE\"},{\"name\":\"DELETEOFF\",\"detail\":\"DELETEOFF( message:STRING secret:STRING ): \",\"documentation\":\"Disables delete operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a delete operation is attempted.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEOFF\"},{\"name\":\"DELETEON\",\"detail\":\"DELETEON( secret:STRING ): \",\"documentation\":\"Enables delete operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEON\"},{\"name\":\"DEPTH\",\"detail\":\"DEPTH(): result:LONG\",\"documentation\":\"The `DEPTH` function pushes on top of the stack the depth (i.e. number of levels) of the stack prior to the call.\\n\\n@param `result` Stack depth\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEPTH\"},{\"name\":\"DEREF\",\"detail\":\"DEREF( macro:MACRO values:MAP ): macro:MACRO\",\"documentation\":\"Replaces in a Macro the occurrences of symbol dereferencing (`$x`) or calls to `LOAD` with a `STRING` argument or calls to `PUSHRx` by the values associated with either the symbol name or register number in a parameter map.\\n\\nValues are used verbatim except for Macros which are inserted as functions, *i.e.* they are inserted followed by a call to `EVAL` so they are executed in the target macro instead of ending up on the stack. If you wish to replace a symbol dereference by a Macro, you need to write the macro inside of another Macro.\\n\\n\\n@param `macro` Macro to transform.\\n\\n@param `values` Map of symbol name or register number to replacement value.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.3.0\",\"OPB64name\":\"DEREF\"},{\"name\":\"DET\",\"detail\":\"DET( matrix:MATRIX ): det:DOUBLE\",\"documentation\":\"Computes the [determinant](https://en.wikipedia.org/wiki/Determinant) of a matrix.\\n\\n@param `matrix` The matrix for which to compute the determinant.\\n\\n@param `det` The computed determinant.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"DET\"},{\"name\":\"DIFFERENCE\",\"detail\":\"DIFFERENCE( setA:SET setB:SET ): output:SET\",\"documentation\":\"Computes the difference between two sets.\\n\\nThe `DIFFERENCE` function consumes two sets from the top of the stack and pushes back its mathematical difference (ie: the elements in *A* but not in *B*).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* - *B*, the set of elements in *A* but not in *B*\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"DIFFERENCE\"},{\"name\":\"DISCORDS\",\"detail\":\"DISCORDS( lgts:LIST<GTS> wsize:LONG length:LONG scale:LONG maximum:LONG overlapping:BOOLEAN distance:DOUBLE ): lresult:LIST<GTS>\\nDISCORDS( gts:GTS wsize:LONG length:LONG scale:LONG maximum:LONG overlapping:BOOLEAN distance:DOUBLE ): result:GTS\",\"documentation\":\"The `DISCORDS` function detects discords in a Geo Time Series™. The discord detection algorithm is based on identifying outlier patterns in\\nthe Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `DISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0\\n\\n@param `overlapping` Flag indicating whether or not the `DISCORDS` function should report overlapping discords\\n\\n@param `maximum` The maximum number of discords to identify\\n\\n@param `lresult` The list of Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `result` The Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"DISCORDS\"},{\"name\":\"DOC\",\"detail\":\"DOC( string:STRING ): string:STRING\",\"documentation\":\"Consumes the String on the stack or leave it there and stop the script if the stack is currently in documentation mode ([`DOCMODE`](/doc/DOCMODE)) \\n\\nYou can use it to document macros.\\n\\n@param `string` Text to display in [`DOCMODE`](/doc/DOCMODE)\\n\\n\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOC\"},{\"name\":\"DOCMODE\",\"detail\":\"\",\"documentation\":\"Toggle the 'documentation mode' of the stack\\n\\n\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOCMODE\"},{\"name\":\"DOUBLEBITS->\",\"detail\":\"DOUBLEBITS->( input:LONG ): result:DOUBLE\",\"documentation\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the **LONG** value as the raw bits of the **DOUBLE**\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"G3xKFZl4FZ_JJmoy\"},{\"name\":\"DOUBLEEXPONENTIALSMOOTHING\",\"detail\":\"DOUBLEEXPONENTIALSMOOTHING( gts:GTS alpha:DOUBLE beta:DOUBLE ): result:LIST<GTS>\",\"documentation\":\"The `DOUBLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Double Exponential Smoothing aka Holt's linear trend method](https://www.otexts.org/fpp/7/2) formula.\\n\\nIt consumes three parameters from the top of the stack:\\n * A trend smoothing factor beta (a numeric parameter between 0 < beta < 1)\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** and levels are pushed onto the stack (in this order in the **LIST**).\\n\\n@param `beta` The trend smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The list within the smoothed Geo Time Series™ and its levels\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOUBLEEXPONENTIALSMOOTHING\"},{\"name\":\"DROP\",\"detail\":\"DROP( input:ANY ): \",\"documentation\":\"The `DROP` function removes the element at the top of the stack.\\n\\n@param `input` object reference to drop from the top of the stack.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROP\"},{\"name\":\"DROPN\",\"detail\":\"DROPN( number:NUMBER ): \",\"documentation\":\"The `DROPN` function removes the top N elements of the stack after having consumed N which was on the top of the stack prior to calling `DROPN`.\\n\\n@param `number` The number of elements to drop\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROPN\"},{\"name\":\"DTW\",\"detail\":\"DTW( gts1:GTS gts2:GTS threshold:DOUBLE ): dtw:DOUBLE\\nDTW( gts1:GTS gts2:GTS threshold:DOUBLE characteristic:STRING ): dtw:DOUBLE\\nDTW( gts1:GTS gts2:GTS threshold:DOUBLE distance:STRING characteristic:STRING ): dtw:DOUBLE\",\"documentation\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"DTW\"},{\"name\":\"DUP\",\"detail\":\"DUP( input:ANY ): input:ANY out:ANY\",\"documentation\":\"The `DUP` function duplicates the element on the top of the stack, it doesn’t copy the content. If you apply DUP to a GTS you will\\nhave two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `input` any parameter on top of the stack\\n\\n@param `out` a reference copy of input on top of the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUP\"},{\"name\":\"DUPN\",\"detail\":\"DUPN( number:NUMBER ): \",\"documentation\":\"The `DUPN` function duplicates the top N elements of the stack after having consumed N which is on the top of the stack when calling `DUPN`.\\n\\nAs the [`DUP`](/doc/DUP) function, `DUPN` duplicates the references of the N elements on the top of the stack, it doesn’t copy the elements.\\nIf you apply `DUPN` to a GTS you will have two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want to copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `number` The number of elements to duplicate\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUPN\"},{\"name\":\"DURATION\",\"detail\":\"DURATION( isoDuration:STRING ): duration:LONG\",\"documentation\":\"The `DURATION` function consumes a **STRING** representing an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) and pushes back a **LONG** duration in platform time unit.\\n\\nThe ISO 8601 duration can be expessed as `PwWdDThHmMsS` with:\\n- `w` weeks\\n- `d` days\\n- `h` hours\\n- `m` minutes\\n- `s` or `s.ssssss...` seconds\\nEach of these values can be either positive or negative. Each value/unit couple can be omitted if the value is zero but at least one value/couple should be defined.\\n\\nIf the consumed ISO 8601 duration has precision under platform time unit, superfluous digits will be ignored. Prior to revision 2.4, precision below milliseconds were always ignored, independently of platform time unit.\\n\\n@param `isoDuration` A representation of a ISO 8601 duration with some limitations, see the description.\\n\\n@param `duration` Number of platform time unit corresponding to the duration.\\n\\n\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"DURATION\"},{\"name\":\"DWTSPLIT\",\"detail\":\"DWTSPLIT( gts:GTS label-name:STRING ): result:GTS\\nDWTSPLIT( lgts:LIST<GTS> label-name:STRING ): lresult:LIST<GTS>\",\"documentation\":\"The `DWTSPLIT` function splits a Geo Time Series™ produced by [`FDWT`](/doc/FDWT) into multiple series, one per resolution level of the Wavelet transform.\\n\\n\\n@param `label-name` Label name used in the generated series to indicate the level of each Geo Time Series™\\n\\n@param `gts` GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `lgts` List of GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `result` Splited GTS\\n\\n@param `lresult` List of splited GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DWTSPLIT\"},{\"name\":\"E\",\"detail\":\"E(): eValue:DOUBLE\",\"documentation\":\"Alias of [e](/doc/OF).\\n\\nThe `E` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"GF\"},{\"name\":\"ECDH\",\"detail\":\"ECDH( private:KEY public:KEY ): secret:STRING\",\"documentation\":\"The `ECDH` function uses the [Elliptic-curve Diffie–Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) key agreement protocol to establish a secret.\\n\\nThe secret is derived from two ECC keys, one public, one private. This secret can be established independently by two parties who only need to share their ECC public keys and combine them with their private keys.\\n\\nThe public and private keys must use the same curve.\\n\\n@param `public` ECC public key.\\n\\n@param `private` ECC private key.\\n\\n@param `secret` Hex encoded secret.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.2\",\"OPB64name\":\"ECDH\"},{\"name\":\"ECGEN\",\"detail\":\"ECGEN( curve:STRING ): private:MAP public:MAP\",\"documentation\":\"The `ECGEN` function generates a public/private key pair parameters suitable for performing [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography).\\n\\nThe resulting parameters can serve as input to [`ECPRIVATE`](/doc/ECPRIVATE) and [`ECPUBLIC`](/doc/ECPUBLIC) to generate the actual private and public keys.\\n\\nThe following curves are supported:\\n\\n`c2pnb272w1`, `c2tnb191v3`, `c2pnb208w1`, `c2tnb191v2`, `c2tnb191v1`, `prime192v3`, `c2tnb359v1`, `prime192v2`, `prime192v1`, `c2tnb239v3`, `c2pnb163v3`, `c2tnb239v2`, `c2pnb163v2`, `c2tnb239v1`, `c2pnb163v1`, `c2pnb176w1`, `prime256v1`, `c2pnb304w1`, `c2pnb368w1`, `c2tnb431r1`, `prime239v3`, `prime239v2`, `prime239v1`, `sect233r1`, `secp112r2`, `secp112r1`, `secp256k1`, `sect113r2`, `secp521r1`, `sect113r1`, `sect409r1`, `secp192r1`, `sect193r2`, `sect131r2`, `sect193r1`, `sect131r1`, `secp160k1`, `sect571r1`, `sect283k1`, `secp384r1`, `sect163k1`, `secp256r1`, `secp128r2`, `secp128r1`, `secp224k1`, `sect233k1`, `secp160r2`, `secp160r1`, `sect409k1`, `sect283r1`, `sect163r2`, `sect163r1`, `secp192k1`, `secp224r1`, `sect239k1`, `sect571k1`, `B-163`, `P-521`, `P-256`, `B-233`, `P-224`, `B-409`, `P-384`, `B-283`, `B-571`, `P-192`, `brainpoolp512r1`, `brainpoolp384t1`, `brainpoolp256r1`, `brainpoolp192r1`, `brainpoolp512t1`, `brainpoolp256t1`, `brainpoolp224r1`, `brainpoolp320r1`, `brainpoolp192t1`, `brainpoolp160r1`, `brainpoolp224t1`, `brainpoolp384r1`, `brainpoolp320t1`, `brainpoolp160t1`\\n\\n@param `curve` Name of the elliptic curve to use.\\n\\n@param `public` Map containing the public key parameters.\\n\\n@param `private` Map containing the private key parameters.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECGEN\"},{\"name\":\"ECHOOFF\",\"detail\":\"ECHOOFF(): \",\"documentation\":\"Turns off the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOOFF\"},{\"name\":\"ECHOON\",\"detail\":\"ECHOON( levels:NUMBER ): \",\"documentation\":\"Turns on the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of topmost stack levels to display after each WarpScript™ line, truncated if floating-point.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOON\"},{\"name\":\"ECPRIVATE\",\"detail\":\"ECPRIVATE( private:MAP ): key:KEY\\nECPRIVATE( key:KEY ): private:MAP\",\"documentation\":\"The `ECPRIVATE` function generates a private key from private key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\n@param `private` Map containing ECC private key parameters.\\n\\n@param `key` ECC private key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPRIVATE\"},{\"name\":\"ECPUBLIC\",\"detail\":\"ECPUBLIC( public:MAP ): key:KEY\\nECPUBLIC( key:KEY ): public:MAP\\nECPUBLIC( private:KEY ): key:KEY\",\"documentation\":\"The `ECPUBLIC` function generates a public key from public key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\nThe function can also produce a public key from a private key produced by [`ECPRIVATE`](/doc/ECPRIVATE).\\n\\n@param `private` Private key generated by `ECPRIVATE`.\\n\\n@param `public` Map containing ECC public key parameters.\\n\\n@param `key` ECC public key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPUBLIC\"},{\"name\":\"ECRECOVER\",\"detail\":\"ECRECOVER( params:MAP ): keys:LIST<KEY>\",\"documentation\":\"The `ECRECOVER` function allows to infer from a hash and an associated [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) signature a list of public keys whose associated private keys may have generated the signature. From those candidate keys and some additional information, for example a [bitcoin](https://en.bitcoin.it/wiki/Invoice_address) or [Ethereum](https://en.wikipedia.org/wiki/Ethereum#Addresses) address, one can identify the correct public key whose companion private key signed the hash.\\n\\nThe function takes as input a parameter map with the following elements:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `curve` | The name of the ECC curve used by the key to recover. |\\n| `hash` | Byte array of the hash which was signed. |\\n| `sig` | Byte array of the signature, as generated by [`ECSIGN`](/doc/ECSIGN). |\\n| `coords` | Optional boolean flag indicating whether or not to return the coordinates of the `R` point. |\\n\\n@param `params` Parameter map. See description of keys above.\\n\\n@param `keys` List of candidate public keys. The list contains the `Q` public keys or maps with `Q` and the `R.x` and `R.y` coordinates of the `R` point computed during the signature process. Those `Q` public keys can be converted to a map format using [`ECPUBLIC`](/doc/ECPUBLIC).\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"ECRECOVER\"},{\"name\":\"ECSIGN\",\"detail\":\"ECSIGN( data:BYTES alg:STRING private:KEY ): signature:BYTES\",\"documentation\":\"The `ECSIGN` function generates a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) private key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Content to sign.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `private` Private key to use for signining.\\n\\n@param `signature` Resulting signature.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECSIGN\"},{\"name\":\"ECVERIFY\",\"detail\":\"ECVERIFY( data:BYTES signature:BYTES alg:STRING public:KEY ): result:BOOLEAN\",\"documentation\":\"The `ECVERIFY` function verifies a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) public key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Signed data.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `public` Public key to use for verification.\\n\\n@param `signature` Signature to verify.\\n\\n@param `result` Validity of the signature.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECVERIFY\"},{\"name\":\"EIP712.HASH\",\"detail\":\"EIP712.HASH( structure:MAP ): hash:BYTES\",\"documentation\":\"Computes the hash of a typed structure conforming to [EIP-712](https://eips.ethereum.org/EIPS/eip-712).\\n\\n@param `structure` EIP-712 conformant structure to hash.\\n\\n@param `hash` Hash of the structure. Can be used to verify signature using `ETH.VERIFY`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"EIP712.HASH\"},{\"name\":\"ELAPSED\",\"detail\":\"ELAPSED(): result:LIST<LONG>\",\"documentation\":\"The `ELAPSED` function pushes onto the stack a list containing timing informations. The first element of the list is the timestamp at which \\nthe script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution \\nof the associated script line.\\n\\nTiming informations are only collected after a call to [`TIMINGS`](/doc/TIMINGS) (its line included) and before a call to [`NOTIMINGS`](/doc/NOTIMINGS)\\n (its line excluded).\\n\\n@param `result` The first element of the list is the timestamp at which the script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution of the associated script line.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELAPSED\"},{\"name\":\"ELEVATIONS\",\"detail\":\"ELEVATIONS( gts:GTS ): elevations:LIST<LONG>\\nELEVATIONS( lgts:LIST<GTS> ): lelevations:LIST<LIST<LONG>>\",\"documentation\":\"The `ELEVATIONS` function consumes a Geo Time Series™ or a list thereof from the stack, extracts its elevations, puts them in a list and pushes the list onto the stack.\\n\\n@param `gts` The Geo Time Series™ from which to extract the elevations\\n\\n@param `lgts` The list of Geo Time Series™ from which to extract the elevations\\n\\n@param `elevations` The elevations of the given Geo Time Series™\\n\\n@param `lelevations` The list of elevations of the given Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELEVATIONS\"},{\"name\":\"EMPTY\",\"detail\":\"EMPTY( gtsList:LIST<GTS> ): result:LIST<GTS>\",\"documentation\":\"Reject GTS instances with values.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with empty values\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"EMPTY\"},{\"name\":\"ENCODER->\",\"detail\":\"ENCODER->( encoder:GTSENCODER ): name:STRING attributes:MAP labels:MAP output:LIST\\nENCODER->( wrappedinput:STRING ): name:STRING attributes:MAP labels:MAP output:LIST\\nENCODER->( rawwrappedinput:BYTES ): name:STRING attributes:MAP labels:MAP output:LIST\",\"documentation\":\"The `ENCODER->` functions convert an encoder into a list of ( timestamp, latitude, longitude, elevation, value ) list. It also pushes attributes, labels and name on the stack.\\nFunction also accepts wrapped or raw-wrapped encoders or gts.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedinput` Encoder or GTS after WRAP. \\n\\n@param `rawwrappedinput` Encoder or GTS after WRAPRAW.\\n\\n@param `output` List of list of ( timestamp, latitude, longitude, elevation, value ). Missing values in the encoder or GTS are replaced by NaN.\\n\\n@param `name` Name of encoder or GTS. If no name was defined, will be NULL.\\n\\n@param `attributes` Attributes of encoder or GTS input. If none defined, will be an empty map.\\n\\n@param `labels` Labels of encoder or GTS input. If none defined, will be an empty map.\\n\\n\",\"tags\":[\"encoder\",\"conversion\",\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"GJt2IoG4JXoy\"},{\"name\":\"ERROR\",\"detail\":\"ERROR(): error:LIST<MAP>\",\"documentation\":\"Pushes onto the stack a list containing the current error (as caught by a [`TRY`](/doc/TRY)) and its causes. Each error is a map with the following fields:\\n\\n| Field | Description |\\n| --- | --- |\\n| type | Type of the error, the Java class of the underlying exception |\\n| message | The message associated with the error |\\n| stacktrace | A list of lists, each containing `filename`, `line number`, `class name`, `method name` |      \\n\\nThe current error is the first element of the list.\\n\\nIf there is no current error, the returned list will be empty.\\n\\n@param `error` List of maps describing the current error and its causes.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ERROR\"},{\"name\":\"ESDTEST\",\"detail\":\"ESDTEST( gts:GTS k:LONG mad:BOOLEAN alpha:DOUBLE ): result:LIST<LONG>\\nESDTEST( gts:GTS k:LONG mad:BOOLEAN ): result:LIST<LONG>\\nESDTEST( gtsList:LIST<GTS> k:LONG mad:BOOLEAN alpha:DOUBLE ): resultList:LIST<LIST<LONG>>\\nESDTEST( gtsList:LIST<GTS> k:LONG mad:BOOLEAN ): resultList:LIST<LIST<LONG>>\",\"documentation\":\"The `ESDTEST` function detects outliers in a GTS (or a **LIST** of GTS), by applying a [generalized extreme studentized deviate test](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h3.htm).\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nA [Grubbs’](/doc/GRUBBSTEST)test is done for one candidate at a time. Then, the candidate is removed from the set and another [Grubbs’](/doc/GRUBBSTEST)test\\nis performed. This process is iterated a given number of times. The detected outliers are the removed values and the current candidate of the last successful\\ntest.\\n\\nA **LIST** of ticks (or a **LIST** of **LIST** of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ESDTEST\"},{\"name\":\"ETH.BIP32\",\"detail\":\"ETH.BIP32( { path:STRING passphrase:STRING seed:STRING  } ): key:KEY\",\"documentation\":\"The `ETH.BIP32` function generates an ECC private key from a seed phrase, optional passphrase and derivation path.\\n\\n@param `seed` Valid (English) seed phrase to use for generating the ECC private key.\\n\\n@param `passphrase` Optional passphrase.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `key` Generated ECC private key.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP32\"},{\"name\":\"ETH.BIP39\",\"detail\":\"ETH.BIP39( seed:STRING ): validated:STRING\",\"documentation\":\"The `ETH.BIP39` function validates a seed phrase according to the English [BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md) word list. The function will return the validated seed or throw an exception if validation failed.\\n\\n@param `seed` Seed phrase to validate.\\n\\n@param `validated` Validated seed phrase.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP39\"},{\"name\":\"ETH.CALL\",\"detail\":\"ETH.CALL( args:LIST abi:MAP ): payload:STRING\\nETH.CALL( margs:MAP abi:MAP ): payload:STRING\",\"documentation\":\"The `ETH.CALL` function generates a transaction payload which represents a smart contract function call.\\n\\n@param `abi` `MAP` containing the description of the endpoint to call, as generated by `ABI->`.\\n\\n@param `args` `LIST` of arguments to the call, in the order in which they appear in the function signature.\\n\\n@param `margs` `MAP` of argument names to values. The function arguments will be extracted from this `MAP` based on their name.\\n\\n@param `payload` Hex encoded payload representing the function call.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.CALL\"},{\"name\":\"ETH.KEY\",\"detail\":\"ETH.KEY( { path:STRING passphrase:STRING seed:STRING private:KEY  } ): result:MAP\",\"documentation\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `private` ECC private `KEY`. If not set, then `seed` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `result` Extracted public and private key and associated Ethereum address.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.KEY\"},{\"name\":\"ETH.LOG\",\"detail\":\"ETH.LOG( log:MAP abi:MAP ): result:MAP\",\"documentation\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `abi` `MAP` containing the description of the `event` to decode.\\n\\n@param `log` Log entry to decode. Typically a `MAP` from the `log` list present in a transaction receipt returned by `ETH.RECEIPT`.\\n\\n@param `result` Decoded event.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.LOG\"},{\"name\":\"ETH.NONCE\",\"detail\":\"ETH.NONCE( { private:KEY passphrase:STRING path:STRING seed:STRING address:STRING url:STRING  } ): nonce:STRING\",\"documentation\":\"The `ETH.NONCE` function retrieves the latest used nonce for a given address from a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce. Defaults to `http://localhost:3545/`.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path`, or `address` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address whose nonce must be retrieved. If unset, use `seed` or `private`.\\n\\n@param `nonce` The nonce retrieved from the blockchain for the given address.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.NONCE\"},{\"name\":\"ETH.RECEIPT\",\"detail\":\"ETH.RECEIPT( { url:STRING txid:STRING  } ): receipt:MAP\",\"documentation\":\"The `ETH.RECEIPT` function retrieves a transaction receipt from a network node.\\n\\n@param `txid` Id of the transaction whose receipt should be retrieved.\\n\\n@param `url` URL of the blockchain node to query.\\n\\n@param `receipt` Receipt of the transaction as stored in the blockchain.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RECEIPT\"},{\"name\":\"ETH.RETURN\",\"detail\":\"ETH.RETURN( value:STRING abi:MAP ): result:MAP\",\"documentation\":\"The `ETH.RETURN` function decodes the encoded return value of a function call (obtained via `ETH.CALL` and `ETH.TXN`).\\n\\n@param `abi` `MAP` containing the description of the `function` return value or `error` to decode, as generated by `ABI->`.\\n\\n@param `value` Hex encoded return value to decode.\\n\\n@param `result` Decoded `value`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RETURN\"},{\"name\":\"ETH.TXN\",\"detail\":\"ETH.TXN( { txid:STRING url:STRING  } ): txn:MAP\\nETH.TXN( { to:STRING private:KEY passphrase:STRING path:STRING seed:STRING address:STRING data:BYTES call:BOOLEAN url:STRING  } ): result:MAP\\nETH.TXN( { send:BOOLEAN sign:BOOLEAN maxpriorityfeepergas:LONG maxfeepergas:LONG gaslimit:LONG chainid:LONG nonce:LONG path:STRING seed:STRING private:KEY value:LONG to:STRING data:STRING raw:BYTES url:STRING  } ): raw:STRING { txid:STRING' txid:undefined \\n\\n response:STRING' response:undefined \\n\\n }\\nETH.TXN( { send:BOOLEAN sign:BOOLEAN gasprice:LONG gaslimit:LONG chainid:LONG nonce:LONG path:STRING seed:STRING private:KEY value:LONG to:STRING data:STRING raw:BYTES url:STRING  } ): raw:STRING { txid:STRING' txid:undefined \\n\\n response:STRING' response:undefined \\n\\n }\",\"documentation\":\"The `ETH.TXN` function allows to perform various actions related to Ethereum/EVM transactions.\\n\\nIt can retrieve a transaction from a network node, generate raw or signed transactions and optionally submit transactions to a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce, if none was given, and sending the transaction or function call. Defaults to `http://localhost:3545/`.\\n\\n@param `raw` Raw transaction, hex encoded with `0x` prefix. This is mutually exclusive with the `MAP` returned when `send` is `true`.\\n\\n@param `data` Call data to include in the transaction. This is either `BYTES` or a `STRING`. The `STRING` is assumed to be hex encoded if it starts with `0x`, otherwise its `UTF-8` encoding is used.\\n\\n@param `to` Ethereum address or ECC public `KEY` of the recipient.\\n\\n@param `value` Value (in `wei`) associated with the transaction. Can be expressed as a `LONG` or as a `STRING` for large values.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path` must be set, except for calls where `address` can simply be specified since no signing takes place.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address of the calling party, can only be used when `call` is `true` since calls do not require signing.\\n\\n@param `nonce` `nonce` value to use for the transaction. If not set `ETH.TXN` will attempt to retrieve the last used nonce from the blockchain.\\n\\n@param `chainid` Chain ID to use for encoding the transaction. Defaults to `0`.\\n\\n@param `gaslimit` Maximum amount of gas that can be spent when submitting the transaction. Defaults to `21000` which is sufficient for an Ether tranfer.\\n\\n@param `gasprice` Maximum gas price per gas unit, expressed in `wei`. This is for legacy transactions.\\n\\n@param `maxfeepergas` Maximum base + priority fee, as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 2,000,000,000 `wei`, *i.e.* 2 `gwei`.\\n\\n@param `maxpriorityfeepergas` Maximum priority fee (tip), as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 1,000,000,000 `wei`, *i.e.* 1 `gwei`.\\n\\n@param `sign` Flag indicating whether or not to sign the transaction. If set to `true` then `private` or `seed` must be set.\\n\\n@param `send` Flag indicating whether or not to submit the transaction to a network node.\\n\\n@param `txid` The transaction id (TxID, or transaction hash) of the submitted transaction.\\n\\n@param `call` Flag indicating if the *transaction* is really a function call.\\n\\n@param `response` The raw response returned by the network node. Hex encoded.\\n\\n@param `result` A `MAP` containing the result of the operation. Content will depend on the actual input parameters.\\n\\n@param `txn` A `MAP` containing retrieved transaction infos.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.TXN\"},{\"name\":\"ETH.VERIFY\",\"detail\":\"ETH.VERIFY( hash:BYTES signature:BYTES ): result:MAP\",\"documentation\":\"Verify an ECDSA signature and extracts the signing public key and the associated address.\\n\\nIf the signature cannot be verified, an exception is thrown.\\n\\n@param `signature` Ethereum ECDSA signature to verify.\\n\\n@param `hash` Signed hash.\\n\\n@param `result` Map containing the signing public key and associated address.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.VERIFY\"},{\"name\":\"EVAL\",\"detail\":\"EVAL( macro:MACRO ): \\nEVAL( string:STRING ): \\nEVAL( function:FUNCTION ): \",\"documentation\":\"The `EVAL` function evaluates the statements contained in the string at the top of the stack as if they had been entered individually or runs the macro at the top os the stack.\\n\\n@param `string` String to evaluate\\n\\n@param `macro` Macro to run\\n\\n@param `function` Function to run\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVAL\"},{\"name\":\"EVALSECURE\",\"detail\":\"EVALSECURE( secure:STRING ): return:ANY\",\"documentation\":\"The `EVALSECURE` function executes a secure script. The script must have been created on a platform with the same secure script cryptographic key as the current platform (note that this is not the *secret* set using [`SECUREKEY`](doc/SECUREKEY)).\\n\\n@param `secure` String containing the secure script to execute.\\n\\n@param `return` The return values depend on the actual code of the secure script.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVALSECURE\"},{\"name\":\"EVERY\",\"detail\":\"EVERY( macro:MACRO repeat:LONG ): \",\"documentation\":\"When called via the `/mobius` endpoint, the `EVERY` function sets the repeat interval for the preceding macro. This interval is in milliseconds.\\n\\nWhen called outside of `/mobius`, the `EVERY` function simply executes the macro.\\n\\n@param `repeat` The repeat interval to enforce, in milliseconds.\\n\\n@param `macro` The macro to execute.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVERY\"},{\"name\":\"EXP\",\"detail\":\"EXP( value:NUMBER ): result:DOUBLE\\nEXP( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nEXP( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a floating point value x consumed from the top of the stack,\\n i.e. e<sup>x</sup>.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List where each value is e<sup>x</sup>\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>, for x in the the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXP\"},{\"name\":\"EXPM1\",\"detail\":\"EXPM1( value:NUMBER ): result:DOUBLE\\nEXPM1( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nEXPM1( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a DOUBLE value x consumed from the top of the stack then subtracts one, i.e. e<sup>x</sup>-1.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>-1\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List of e<sup>x</sup>-1\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>-1, for x in the the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXPM1\"},{\"name\":\"EXPORT\",\"detail\":\"EXPORT( symbol:STRING ): \\nEXPORT( symbols:LIST ): \",\"documentation\":\"The `EXPORT` function allows you to set or update a list of symbols which will be dumped upon script termination. This proves handy when \\ndebugging a script as you can visualize, even in the case of errors, the value of specific symbols.\\n\\nThe function expects either a symbol name (a **STRING**) which will be added to the current list of exported symbols, a list of symbol \\nname which will replace the current list of exported symbols, an empty list to disable symbol export altogether, or a list with a single\\n**NULL** element to instruct the WarpScript engine to export all existing symbols.\\n\\nWhen symbols should be exported, the debug mode is implied (see [`DEBUGON`](/doc/DEBUGON)).\\n\\n@param `symbol` Symbol name\\n\\n@param `symbols` List of symbols\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.2\",\"OPB64name\":\"EXPORT\"},{\"name\":\"EXTLOADED\",\"detail\":\"EXTLOADED( ext:STRING ): loaded:BOOLEAN\",\"documentation\":\"Checks if a WarpScript extension is loaded or not and therefore available.      \\n\\n@param `ext` Name of extension to check.\\n\\n@param `loaded` Boolean indicating whether or not the specified extension is loaded in the WarpScript environment.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"EXTLOADED\"},{\"name\":\"F\",\"detail\":\"F(): b:BOOLEAN\",\"documentation\":\"`F` stand for `false`. It is a boolean constant.\\n\\n\\n@param `b` false\\n\\n\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"F\"},{\"name\":\"FAIL\",\"detail\":\"\",\"documentation\":\"The `FAIL` function stops the execution of the WarpScript scripts by throwing an exception.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FAIL\"},{\"name\":\"FDWT\",\"detail\":\"FDWT( gts:GTS wavelet:STRING ): fdwt:GTS\\nFDWT( lgts:LIST<GTS> wavelet:STRING ): lfdwt:LIST<GTS>\",\"documentation\":\"The `FDWT` function performs a [Forward Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Fast_wavelet_transform#Forward_DWT) on a Geo Time Series™.\\n\\nA number of different [Wavelets](https://en.wikipedia.org/wiki/Wavelet) are available, the list is inspired by that available on \\nthe [Wavelet Browser](http://wavelets.pybytes.com/).\\n\\nThe list of Wavelets which can be used is the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\nThe FDWT can only be applied to Geo Time Series™ with a number of values which is a power of 2.\\n\\nAssuming the input GTS has 2<sup>n</sup> values, the result of the FDWT transformation is a GTS with 2<sup>n</sup> values (the wavelet coefficients) with timestamps from 0 to 2<sup>n</sup>-1.\\n\\nThe ticks of the `n` levels are contiguous, with the first tick being for level `n`, the next 2 for level `n-1`, the next 4 for level `n-2`, up to the last 2<sup>n-1</sup> for level 1.\\n\\nLevel 1 has the finest time resolution but the coarsest frequency resolution. Each level has half (coarser) the time resolution and double (finer) the frequency resolution as the previous level.\\n\\n@param `wavelet` Name of wavelet to use for the transformation.\\n\\n@param `gts` Geo Time Series™ instance on which to perform the FDWT.\\n\\n@param `lgts` List of Geo Time Series™ on which to apply the FDWT.\\n\\n@param `fdwt` Transformed Geo Time Series™.\\n\\n@param `lfdwt` List of transformed Geo Time Series™.\\n\\n\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FDWT\"},{\"name\":\"FETCH\",\"detail\":\"FETCH( [ token:STRING class:STRING labels:MAP end:LONG timespan:LONG ] ): data:LIST<GTS>\\nFETCH( [ token:STRING class:STRING labels:MAP start:STRING end:STRING ] ): data:LIST<GTS>\\nFETCH( { gcount:LONG gskip:LONG ttl:BOOLEAN wtimestamp:BOOLEAN typeattr:STRING type:STRING showuuid:BOOLEAN merge:BOOLEAN encoders:BOOLEAN skip.count:LONG sampling.ratio:DOUBLE timestep:LONG step:LONG boundary.post:LONG boundary.pre:LONG boundary:LONG count:LONG timespan:LONG start:STRING end:LONG priority:LIST<STRING> metaset:STRING extra:LIST<STRING> active.after:LONG quiet.after:LONG gts:LIST<GTS> selectors:LIST<STRING> selector:STRING labels:MAP class:STRING token:STRING  } ): data:LIST<GTS>\",\"documentation\":\"The `FETCH` function interacts with the Warp 10 Storage Engine to retrieve data according to given criteria.\\n\\n`FETCH` either accepts a list of 5 parameters or a map with the parameters. Those are defining the **read access rights**, the **concerned Geo Time Series** and the **time window**. Other parameters in the map input are optional. \\n\\nThe list input is here to keep backward compatibility with old WarpScripts. The map input allows a great flexibility, as described below.\\n\\n### Access rights\\nA valid read token is needed to read data with fetch. If you use a [metaset](/doc/METASET) and also specify a token, the token included in the metaset will be ignored.\\n\\n### Concerned Geo Time Series\\n`FETCH` selects Geo Time Series according to:\\n+ The `selectors` parameter, which is a list of selector.\\n+ If `selectors` is not found, `FETCH` uses the `selector` parameter which is a single selector.\\n+ If `selector` is not found, `FETCH`  uses both `class` and `labels` parameters.  \\n\\n### Time window\\n`FETCH`  begins from the newest value and stop when the oldest value is collected. Thus, `end` must be defined in your request and defines the newest included value in your time window. If `end` is anterior to your oldest value, the result will be empty (no Geo Time Series). The span of the time window ending at `end` is then defined according to:\\n+ The `timespan` parameter.\\n+ If `timespan` is not defined, `FETCH` collects a maximum of `count` point.\\n+ If `count` is not defined, `FETCH` determines `timespan` with `start`. If `start` is more recent than `end`, `end` and `start` are permuted internally. Both `start` and `end` are included in the time window.\\n\\n### Boundaries\\nSince version 2.3.0, you can define *boundaries* around the requested data. When fetching data based on a time range, both a *pre* and *post* boundaries can be specified. When fetching by count, only a *pre* boundary can be requested.\\nBoundaries are a number of datapoints which are either before (*pre* boundary) or after (*post* boundary) the fetched data. Fetching boundaries is very useful when storing only the changes of values as they enable you to always fetch datapoints even if the requested time range does not contain any. They can also be used to fetch the first `N` datapoints after a given timestamp.\\nNote that fetching *post* boundaries is less efficient than fetching the requested range or a *pre* boundary as the data has to be scanned in reverse order which has an impact on I/Os and ultimately on performance.\\n\\n### Sampling options\\n+ Since version 2.3.0, you can randomly sample points with the `sample` parameter. If `sample` equals 0.1, `FETCH` will randomly return one point out of ten. This implementation is the fastest way to resample data.\\n+ Since version 2.3.0, you can `skip` the N newest datapoints in the time window specified.\\n\\n### Query without looking into directory\\nThe fetch time to read one gts among millions of gts recorded with the same classname, the same application and the same owner can take time. Use the `gts` parameter to select if you exactly know the classname and all the labels.\\n\\nIf you want to read only Geo Time Series attributes or labels, using [FIND](/doc/FIND) is more efficient than fetching the last value.\\n\\n### FETCH availability \\nYou cannot use FETCH within macro unit tests. When macro are loaded, directory and storage are not ready yet, so you will have a null pointer exception during macro loading. To build your unit tests, [WRAP](/doc/WRAP) your data and use [UNWRAP](/doc/UNWRAP) from a string instead of fetch.\\n\\n\\n@param `token` Read token to use to fetch the data.\\n\\n@param `class` Selector for the GTS classes. Can either be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `labels` Map of labels selectors. The key is the label name, the value a selector which can be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `gts` Explicit list of Geo Time Series™ to fetch. The class and labels will be used as is and not serve as selectors.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `extra` List of extraneous classes to fetch. For each GTS matching the selection criteria, GTS with those extra class names will be fetched too (with the *exact* same set of labels).\\n\\n@param `metaset` A set of Geo Time Series™ produced by the [`METASET`](/doc/METASET) function.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `end` Newest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `start` Oldest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `timespan` Depth to consider when fetching the datapoints. If the value is positive then it is interpreted as a duration in time units, if it is negative then as the maximum number of datapoints to fetch. If negative, incompatible with 'count'.\\n\\n@param `count` Maximum number of datapoints to fetch for each GTS. Incompatible with negative 'timespan'.\\n\\n@param `boundary` Number of datapoints to include in both *pre* and *post* boundaries.\\n\\n@param `boundary.pre` Number of datapoints in the *pre* boundary.\\n\\n@param `boundary.post` Number of datapoints in the *post* boundary.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer, which is the most efficient.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n@param `encoders` Whether to return **GTSENCODER** or **GTS**. Defauts to False.\\n\\n@param `merge` Whether to merge or not the splitted encoders because they exceed *max.encoder.size* or *standalone.max.encoder.size*. Defaults to True.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `type` Name of type to force for the GTS, either LONG, DOUBLE, BOOLEAN or STRING.\\n\\n@param `typeattr` Name of label to use for storing the GTS type. This option is incompatible with 'type', when set values of different types are ventilated in separate GTS with the same set of class and labels and an additional *type* label of the given name.\\n\\n@param `wtimestamp` Whether to return or not the HBase cell timestamp instead of the value. Only for distributed instances, defaults to False.\\n\\n@param `ttl` Whether to return or not the HBase cells TTL instead of the value. Only for distributed instances, defaults to False. Only works if KeyValueCodecWithTags codec is enabled.\\n\\n@param `data` List of fetched Geo Time Series or **GTSECODERS**.\\n\\n@param `gskip` Number of GTS to skip before considering GTS.\\n\\n@param `gcount` Maximum number of GTS to consider.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCH\"},{\"name\":\"FETCHBOOLEAN\",\"detail\":\"FETCHBOOLEAN( linput:LIST ): data:LIST<GTS>\\nFETCHBOOLEAN( minput:MAP ): data:LIST<GTS>\",\"documentation\":\"The `FETCHBOOLEAN` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type BOOLEAN.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHBOOLEAN\"},{\"name\":\"FETCHDOUBLE\",\"detail\":\"FETCHDOUBLE( linput:LIST ): data:LIST<GTS>\\nFETCHDOUBLE( minput:MAP ): data:LIST<GTS>\",\"documentation\":\"The `FETCHDOUBLE` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type DOUBLE.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHDOUBLE\"},{\"name\":\"FETCHLONG\",\"detail\":\"FETCHLONG( linput:LIST ): data:LIST<GTS>\\nFETCHLONG( minput:MAP ): data:LIST<GTS>\",\"documentation\":\"The `FETCHLONG` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type LONG.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHLONG\"},{\"name\":\"FETCHSTRING\",\"detail\":\"FETCHSTRING( linput:LIST ): data:LIST<GTS>\\nFETCHSTRING( minput:MAP ): data:LIST<GTS>\",\"documentation\":\"The `FETCHSTRING` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type STRING.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHSTRING\"},{\"name\":\"FFT\",\"detail\":\"FFT( gts:GTS ): result:LIST<GTS>\\nFFT( gtsList:LIST<GTS> ): result:LIST<LIST<GTS>>\",\"documentation\":\"The `FFT` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFT` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe real parts of the `FFT` coefficients, the second the imaginary parts. The scale factor is equal to X/(n * bucketspan) where n is the number\\nof elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the number\\nof values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFT` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the real parts of the `FFT` coefficients, the second the imaginary parts.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFT\"},{\"name\":\"FFTAP\",\"detail\":\"FFTAP( gts:GTS ): result:LIST<GTS>\\nFFTAP( gtsList:LIST<GTS> ): result:LIST<LIST<GTS>>\",\"documentation\":\"The `FFTAP` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFTAP` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe amplitude of the coefficient at that frequency and the second the associated phase. The scale factor is equal to X/(n * bucketspan) where n is\\nthe number of elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the\\nnumber of values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFTAP` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the amplitude of the coefficient at that frequency and the second the associated phase.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFTAP\"},{\"name\":\"FFTWINDOW\",\"detail\":\"FFTWINDOW( gts:GTS window:STRING ): windowed:GTS\\nFFTWINDOW( lgts:LIST<GTS> window:STRING ): lwindowed:LIST<GTS>\",\"documentation\":\"The `FFTWINDOW` transforms Geo Time Series™ by applying a [window function](https://en.wikipedia.org/wiki/Window_function) to its values. The function supports the following windows:\\n\\n| Name | Window |\\n| --- | --- |\\n| `triangular` | [Triangular](https://en.wikipedia.org/wiki/Window_function#Triangular_window) |\\n| `parzen` | [Parzen](https://en.wikipedia.org/wiki/Window_function#Parzen_window) |\\n| `welch` | [Welch](https://en.wikipedia.org/wiki/Window_function#Welch_window) |\\n| `sine` | [Sine](https://en.wikipedia.org/wiki/Window_function#Sine_window) |\\n| `hann` | [Hann](https://en.wikipedia.org/wiki/Window_function#Hann_window) |\\n| `hamming` | [Hamming](https://en.wikipedia.org/wiki/Window_function#Hamming_window) |\\n| `blackman` | [Blackman](https://en.wikipedia.org/wiki/Window_function#Blackman_window) |\\n| `nuttall` | [Nuttall](https://en.wikipedia.org/wiki/Window_function#Nuttall_window,_continuous_first_derivative) | \\n| `blackman-nuttall` | [Blackman-Nuttall](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Nuttall_window) |\\n| `blackman-harris` | [Blackman-Harris](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Harris_window) |\\n| `flattop` | [Flat top](https://en.wikipedia.org/wiki/Window_function#Flat_top_window) |\\n| `rectangular` | [Rectangular](https://en.wikipedia.org/wiki/Window_function#Rectangular_window) |\\n\\n@param `window` Name of the window function to apply.\\n\\n@param `gts` Single Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `windowed` Tranformed Geo Time Series™.\\n\\n@param `lwindowed` List of transformed Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"FFTWINDOW\"},{\"name\":\"FILL\",\"detail\":\"FILL( gtsa:GTS gtsb:GTS filler:FILLER ): gtsa:GTS gtsb:GTS\",\"documentation\":\"The `FILL` function fills missing values in two Geo Time Series™ so they end up with identical ticks.\\n\\nThe filling is done using a *filler* function which applies a given strategy. Filler functions can be created using macros via the [`MACROFILLER`](/doc/MACROFILLER) function.\\n\\n@param `gtsa` First Geo Time Series™ to fill.\\n\\n@param `gtsb` Second Geo Time Series™ to fill.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"FILL\"},{\"name\":\"FILLNEXT\",\"detail\":\"FILLNEXT( gts:GTS ): result:GTS\\nFILLNEXT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `FILLNEXT` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation of the \\nnext non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLNEXT\"},{\"name\":\"FILLPREVIOUS\",\"detail\":\"FILLPREVIOUS( gts:GTS ): result:GTS\\nFILLPREVIOUS( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `FILLPREVIOUS` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation \\nof the previous non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLPREVIOUS\"},{\"name\":\"FILLTICKS\",\"detail\":\"FILLTICKS( gts:GTS data:LIST ): result:GTS\\nFILLTICKS( gtsList:LIST<GTS> data:LIST ): resultList:LIST<GTS>\",\"documentation\":\"The `FILLTICKS` function add values to a Geo Time Series™ instance or a list thereof for ticks in the given **LIST**.\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n@param `data` List of (latitude, longitude, elevation, ticks) where ticks is a list of ticks.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLTICKS\"},{\"name\":\"FILLVALUE\",\"detail\":\"FILLVALUE( gts:GTS data:LIST ): result:GTS\\nFILLVALUE( gtsList:LIST<GTS> data:LIST ): resultList:LIST<GTS>\",\"documentation\":\"The `FILLVALUE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with a fixed value/location/elevation.\\n\\nIt expects a GTS or a list thereof on the top of the stack after having consumed a list of parameters (latitude, longitude, elevation, value)\\nsitting on top of the stack prior to the call.\\n\\nLocation must be floating point numbers (e.g. 0.0 not 0). Elevation must be an integer. If no location or elevation should be set, **NaN** can\\nbe used instead of specific value.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n\\n\\nThe value is cast to the type of the GTS value\\n\\n@param `gts` The Geo Time Series™ to fill\\n\\n@param `gtsList` The list of Geo Time Series™ to fill\\n\\n@param `result` The filled Geo Time Series™\\n\\n@param `resultList` The list of filled Geo Time Series™\\n\\n@param `data` The list of parameters (latitude, longitude, elevation, value)\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLVALUE\"},{\"name\":\"FILTER\",\"detail\":\"FILTER( [ gtsList:LIST<GTS> labels:LIST<STRING> filter:FILTER ] ): result:LIST<GTS>\",\"documentation\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `FILTER` framework allows for advanced filtering using N-ary functions\\n(functions which accept N parameters).\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A single list containing only the selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `FILTER`.\\n\\n\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILTER\"},{\"name\":\"FILTERBY\",\"detail\":\"FILTERBY( list:LIST macro:MACRO ): sublist:LIST\",\"documentation\":\"The `FILTERBY` function selects elements of a list based on the boolean return value of a macro evaluated for each element.\\n\\n@param `macro` Macro used for filtering. This macro should consume the element of the list pushed on top of the stack and leave a boolean on the stack. If this boolean is `true`, the element will be retained.\\n\\n@param `list` List of elements to filter.\\n\\n@param `sublist` List with the selected elements from `list`.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"FILTERBY\"},{\"name\":\"FIND\",\"detail\":\"FIND( [ token:STRING classSelector:STRING labelsSelector:MAP ] ): data:LIST<GTS>\\nFIND( [ showuuid:BOOLEAN token:STRING classSelector:STRING labelsSelector:MAP ] ): data:LIST<GTS>\\nFIND( { gcount:LONG gskip:LONG showuuid:BOOLEAN priority:LIST<STRING> active.after:LONG quiet.after:LONG selectors:LIST<STRING> selector:STRING classSelector:STRING labelsSelector:MAP token:STRING  } ): data:LIST<GTS>\",\"documentation\":\"The `FIND` function finds Geo Time Series™ labels and attributes of GTS, not their values. It is the fastest way to read attributes of GTS. `FIND` asks only `directory` component of Warp&nbsp;10™, while [FETCH](/doc/FETCH) first ask `directory`, then ask `store` to read GTS values. \\n\\nSyntax is close to [FETCH](/doc/FETCH), without time boundaries or data point count.\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `data` List of fetched Geo Time Series™. These GTS does not contain any value.\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `gskip` Number of GTS to skip before returning results.\\n\\n@param `gcount` Maximum number of GTS to return.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIND\"},{\"name\":\"FINDSETS\",\"detail\":\"FINDSETS( [ token:STRING classSelector:STRING labelsSelector:MAP ] ): classes:LIST<STRING> labels:MAP attributes:MAP\",\"documentation\":\"The `FINDSETS` function returns sets of values for the classes, labels and attributes of the Geo Time Series™ which matched the selection criteria.\\n\\nThose results can be used for example to update a UI with lists of possible values for labels when exploring a corpus of GTS.\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label names to exact match or regular expression (if the value starts with a *~*) for matching labels and attributes.\\n\\n@param `attributes` Map of attribute names to value list.\\n\\n@param `labels` Map of label names to value list.\\n\\n@param `classes` List of class names.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSETS\"},{\"name\":\"FINDSTATS\",\"detail\":\"FINDSTATS( [ token:STRING classSelector:STRING labelsSelector:MAP ] ): result:MAP\",\"documentation\":\"The `FINDSTATS` function computes statistics on matching Geo Time Series™. The estimations are based on the use of [HyperLogLogPlus](https://en.wikipedia.org/wiki/HyperLogLog) estimators.\\n\\nThe function returns a map containing information about the matching Geo Time Series. The fields of the map are the following:\\n\\n| Key | Value |\\n|-----|-------|\\n| `gts.estimate` | Estimation of the number of matching Geo Time Series™ |\\n| `classes.estimate` | Estimation of the number of distinct class names |\\n| `labelnames.estimate` | Estimation of the number of distinct label names |\\n| `labelvalues.estimate` | Estimation of the number of distinct label values |\\n| `per.class.estimate` | If the number of matching classes is below the `directory.stats.class.maxcardinality`, this key will be associated with a map containing per class estimate of number of GTS |\\n| `per.label.value.estimate` | If the number of label names in the matching GTS is below `directory.stats.labels.maxcardinality`, this key will be associated with a map containing an estimation of distinct label values per label name |\\n| `error.rate` | This is the error rate of the estimators used for computing the estimations |\\n| `partial.results` | When accessing a sharded Directory, this will be set to `true` if only partial results were collected |\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `result` Map containing stats such as error rate or whether estimates on classes, gts, or labels.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSTATS\"},{\"name\":\"FIRSTTICK\",\"detail\":\"FIRSTTICK( gts:GTS ): result:LONG\\nFIRSTTICK( lgts:LIST<GTS> ): result:LONG\",\"documentation\":\"The `FIRSTTICK` function returns the timestamp of the oldest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its first bucket.\\n\\nWhen applied to a list of GTS, `FIRSTTICK` will return the lowest first tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MAX_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` Oldest timestamp. If the GTS does not have values, **Long.MAX_VALUE** is pushed.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIRSTTICK\"},{\"name\":\"FLATTEN\",\"detail\":\"FLATTEN( input:LIST ): output:LIST\\nFLATTEN( notAList:ANY ): notAList:ANY\",\"documentation\":\"The function `FLATTEN` inspects the top of the stack.\\n\\nIf it is a LIST of values,\\nit inspects each value and replaces each value which was a LIST with its content.\\n`FLATTEN` proceed recursively until all LISTs have been flattened.\\n\\nIf it is not a LIST, the function exits and let the stack in the same state.\\n\\n@param `input` Input is a list who may contains lists\\n\\n@param `notAList` An object which is not a list\\n\\n@param `output` Output list do not contains anymore nested lists\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLATTEN\"},{\"name\":\"FLOAD\",\"detail\":\"FLOAD( path:STRING ): content:BYTES\",\"documentation\":\"The `FLOAD` function allows to read the content of a file on the local file system or in HDFS and output that content as a byte array.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `content` Content of the file.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FLOAD\"},{\"name\":\"FLOATBITS->\",\"detail\":\"FLOATBITS->( input:LONG ): result:DOUBLE\",\"documentation\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the 32 lower bits of the **LONG** value as the raw bits of a **FLOAT**.\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"GZlEFKG1HKGIAIs\"},{\"name\":\"FLOOR\",\"detail\":\"FLOOR( value:NUMBER ): result:DOUBLE\\nFLOOR( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nFLOOR( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `FLOOR` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number smaller than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-down value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-down values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-down of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLOOR\"},{\"name\":\"FLOORDIV\",\"detail\":\"FLOORDIV( dividend:NUMBER divisor:NUMBER ): fDiv:LONG\\nFLOORDIV( dividend:NUMBER ldivisor:LIST<NUMBER> ): lfDiv:LIST<LONG>\\nFLOORDIV( ldividend:LIST<NUMBER> divisor:NUMBER ): lfDiv:LIST<LONG>\\nFLOORDIV( dividend:NUMBER gtsdivisor:GTS ): gtsfDiv:GTS\\nFLOORDIV( gtsdividend:GTS divisor:NUMBER ): gtsfDiv:GTS\",\"documentation\":\"The `FLOORDIV` function consumes two NUMBER values, convert them to LONGs and pushes back largest LONG value that is less than or equal to the algebraic quotient.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fDiv` The largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `lfDiv` List of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `gtsdividend` Numerical GTS of dividends\\n\\n@param `gtsdivisor` Numerical GTS of divisors\\n\\n@param `gtsfDiv` Numerical GTS of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORDIV\"},{\"name\":\"FLOORMOD\",\"detail\":\"FLOORMOD( dividend:NUMBER divisor:NUMBER ): fMod:LONG\\nFLOORMOD( dividend:NUMBER ldivisor:LIST<NUMBER> ): lfMod:LIST<LONG>\\nFLOORMOD( ldividend:LIST<NUMBER> divisor:NUMBER ): lfMod:LIST<LONG>\\nFLOORMOD( dividend:NUMBER gtsdivisor:GTS ): gtsfMod:GTS\\nFLOORMOD( gtsdividend:GTS divisor:NUMBER ): gtsfMod:GTS\",\"documentation\":\"The `FLOORMOD` function consumes two NUMBER values, convert them to LONGs and pushes back the floor modulus which is x - (floorDiv(x, y) * y).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fMod` The floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `gtsdividend` Numerical GTS, each of the value being considered as dividends\\n\\n@param `gtsdivisor` Numerical GTS, each of the value being considered as divisors\\n\\n@param `lfMod` List of floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `gtsfMod` GTS of floor modulus x - (floorDiv(x, y) * y)\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORMOD\"},{\"name\":\"FOR\",\"detail\":\"FOR( initial:NUMBER final:NUMBER macro:MACRO ): \\nFOR( initial:NUMBER final:NUMBER macro:MACRO index:BOOLEAN ): \",\"documentation\":\"The `FOR` function implements a for loop. It takes three arguments from the stack: the initial and the final values of the loop index and a macro to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOR\"},{\"name\":\"FOREACH\",\"detail\":\"FOREACH( list:LIST exec:MACRO ): \\nFOREACH( map:MAP exec:MACRO ): \\nFOREACH( set:SET exec:MACRO ): \\nFOREACH( vector:VLIST exec:MACRO ): \\nFOREACH( string:STRING exec:MACRO ): \\nFOREACH( gts:GTS exec:MACRO ): \\nFOREACH( encoder:GTSENCODER exec:MACRO ): \\nFOREACH( list:LIST exec:MACRO index:BOOLEAN ): \\nFOREACH( map:MAP exec:MACRO index:BOOLEAN ): \\nFOREACH( set:SET exec:MACRO index:BOOLEAN ): \\nFOREACH( vector:VLIST exec:MACRO index:BOOLEAN ): \\nFOREACH( string:STRING exec:MACRO index:BOOLEAN ): \\nFOREACH( gts:GTS exec:MACRO index:BOOLEAN ): \\nFOREACH( encoder:GTSENCODER exec:MACRO index:BOOLEAN ): \",\"documentation\":\"The `FOREACH` function implements a for loop on a list or map.\\n\\nFor each iteration i on a list, the i-th element on the list is put on top of the stack, and the exec macro is then called.\\n\\nFor each iteration i on a map, the exec macro is called with the i-th value on top of the stack, and the i-th key just below on the stack.\\nYou can start your macro with `'value' STORE 'key' STORE`.\\n\\nSince release 2.1, `FOREACH` has the ability to iterate over Geo Time Series™ and GTS Encoders. When iterating over a GTS or Encoder, the macro is fed with a list of the form `[ tick lat lon elev value ]` where `lat`, `lon` and `elev` may be `NaN` if unset. In the case of an Encoder, `value` can be a byte array or a `BigDecimal` on top of `LONG`, `DOUBLE`, `STRING` or `BOOLEAN`.\\n\\nSince release 2.4.0, you can force FOREACH to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `exec` Macro to apply\\n\\n@param `list` List to iterate on\\n\\n@param `map` Map to iterate on\\n\\n@param `set` Set to iterate on\\n\\n@param `vector` Vector to iterate on\\n\\n@param `gts` GTS to iterate on\\n\\n@param `string` String to iterate on\\n\\n@param `encoder` GTSEncoder to iterate on\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOREACH\"},{\"name\":\"FORGET\",\"detail\":\"FORGET( symbol:STRING ): \",\"documentation\":\"Removes a symbol from the symbol table.      \\n\\n@param `symbol` Name of the symbol to remove.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORGET\"},{\"name\":\"FORSTEP\",\"detail\":\"FORSTEP( initial:NUMBER final:NUMBER step:MACRO macro:MACRO ): \\nFORSTEP( initial:NUMBER final:NUMBER step:MACRO macro:MACRO index:BOOLEAN ): \",\"documentation\":\"The `FORSTEP` function implements for loop with an index step. It takes four arguments from the stack: the initial and the final values of the loop index,\\na macro step to evaluate after each iteration and an other one to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `step` Macro step to evaluate after each iteration, typically to compute index\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORSTEP\"},{\"name\":\"FREAD\",\"detail\":\"FREAD( macro:MACRO path:STRING ): \",\"documentation\":\"The `FREAD` function reads a file line by line and passes each line (as a `STRING`) to the provided macro.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `macro` Macro to call for processing each line.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FREAD\"},{\"name\":\"FROMBIN\",\"detail\":\"FROMBIN( input:STRING ): output:LONG\",\"documentation\":\"Converts the binary representation on top of the stack into the corresponding long.\\n\\n@param `input` Binary representation of a signed long, 64 characters max.\\n\\n@param `output` Signed long of input.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBIN\"},{\"name\":\"FROMBITS\",\"detail\":\"FROMBITS( input:LONG ): result:DOUBLE\",\"documentation\":\"**This function is deprecated. Replace it in your code by the [`DOUBLEBITS->`](/doc/G3xKFZl4FZ_JJmoy) function.**\\n\\nConverts the **LONG** on top of the stack into a **DOUBLE** by considering it a raw bit representation.\\n\\n@param `input` Raw bit representation to convert\\n\\n@param `result` Converted value\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBITS\"},{\"name\":\"FROMHEX\",\"detail\":\"FROMHEX( input:STRING ): output:LONG\",\"documentation\":\"Converts an hexadecimal representation into a signed long. 64bits max.\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Signed long\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMHEX\"},{\"name\":\"FSTORE\",\"detail\":\"FSTORE( string:STRING path:STRING overwrite:BOOLEAN ): \\nFSTORE( bytes:BYTES path:STRING overwrite:BOOLEAN ): \",\"documentation\":\"The `FSTORE` function stores a `STRING` or `BYTES` object in a file, optionally overwriting any existing content. The file can be on the local file system or in HDFS.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `overwrite` Flag indicating whether or not to overwrite any existing content.\\n\\n@param `path` Path of the file to create.\\n\\n@param `string` `STRING` content to store in the file, will be encoded using `UTF-8`.\\n\\n@param `bytes` Byte array to store in the file.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FSTORE\"},{\"name\":\"FUNCREF\",\"detail\":\"FUNCREF( functionName:STRING ): function:FUNCTION\",\"documentation\":\"The `FUNCREF` function returns the function for a given function name. If the function cannot be found, `FUNCREF` fails. This function looks through all defined functions: core, enabled extensions and defined functions with [`DEF`](/doc/DEF).\\n\\n@param `functionName` The name of the function\\n\\n@param `function` The function\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.8.0\",\"OPB64name\":\"FUNCREF\"},{\"name\":\"FUNCTIONS\",\"detail\":\"FUNCTIONS(): functions:LIST<STRING>\",\"documentation\":\"FUNCTIONS returns a list of every functions available in your Warp 10 environnment, including native and extension functions.\\n\\nIt could be useful when coding your own extension to check your new functions are correctly registered.\\n\\n\\nFUNCTIONS allow anyone to discover new extensions you created on the platform, so it is deactivated by default.\\n\\nYou must add `warpscript.extension.inventory=io.warp10.script.ext.inventory.InventoryWarpScriptExtension` in your configuration file for this function to be available.\\n\\n@param `functions` List of Warp 10 functions available on this instance\\n\\n\",\"tags\":[\"platform\",\"extensions\"],\"since\":\"1.2.16\",\"OPB64name\":\"FUNCTIONS\"},{\"name\":\"FUSE\",\"detail\":\"FUSE( chunks:LIST<GTS> ): gts:GTS\",\"documentation\":\"Fuses Geo Time Series™ chunks. The fusion process attempts to keep the bucketization parameters if all chunks are bucketized with compatible `bucketspan` and `lastbucket` values.\\n\\nAll chunks must be of the same type.\\n\\nThe fused GTS will have the common class name of the chunks or no class name if some chunks have a different class name. The labels will be those common to all chunks, so when fusing chunks created with [`CHUNK`](/doc/CHUNK), the chunk id will be dropped.\\n\\n@param `chunks` List of Geo Time Series™ to fuse.\\n\\n@param `gts` Geo Time Series™ resulting from the fusion of `chunk`.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FUSE\"},{\"name\":\"GEO.BUFFER\",\"detail\":\"GEO.BUFFER( params:MAP ): wkb:BYTES\\nGEO.BUFFER( params:MAP ): area:STRING\\nGEO.BUFFER( params:MAP ): \",\"documentation\":\"The `GEO.BUFFER` function allows to create [*buffer*](https://en.wikipedia.org/wiki/Buffer_(GIS)) **GEOSHAPE** objects. The function takes a `MAP` instance as input. This map can contain the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `dist` | Distance of the buffer, as a central angle expressed in degrees. |\\n| `mdist` | Distance of the buffer expressed in meters. This key is only taken into account if `dist` is not specified. |\\n| `cap` | The end cap style to consider, use `SQUARE`, `FLAT` or `ROUND` (default). |\\n| `join` | The join style to use, use `BEVEL`, `MITRE` or `ROUND` (default). |\\n| `limit` | The mitre limit to use. Defaults to 5.0. |\\n| `segments` | Number of segments to use per quadrant, defaults to 8. |\\n| `singlesided` | Set to `true` to compute a single sided buffer. If `true`, positive distance will indicate left-hand side and negative distance right-hand side. End cap is ignored for single sided buffers. |\\n| `wkb` | Byte array containing a [WKB](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary) definition of a geographic area. |\\n| `wkt` | String containing a [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) definition of a geographic area. |\\n| `geojson` | String containing a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) definition of a geographic area. |\\n\\nIf a geographic area is defined, only one of `wkb`, `wkt` or `geojson` may be specified. The output of the function is a new definition of a geographic area with the buffer added to the original definition.\\n\\nIf no geographic area is defined, `GEO.BUFFER` will define a buffer which will be used by the next call to either [`GEO.WKT`](/doc/GEO.WKT), [`GEO.WKB`](/doc/GEO.WKB) or [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `params` Parameter map containing keys as defined above.\\n\\n@param `wkb` Area definition with the buffer added, if `params` had a value for key `wkb`.\\n\\n@param `area` Area definition with the buffer added, in WKT or GeoJSON depending on the presence of key `wkt` or `geojson` in `params`.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.7.0\",\"OPB64name\":\"GEO.BUFFER\"},{\"name\":\"GEO.COVER\",\"detail\":\"GEO.COVER( gts:GTS resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER( encoder:GTSENCODER resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER( list:LIST resolution:LONG ): geoshapes:LIST<GEOSHAPE>\",\"documentation\":\"The `GEO.COVER` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* in which the input Geo Time Series™ or GTS Encoder had datapoints.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER\"},{\"name\":\"GEO.COVER.RL\",\"detail\":\"GEO.COVER.RL( gts:GTS resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER.RL( encoder:GTSENCODER resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER.RL( list:LIST resolution:LONG ): geoshapes:LIST<GEOSHAPE>\",\"documentation\":\"The `GEO.COVER.RL` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* which cover the path of an input Geo Time Series™ or GTS Encoder. The path is considered to follow [rhumb lines](https://en.wikipedia.org/wiki/Rhumb_line), hence the function suffix `.RL`.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER.RL\"},{\"name\":\"GEO.DIFFERENCE\",\"detail\":\"GEO.DIFFERENCE( shapeA:GEOSHAPE shapeB:GEOSHAPE ): shape:GEOSHAPE\",\"documentation\":\"The `GEO.DIFFERENCE` function computes the difference between two GEOSHAPE. The resulting GEOSHAPE instance contains cells which cover the part of the first GEOSHAPE which is not in the second. If you need to have cells up to a certain resolution, you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the result.\\n\\n@param `shapeA` GEOSHAPE instance from which to subtract the second shape.\\n\\n@param `shapeB` GEOSHAPE to subtract from 'shapeA'.\\n\\n@param `shape` GEOSHAPE containing 'shapeA' minus 'shapeB'.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.DIFFERENCE\"},{\"name\":\"GEO.GML\",\"detail\":\"GEO.GML( GML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.GML( GML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.GML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nGML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML\"},{\"name\":\"GEO.GML.UNIFORM\",\"detail\":\"GEO.GML.UNIFORM( GML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.GML.UNIFORM( GML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.GML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the GML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.GML`](doc/GEO.GML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML.UNIFORM\"},{\"name\":\"GEO.INTERSECTION\",\"detail\":\"GEO.INTERSECTION( shapeA:GEOSHAPE shapeB:GEOSHAPE ): shape:GEOSHAPE\\nGEO.INTERSECTION( shapes:LIST<GEOSHAPE> ): shape:GEOSHAPE\",\"documentation\":\"The `GEO.INTERSECTION` function computes the intersection of two GEOSHAPE instances. The intersection process will produce a GEOSHAPE whose cells are common to the two initial shapes. The common cells will be of various resolutions, depending on the resolutions of the cells from the initial shapes. If you need the resulting shape to contain cells up to a specific resolution, you can call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) either on the result or on the initial shapes.\\n\\n@param `shapeA` First GEOSHAPE instance.\\n\\n@param `shapeB` Second GEOSHAPE instance.\\n\\n@param `shapes` GEOSHAPE instances.\\n\\n@param `shape` Geographical area (GEOSHAPE) resulting from the intersection of the given shapes.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTION\"},{\"name\":\"GEO.INTERSECTS\",\"detail\":\"GEO.INTERSECTS( gts:GTS shape:GEOSHAPE ): result:BOOLEAN\\nGEO.INTERSECTS( lgts:LIST<GTS> shape:GEOSHAPE ): results:LIST<BOOLEAN>\\nGEO.INTERSECTS( shapeA:GEOSHAPE shapeB:GEOSHAPE ): result:BOOLEAN\",\"documentation\":\"The `GEO.INTERSECTS` function checks if a Geo Time Series or each GTS from a list has at least one data point with a position inside a given geographical area. Since `2.7.1`, the function can also check if two `GEOSHAPE` instances intersect.\\n\\n@param `shapeA` First `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shapeB` Second `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shape` Instance of GEOSHAPE containing the area which the Geo Time Series must intersect.\\n\\n@param `gts` Single instance of Geo Time Series.\\n\\n@param `lgts` List of Geo Time Series.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series had at least one datapoint in 'shape' or if the two shapes intersect.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had at least one datapoint in 'shape'.\\n\\n\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTS\"},{\"name\":\"GEO.JSON\",\"detail\":\"GEO.JSON( GeoJSON:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.JSON( GeoJSON:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.9\",\"OPB64name\":\"GEO.JSON\"},{\"name\":\"GEO.JSON.UNIFORM\",\"detail\":\"GEO.JSON.UNIFORM( GeoJSON:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.JSON.UNIFORM( GeoJSON:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.JSON`](doc/GEO.JSON), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.JSON.UNIFORM\"},{\"name\":\"GEO.KML\",\"detail\":\"GEO.KML( KML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.KML( KML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.KML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nKML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML\"},{\"name\":\"GEO.KML.UNIFORM\",\"detail\":\"GEO.KML.UNIFORM( KML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.KML.UNIFORM( KML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.KML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the KML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.KML`](doc/GEO.KML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML.UNIFORM\"},{\"name\":\"GEO.NORMALIZE\",\"detail\":\"GEO.NORMALIZE( shapeA:GEOSHAPE shapeB:GEOSHAPE ): normalizedA:GEOSHAPE normalizedB:GEOSHAPE\",\"documentation\":\"The `GEO.NORMALIZE` function ensures that the intersection of two **GEOSHAPE**s is present in both as an identical set of cells.\\n\\n@param `shapeA` The first GEOSHAPE to normalize.\\n\\n@param `shapeB` The second GEOSHAPE to normalize.\\n\\n@param `normalizedA` A normalized copy of the first GEOSHAPE.\\n\\n@param `normalizedB` A normalized copy of the second GEOSHAPE.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEO.NORMALIZE\"},{\"name\":\"GEO.OPTIMIZE\",\"detail\":\"GEO.OPTIMIZE( shape:GEOSHAPE resolution:LONG ): optimized:GEOSHAPE\",\"documentation\":\"The `GEO.OPTIMIZE` function optimizes a GEOSHAPE instance by modifying its cells to either limit the finest resolution present in the shape or reduce the number of cells by merging cells which cover a whole cell at the coarser resolution.\\n\\n@param `shape` GEOSHAPE instance to optimize.\\n\\n@param `resolution` Finest resolution acceptable (even number from 2 to 32) or 0 to reduce the number of cells.\\n\\n@param `optimized` Optimized GEOSHAPE instance\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.OPTIMIZE\"},{\"name\":\"GEO.REGEXP\",\"detail\":\"GEO.REGEXP( shape:GEOSHAPE ): regexp:STRING\",\"documentation\":\"The `GEO.REGEXP` function converts a GEOSHAPE into a regular expression to select hexadecimal [HHCode](https://en.wikipedia.org/wiki/HHCode) STRINGs which are included in the GEOSHAPE.\\n\\n@param `shape` An instance of GEOSHAPE.\\n\\n@param `regexp` A regular expression for matching HHCodes covered by 'shape'.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GEO.REGEXP\"},{\"name\":\"GEO.UNION\",\"detail\":\"GEO.UNION( shapeA:GEOSHAPE shapeB:GEOSHAPE ): shape:GEOSHAPE\\nGEO.UNION( shapes:LIST<GEOSHAPE> ): shape:GEOSHAPE\",\"documentation\":\"The `GEO.UNION` function computes a GEOSHAPE which is the union of two other shapes. The resulting shape will have cells covering the two original shapes. If you need to have cells up to a certain resolution you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the resulting shape.\\n\\n@param `shapeA` First GEOSHAPE instance to merge.\\n\\n@param `shapeB` Second GEOSHAPE instance to merge.\\n\\n@param `shapes` GEOSHAPE instances to merge.\\n\\n@param `shape` Resulting GEOSHAPE which is the union of the given shapes.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.UNION\"},{\"name\":\"GEO.WITHIN\",\"detail\":\"GEO.WITHIN( gts:GTS shape:GEOSHAPE ): result:BOOLEAN\\nGEO.WITHIN( lgts:LIST<GTS> shape:GEOSHAPE ): results:LIST<BOOLEAN>\",\"documentation\":\"The `GEO.WITHIN` function checks whether a Geo Time Series™ or each GTS from a list have all its datapoints with a location inside a given geographical area.\\n\\n@param `shape` Instance of GEOSHAPE containing the area inside which the Geo Time Series™ must be contained.\\n\\n@param `gts` Single instance of Geo Time Series™.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series™ had all its datapoints with a location inside 'shape'.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had all its datapoints with a location inside 'shape'.\\n\\n\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WITHIN\"},{\"name\":\"GEO.WKB\",\"detail\":\"GEO.WKB( WKB:BYTES percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKB( WKB:BYTES resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.WKB` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB\"},{\"name\":\"GEO.WKB.UNIFORM\",\"detail\":\"GEO.WKB.UNIFORM( WKB:BYTES percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKB.UNIFORM( WKB:BYTES resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.WKB.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKB`](doc/GEO.WKB), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB.UNIFORM\"},{\"name\":\"GEO.WKT\",\"detail\":\"GEO.WKT( WKT:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKT( WKT:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.WKT` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WKT\"},{\"name\":\"GEO.WKT.UNIFORM\",\"detail\":\"GEO.WKT.UNIFORM( WKT:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKT.UNIFORM( WKT:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"documentation\":\"The `GEO.WKT.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKT`](doc/GEO.WKT), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.2.11\",\"OPB64name\":\"GEO.WKT.UNIFORM\"},{\"name\":\"GEOCELL->\",\"detail\":\"GEOCELL->( geocell:LONG ): hhPrefix:STRING\",\"documentation\":\"The `GEOCELL->` function converts a **LONG** geocell to a **STRING** HHCode prefix. The resulting string length is half the resolution of the geocell.\\n\\nThis function cannot convert to **BYTES** because this representation is limited to resolutions multiple of 4.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `geocell` A geocell.\\n\\n@param `hhPrefix` A HHCode prefix representing the given cell.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEFoKBI1oy\"},{\"name\":\"GEOHASH->\",\"detail\":\"GEOHASH->( geohash:STRING ): lat:DOUBLE lon:DOUBLE\\nGEOHASH->( geohash:STRING toHHCodeString:BOOLEAN ): hhcode:ANY\\nGEOHASH->( geohashes:LIST<STRING> ): shape:GEOSHAPE\",\"documentation\":\"The `GEOHASH->` converts a [Geohash](https://en.wikipedia.org/wiki/Geohash), exposing the latitude and longitude it contains, or transforms a list of Geohashes into a `GEOSHAPE`.\\n\\n@param `geohash` Geohash to unpack.\\n\\n@param `geohashes` List of Geohashes defining a geographical area.\\n\\n@param `lat` Unpacked latitude.\\n\\n@param `lon` Unpacked longitude.\\n\\n@param `toHHCodeString` Set to `true` to convert the GeoHash to a HHCode STRING or to `false` to convert it to a LONG HHCode instead of extracting its latitude and longitude.\\n\\n@param `hhcode` The HHCode for `geohash`, as a LONG or STRING.\\n\\n@param `shape` Warp 10 `GEOSHAPE` covering the same geographic area as the Geohashes in `geohashes`.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GoKEH34IH1oy\"},{\"name\":\"GEOPACK\",\"detail\":\"GEOPACK( shape:GEOSHAPE ): packed:STRING\",\"documentation\":\"The `GEOPACK` function takes a **GEOSHAPE** and packs it into a String.\\n\\n@param `shape` The GEOSHAPE instance to pack.\\n\\n@param `packed` The packed string representation of the GEOSHAPE.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOPACK\"},{\"name\":\"GEOSHAPE->\",\"detail\":\"GEOSHAPE->( geoshape:GEOSHAPE ): geocells:LIST<LONG>\\nGEOSHAPE->( geoshape:GEOSHAPE toString:BOOLEAN ): geocellsOrHHPrefixes:LIST<ANY>\",\"documentation\":\"The `GEOSHAPE->` function converts **GEOSHAPE** to a list of **LONG** geocells or **STRING** HHCode prefixes. Conversion to list of **BYTES** is not supported, because this representation only supports resolution multiple of 4.\\n\\n@param `geoshape` The geoshape to get the cells from.\\n\\n@param `toString` Whether to convert the cells to **STRING** HHCode prefix (true) or geocells (false).\\n\\n@param `geocells` List of geocells.\\n\\n@param `geocellsOrHHPrefixes` List of **LONG** geocells or **STRING** HHCode prefixes.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEJoW0J3JhEV\"},{\"name\":\"GEOSHIFT\",\"detail\":\"GEOSHIFT( shape:GEOSHAPE lat:DOUBLE lon:DOUBLE precision:LONG ): output:GEOSHAPE\\nGEOSHIFT( shape:GEOSHAPE meridian:DOUBLE lat:DOUBLE lon:DOUBLE precision:LONG ): output:GEOSHAPE\",\"documentation\":\"`GEOSHIFT` functions shifts a geoshape on the earth. It is able to safely overlap the poles or the 180th meridian.\\n- Longitude shift keeps distances.\\n- Latitude shift keeps angles, not distances.\\n- When doing latitude shift, you can specify a meridian to shift along this meridian. It means a positive shift became a negative shift behind this meridian +/- 90°.\\n\\nSet precision parameter to zero for safe shifting operation. See [`GEO.WKT`](/doc/GEO.WKT) for precision encoding.\\n\\nUse [`->GEOJSON`](/doc/AIt6GJx9JoxD) to visualize shapes and the results. GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `lon` degrees of longitude to shift (-360 to 360).\\n\\n@param `lat` degrees of latitude to shift (-180 to 180).\\n\\n@param `precision` even number from 0 to 30. Set to 0 for automatic resolution. Force to another value if you know the input resolution to be finer and you want a coarser resolution.\\n\\n@param `shape` The input geoshape.\\n\\n@param `output` The shifted geoshape.\\n\\n@param `meridian` When doing latitude shift, you can specify a meridian to shift along this meridian. (-180 to 180)\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSHIFT\"},{\"name\":\"GEOSPLIT\",\"detail\":\"GEOSPLIT( shape:GEOSHAPE ): subshapes:LIST<GEOSHAPE>\",\"documentation\":\"The `GEOSPLIT` function splits a **GEOSHAPE** into a set of **GEOSHAPE**s which have no adjacent cells (each shape is a connected space).\\n\\nAdjacent cells share part of their side. Adjacency is not provided by corners and cells on each side of the international date line are not considered adjacent either.\\n\\n@param `shape` The GEOSHAPE instance to split.\\n\\n@param `subshapes` The shapes whose union form `shape` and which each form a connected space.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSPLIT\"},{\"name\":\"GEOUNPACK\",\"detail\":\"GEOUNPACK( packed:STRING ): shape:GEOSHAPE\\nGEOUNPACK( packedbytes:BYTES ): shape:GEOSHAPE\",\"documentation\":\"The `GEOUNPACK` function unpacks a GEOSHAPE previously packed using [`GEOPACK`](/doc/GEOPACK).\\n\\n@param `packed` A packed string representation of a GEOSHAPE.\\n\\n@param `packedbytes` A byte array representation of a GEOSHAPE.\\n\\n@param `shape` The decoded instance of GEOSHAPE.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOUNPACK\"},{\"name\":\"GET\",\"detail\":\"GET( map:MAP key:ANY ): mapvalue:ANY\\nGET( list:LIST index:LONG ): value:ANY\\nGET( list:LIST index:LIST ): value:ANY\\nGET( array:BYTES index:LONG ): bytevalue:LONG\\nGET( str:STRING index:LONG ): character:STRING\",\"documentation\":\"Retreive a value in a **MAP** or a **LIST**.\\n\\nThe `GET` function consumes on the top of the stack a list, a byte array, or a map, and the index (or the key), \\nthen put the result on the stack. \\n\\nIf key is not found, it returns NULL on the stack.\\n\\nIf index is out of bound, `GET` raises an error.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, `GET` can operate recursively on nested lists. In this case, the index is a list.\\n\\nSince 2.7.3, GET can operate on a **STRING** to get a single character, as a **STRING**. The recursive version can also work on any type supported by `GET` as long as the top element is a **LIST**.\\n\\n@param `map` The input MAP.\\n\\n@param `key` Depending on map construction, could be a number, a string, a list, another map, a GTS, a boolean.\\n\\n@param `mapvalue` The value for the requested key. If key do not exists in map, returns NULL\\n\\n@param `index` The index number in the list. Valid values in [-size; size-1]\\n\\n@param `list` The input LIST.\\n\\n@param `value` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `array` Byte array from which to read a byte.\\n\\n@param `bytevalue` The value of the byte, always unsigned (from 0 to 255).\\n\\n@param `str` A string from which a character should be taken.\\n\\n@param `character` The character at the given index.\\n\\n\",\"tags\":[\"lists\",\"maps\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"GET\"},{\"name\":\"GETEXPONENT\",\"detail\":\"GETEXPONENT( n:NUMBER ): exponent:LONG\",\"documentation\":\"The `GETEXPONENT` function consumes a DOUBLE, a LONG casted as a DOUBLE or a COUNTER caster as DOUBLE and pushes back the unbiased exponent used in the representation of this DOUBLE.\\n\\n@param `n` The decimal value to get the exponent from, will be converted to DOUBLE if not already the case.\\n\\n@param `exponent` the unbiased exponent of the argument\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"GETEXPONENT\"},{\"name\":\"GETHOOK\",\"detail\":\"GETHOOK( token:STRING hook:STRING ): secure:STRING\",\"documentation\":\"Extracts the macro associated with a token hook and pushes it onto the stack wrapped as a secure script.\\n\\nIf the token does not contain the given hook, an empty macro will be wrapped.\\n\\n@param `hook` Name of the hook to extract from the token.\\n\\n@param `token` Read token from which to extract the hook.\\n\\n@param `secure` Hook macro wrapped in a secure script.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.8\",\"OPB64name\":\"GETHOOK\"},{\"name\":\"GETSECTION\",\"detail\":\"GETSECTION(): section:STRING\",\"documentation\":\"The `GETSECTION` function pushes onto the stack the name of the current section.\\n\\n@param `section` Name of the current section.\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"GETSECTION\"},{\"name\":\"GITFIND\",\"detail\":\"GITFIND( { regexp:STRING repo:STRING  } ): files:LIST<STRING>\",\"documentation\":\"The `GITFIND` function identifies files which match a provided regular expression from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `regexp` Regular expression that the relative pathes must match to be selected.\\n\\n@param `files` List of relative pathes matching `regexp`.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITFIND\"},{\"name\":\"GITLOAD\",\"detail\":\"GITLOAD( { rev:STRING path:STRING repo:STRING  } ): content:BYTES\",\"documentation\":\"The `GITLOAD` function retrieves content stored in a git repository accessible by the extension. The load operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `content` Byte array containing the content of `path` or `NULL` if it was not found.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOAD\"},{\"name\":\"GITLOG\",\"detail\":\"GITLOG( { skip:LONG count:LONG path:STRING repo:STRING  } ): \",\"documentation\":\"The `GITLOG` function retrieves log entries for the given pathes. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\nThe log entries returned are maps with the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `rev` | The git revision string for the entry. |\\n| `type` | The type of entry. |\\n| `message` | The message associated with the entry. |\\n| `author.name` | The name of the author of the change. |\\n| `author.email` | The email address of the author of the change. |\\n| `author.timestamp` | The timestamp of the change, expressed in your platform time units. |\\n| `committer.name` | The name of the committer of the change. |\\n| `committer.email` | The email address of the committer of the change. |\\n| `committer.timestamp` | The timestamp of the commit. |\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `count` Optional maximum number of log entries to return.\\n\\n@param `skip` Optional number of log entries to skip before returning entries.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOG\"},{\"name\":\"GITRM\",\"detail\":\"GITRM( { path:STRING repo:STRING message:STRING  } ): \",\"documentation\":\"The `GITRM` removes files from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `message` Commit message for the deletion operation.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITRM\"},{\"name\":\"GITSTORE\",\"detail\":\"GITSTORE( { workdir:BOOLEAN path:STRING repo:STRING content:STRING message:STRING  } ): rev:STRING\",\"documentation\":\"The `GITSTORE` function stores some content in a file in a git repository accessible by the extension. The store operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `message` The commit message to associated with the file creation or modification.\\n\\n@param `content` The `STRING` or `BYTES` content to store under `path` in the repository. If `content` is of type `STRING`, the `UTF-8` charset will be used for converting it to `BYTES`.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `workdir` If set to `false`, the file at `path` will be removed from the working directory after the commit.\\n\\n@param `rev` Revision string of the commit.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITSTORE\"},{\"name\":\"GITTAG\",\"detail\":\"GITTAG( { message:STRING force:BOOLEAN tag:STRING rev:STRING repo:STRING  } ): ref:STRING\",\"documentation\":\"The `GITTAG` function tags a git repository accessible by the extension. The tag operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `message` Message to attach to the annotated tag.\\n\\n@param `tag` Name of the tag to attach.\\n\\n@param `force` Flag indicating whether or not to force the tag if it already exists. Defaults to false.\\n\\n@param `ref` Name of the created reference.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITTAG\"},{\"name\":\"GOLDWRAP\",\"detail\":\"GOLDWRAP( encoder:GTSENCODER ): wrapped:BYTES\\nGOLDWRAP( gts:GTS ): wrapped:BYTES\\nGOLDWRAP( wrap:BYTES ): wrapped:BYTES\\nGOLDWRAP( list:LIST<GTS> ): lwrapped:LIST<BYTES>\\nGOLDWRAP( list:LIST<GTSENCODER> ): lwrapped:LIST<BYTES>\\nGOLDWRAP( list:LIST<BYTES> ): lwrapped:LIST<BYTES>\",\"documentation\":\"The `GOLDWRAP` function wraps a Geo Time Series™ or a GTS Encoder in a deterministic way, by sorting on timestamps but also on values, locations and elevations.\\n\\nThis version of a `WRAP` like function is meant to create a *gold standard* blob from its input. In order to ensure reproducibility of the processs, attributes should be dropped prior to calling `GOLDWRAP`.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `wrap` Wrapped Geo Time Series™ instance to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders to wrap.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"GOLDWRAP\"},{\"name\":\"GOST\",\"detail\":\"GOST( input:BYTES ): result:BYTES\",\"documentation\":\"The `GOST` function digests a byte array on the stack with the cryptographic hash function [GOST](https://en.wikipedia.org/wiki/GOST_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"GOST\"},{\"name\":\"GROUPBY\",\"detail\":\"GROUPBY( list:LIST macro:MACRO ): grouped:LIST\",\"documentation\":\"The `GROUPBY` function groups the elements of a list according to the value returned by a macro.\\n\\n@param `macro` Macro used for grouping, consumes an element off the stack and produces a value on the stack.\\n\\n@param `list` List of elements to group.\\n\\n@param `grouped` List of groups, each group is a list whose first element is the group key and whose second element is the sublist of `list` for which `macro` produced the same value.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"GROUPBY\"},{\"name\":\"GRUBBSTEST\",\"detail\":\"GRUBBSTEST( gts:GTS mad:BOOLEAN alpha:DOUBLE ): result:LIST<LONG>\\nGRUBBSTEST( gts:GTS mad:BOOLEAN ): result:LIST<LONG>\\nGRUBBSTEST( gtsList:LIST<GTS> mad:BOOLEAN alpha:DOUBLE ): resultList:LIST\\nGRUBBSTEST( gtsList:LIST<GTS> mad:BOOLEAN ): resultList:LIST<LIST<LONG>>\",\"documentation\":\"The `GRUBBSTEST` function detects an outlier in a GTS (or a LIST of GTS), by applying a \\n[Grubbs’](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h1.htm) test.\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nIt tests whether there is exactly a single outlier in a GTS or not. For an iterative version which can detect multiple outliers, use instead\\n[`ESDTEST`](/doc/ESDTEST).\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> ### Reference \\n> Grubbs, Frank (February 1969). “Procedures for Detecting Outlying Observations in Samples”. Technometrics (Technometrics, Vol. 11, No. 1).\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"GRUBBSTEST\"},{\"name\":\"GTSHHCODE->\",\"detail\":\"GTSHHCODE->( hhcode:LONG ): lat:DOUBLE lon:DOUBLE\\nGTSHHCODE->( hhcode:STRING ): lat:DOUBLE lon:DOUBLE\\nGTSHHCODE->( hhcode:BYTES ): lat:DOUBLE lon:DOUBLE\",\"documentation\":\"The `GTSHHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude. This function is very similar to [`HHCODE->`](/doc/H3W2IoG4AIs) except that when given the internal value used by Geo Time Series™ for a missing location it pushes back `NaN NaN`.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GpGIH3W2IoG4AIs\"},{\"name\":\"GUARD\",\"detail\":\"GUARD( macro:MACRO symbols:LIST ): \\nGUARD( macro:MACRO symbols:LIST hide:LONG ): \\nGUARD( macro:MACRO context:CONTEXT ): \\nGUARD( macro:MACRO context:CONTEXT hide:LONG ): \",\"documentation\":\"The `GUARD` function executes a macro, like [EVAL](/doc/EVAL), while ensuring sensitive information is protected. This is achieved by clearing part or all the stack, symbols and registers.\\n\\n@param `symbols` List of symbols to be cleared after the execution of the macro, whether it fails or succeeds.\\n\\n@param `hide` Number of level to hide before the macro execution. If the macro fails, the stack is cleared and hidden levels are set visible again. See [HIDE](/doc/HIDE) and [SHOW](/doc/SHOW) for more explanation on accepted parameters.\\n\\n@param `macro` Macro to be executed.\\n\\n@param `context` Context to be restored after the execution of the macro, whether it fails or succeeds.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"GUARD\"},{\"name\":\"GZIP\",\"detail\":\"GZIP( string:STRING ): compressed:BYTES\\nGZIP( bytes:BYTES ): compressed:BYTES\",\"documentation\":\"The `GZIP` function compresses a STRING or a byte array using the [gzip](https://en.wikipedia.org/wiki/Gzip) algorithm. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"GZIP\"},{\"name\":\"HASH\",\"detail\":\"HASH( str:STRING ): result:LONG\\nHASH( bytes:BYTES ): result:LONG\",\"documentation\":\"Computes a 64 bits hash of the string or byte array on top of the stack.\\n\\n@param `str` String to hash\\n\\n@param `bytes` Bytes to hash\\n\\n@param `result` 64bit hash\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"HASH\"},{\"name\":\"HAVERSINE\",\"detail\":\"HAVERSINE( p1_latitude:NUMBER p1_longitude:NUMBER p2_latitude:NUMBER p2_longitude:NUMBER ): haversineDistance:DOUBLE\",\"documentation\":\"The `HAVERSINE` function consumes two coordinates and pushes back a **DOUBLE** [great-circle distance](https://en.wikipedia.org/wiki/Great-circle_distance) in meters.\\n\\n@param `p2_longitude` Point 2 longitude.\\n\\n@param `p2_latitude` Point 2 latitude.\\n\\n@param `p1_longitude` Point 1 longitude.\\n\\n@param `p1_latitude` Point 1 latitude.\\n\\n@param `haversineDistance` Great circle distance using the haversine function.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"HAVERSINE\"},{\"name\":\"HEADER\",\"detail\":\"HEADER( name:STRING value:STRING ): \",\"documentation\":\"The `HEADER` function allows you to set custom headers which should be returned in the HTTP response. This obviously works only for the `/exec` Warp 10 endpoint.\\n\\n@param `name` Name of HTTP header to return, MUST start with `X-`, *i.e.* be a custom header.\\n\\n@param `value` Value to return for the `name` header. If `NULL`, the specified header is removed from the list of headers to return.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"HEADER\"},{\"name\":\"HEX->\",\"detail\":\"HEX->( input:STRING ): output:BYTES\",\"documentation\":\"Converts a hexadecimal string representation into a bytes array.\\nBytes array cannot be represented on the stack.\\n\\n@param `input` A valid hexadecimal string.\\n\\n@param `output` Bytes Array from input. Seen as null on the stack.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H3KNAIs\"},{\"name\":\"HEXTOB64\",\"detail\":\"HEXTOB64( input:STRING ): output:STRING\",\"documentation\":\"Decodes the hex encoded content on top of the stack and \\nimmediately re-encode it in base64. This enables you to \\nconvert encoded content which would not be valid UTF-8 encoding \\nfrom hexadecimal to base64.      \\n\\n@param `input` A valid hexadecimal string\\n\\n@param `output` Base64 representation of input\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOB64\"},{\"name\":\"HEXTOBIN\",\"detail\":\"HEXTOBIN( input:STRING ): output:STRING\",\"documentation\":\"Converts a string representing a hexadecimal number into a string representing a binary number.\\n\\nThe `HEXTOBIN` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from hexadecimal to binary.\\n\\n@param `input` The string representing a hexadecimal number\\n\\n@param `output` The string representing a binary number\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOBIN\"},{\"name\":\"HFCAT\",\"detail\":\"HFCAT( { hfcat.gts:STRING hfcat.info:STRING selector:STRING token:STRING macro:MACRO store:STRING secret:STRING  } ): \",\"documentation\":\"The `HFCAT` function creates catalog files for a History File Store. The files are created in the root directory of the History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfcat` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to catalog.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfcat` capability.\\n\\n@param `macro` Optional macro which will be called with each matched `GTS`. The macro can modify the attributes and return a `GTS` or an `ENCODER` or not return anything to ignore the GTS.\\n\\n@param `token` Optional token to use for retrieving GTS.\\n\\n@param `selector` Selector to match Geo Time Series, syntax is `class{labels}`.\\n\\n@param `hfcat.info` Optional name of the catalog *info* file, defaults to `hfcat.info`. If the name ends with `.gz`, the content will be gzipped.\\n\\n@param `hfcat.gts` Optional name of the catalog *gts* file, defaults to `hfcat.gts`. If the name ends with `.gz`, the content will be gzipped.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCAT\"},{\"name\":\"HFCLOSE\",\"detail\":\"HFCLOSE( store:STRING secret:STRING ): \",\"documentation\":\"The `HFCLOSE` function closes a History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfclose` capability by setting its value to a regular expression matching the name of the accessible stores.\\n\\n@param `store` Name of History File Store to close.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfclose` capability.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCLOSE\"},{\"name\":\"HFDUMP\",\"detail\":\"HFDUMP( { dfs.replication:LONG dfs.block.size:LONG conf:MAP catalog:BOOLEAN bloomfilter:BOOLEAN gzipgts:BOOLEAN gzipinfo:BOOLEAN macro:MACRO checksums:BOOLEAN keepempty:BOOLEAN blocksize:LONG compress:STRING format:STRING selector:STRING timespan:LONG end:LONG path:STRING token:STRING secret:STRING  } ): infos:MAP\",\"documentation\":\"The `HFDUMP` function produces a HFile from Geo Time Series data. The function produces a file in the directory from which the Warp 10 instance was launched, unless the configuration key `hfdump.dir` was set in which case the file will be created in this directory. The function will not overwrite an existing file.\\n\\nIf capability `hfdump` is set, its value will be treated as the root directory in which the file will be created.\\n\\nOn top of the input parameters described below, the `HFDUMP` function also supports the parameters of the [`FETCH`](https://warp10.io/doc/FETCH) function with the exclusion of `ttl`, `wtimestamp`, `type`, `typeattr`, `gts`, `merge`, `priority` and `selectors`.\\n\\nThe function will return a MAP containing various information about the file that was just created. This information, among with others, are also stored in the HFile and in the accompanying `.info` file.\\n\\nThe list of GTS included in the HFile are stored in the companion `.gts` file.\\n\\n@param `secret` Secret configured in `hfdump.secret`. The selector will not be modified with extra `.producer`, `.owner` or `.app` label selectors. This parameter is ignored if `token` is set. Secret is not checked if the `hfdump` capability is set.\\n\\n@param `token` Token to use for matching Geo Time Series, if set then `secret` is ignored.\\n\\n@param `path` Path to the file to create. Only the last part of `path` is considered, relative to either `hfdump.dir`, the launch directory or the path specified in capability `hfdump`.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `format` Format of the produced wrappers, either `WRAPPER` or `ZWRAPPER`. Defaults to `WRAPPER`.\\n\\n@param `compress` HFile compression to use, `NONE` and `GZ` (the default) are always supported, `SNAPPY`, `LZ4` and `LZO` may be supported if the required libraries are in the classpath.\\n\\n@param `blocksize` HFile block size in bytes, defaults to 65536.\\n\\n@param `keepempty` Flag indicating whether or not Geo Time Series with no data points should be included in the target file. Doing so can be useful to create a single file that `HFINDEX` can use for populating the Directory.\\n\\n@param `checksums` Flag indicating whether or not write checksums should be output in a companion file.\\n\\n@param `macro` Macro called for each GTS Encoder to store in the file. The macro can transform the `ENCODER` prior to storing, for example to perform a [RANGECOMPACT](https://warp10.io/doc/RANGECOMPACT) or any other transformation. Class name and labels modifications will be ignored. The macro must return an `ENCODER` or a `GTS`.\\n\\n@param `infos` Map with information related to the produced file.\\n\\n@param `catalog` Flag indicating whether or not to generate the `.info` and `.gts` files alongside the `.hfile`. Defaults to `true`.\\n\\n@param `gzipinfo` Flag indicating whether or not the `.info` file should be compressed (default).\\n\\n@param `gzipgts` Flag indicating whether or not the `.gts` file should be compressed (default).\\n\\n@param `bloomfilter` Flag indicating whether or not to generate a Bloom Filter in the HFile (defaults to `true`).\\n\\n@param `conf` Map of parameters to pass to the filesystem when using HDFS.\\n\\n@param `dfs.block.size` Block size to use (in bytes) when using HDFS.\\n\\n@param `dfs.replication` Replication count to use when using HDFS.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFDUMP\"},{\"name\":\"HFFETCH\",\"detail\":\"HFFETCH( { token:STRING class:STRING labels:MAP end:LONG timespan:LONG start:LONG count:LONG skip.count:LONG sampling.ratio:DOUBLE timestep:LONG step:LONG gcount:LONG gskip:LONG encoders:BOOLEAN lineage:STRING clip:BOOLEAN merge:BOOLEAN store:STRING selector:STRING  } ): result:LIST\",\"documentation\":\"The `HFFETCH` function retrieves data from a History File Store available in a Warp 10 instance.\\n\\n@param `token` Token to use for matching Geo Time Series.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points. Ignored if `start` is specified.\\n\\n@param `count` Number of data points to retrieve.\\n\\n@param `start` Start timestamp to consider when fetching data points. It has priority over `timespan`.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `class` Class selector. Not used if `selector` is set.\\n\\n@param `labels` Labels selectors. Not used if `selector` is set.\\n\\n@param `store` Name of History File Store to access. This can also be specified via the `.hfstore` token attribute.\\n\\n@param `result` List of GTS Encoders or Geo Time Series containing the fetched data.\\n\\n@param `encoders` Set to `true` (default) to produce `ENCODERS`, and to `false` to produce Geo Time Series.\\n\\n@param `gskip` Number of GTS to skip.\\n\\n@param `gcount` Number of GTS to consider.\\n\\n@param `merge` Flag indicating whether or not `ENCODERS` from different files should be merged prior to being returned. This defaults to `true`. Use `false` for faster retrieval.\\n\\n@param `clip` Flag indicating whether or not the data should be clipped to the specified time range or if the complete data from each scanned HFile should be returned. Defaults to `true`.\\n\\n@param `lineage` Optional attribute name which, if defined, will contain the tab separated list of file names from which the data was fetched. The attribute can also be set via the `.hflineage` token attribute.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0.0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFFETCH\"},{\"name\":\"HFID\",\"detail\":\"HFID( gts:GTS keys:LIST ): id:BYTES\\nHFID( encoder:ENCODER keys:LIST ): id:BYTES\",\"documentation\":\"The `HFID` function computes a GTS Id for a given GTS or ENCODER using the specified keys. The GTS or ENCODER must have a class name set.\\n\\n@param `keys` List of keys to use for generating the Id. This list can contain keys as 4 `LONG`s, 2 byte arrays of length 16 each, 2 hex encoded `STRING` representing 16 bytes each, a combination of `BYTES` and hex encoded `STRING`, or a combination of `BYTES` or hex encoded `STRING` and two `LONG`s.\\n\\n@param `id` Id of the GTS or ENCODER, as a byte array of length 16.\\n\\n@param `gts` Geo Time Serie for which to compute the Id.\\n\\n@param `encoder` GTS Encoder for which to compute the Id.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFID\"},{\"name\":\"HFINDEX\",\"detail\":\"HFINDEX( { gts:BOOLEAN infos:BOOLEAN macro:MACRO secret:STRING attr:STRING store:STRING file:STRING  } ): { count:LONG' count:undefined \\n\\n infos:MAP' infos:undefined \\n\\n gts:LIST<ENCODER>' gts:undefined \\n\\n }\",\"documentation\":\"The `HFINDEX` function reads a HFile from a History File Store and registers all of its Geo Time Series with the Warp 10 instance Directory.\\n\\nThe stores which can be accessed can be controlled using the `hfindex` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfindex` capability.\\n\\n@param `file` File to consider within the History File Store.\\n\\n@param `attr` Optional attribute to set on all Geo Time Series with the name of the History File Store. This makes deletion of the GTS easier.\\n\\n@param `count` The number of Geo Time Series registered.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be registered or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINDEX\"},{\"name\":\"HFINFO\",\"detail\":\"HFINFO( { gts:BOOLEAN infos:BOOLEAN macro:MACRO secret:STRING store:STRING file:STRING  } ): { infos:MAP' infos:undefined \\n\\n gts:LIST<ENCODER>' gts:undefined \\n\\n }\",\"documentation\":\"The `HFINFO` function retrieves information for a History File Store or one of its files.\\n\\nThe stores which can be accessed can be controlled using the `hfinfo` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfinfo` capability.\\n\\n@param `file` Name of `.hfile` file to consider within the History File Store. Use `NULL` to retrieve information about the whole store.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be retained or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINFO\"},{\"name\":\"HFKEYS\",\"detail\":\"HFKEYS( { README:STRING  } ): keys:STRING\",\"documentation\":\"The `HFKEYS` function finds Geo Time Series matching critera and packs them in a blob suitable for use with `HFileInputFormat`.\\n\\nThe packed keys must be specified in the `hfileinputformat.keys` configuration when using `HFileInputFormat`.\\n\\n@param `README` The parameters used by `HFKEYS` are identical to those used by [`FIND`](https://warp10.io/doc/FIND), please refer to the documentation of this function.\\n\\n@param `keys` Blob containing packed keys. To be specified as the `hfileinputformat.keys` configuration when using the `HFileInputFormat`.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFKEYS\"},{\"name\":\"HFOPEN\",\"detail\":\"HFOPEN( { maxreaders:LONG fileorder:STRING ignore.missing:BOOLEAN attr:STRING hfcat.gts:STRING hfcat.info:STRING register:BOOLEAN macro:MACRO rescan:LONG root:STRING storeSecret:STRING store:STRING  }secret:STRING ): \",\"documentation\":\"The `HFOPEN` function opens a History File Store, making it available in a Warp 10 instance.\\n\\nThe files which are open are those specified in the `hfcat.info` file.\\n\\nThe files which can be accessed can be controlled using the `hfopen` capability by setting its value to a regular expression matching the accessible roots from which the files can be read.\\n\\n@param `store` Name under which the History File Store will be available in Warp 10.\\n\\n@param `secret` General secret of the History File Store plugin.\\n\\n@param `storeSecret` Secret which will be associated with the newly open store.\\n\\n@param `root` Root directory from which the files should be loaded.\\n\\n@param `rescan` Rescan period (in ms). Defaults to 0. Only set this if you intend to load all the files present in `root` over time.\\n\\n@param `register` `BOOLEAN` indicating whether or not the GTS declared in the GTS metadata file `hfcat.gts` (or the one specified in `hfcat.gts`) should be registered with the Directory.\\n\\n@param `macro` Optional macro used to select which GTS from the GTS metadata `hfcat.gts` should be registered. The macro takes as input an `ENCODER` and returns a `BOOLEAN`.\\n\\n@param `attr` Optional attribute name whose value will be set to the store name when registering the GTS.\\n\\n@param `hfcat.info` Optional name of the catalog file containing the store infos. Defaults to `hfcat.info`.\\n\\n@param `hfcat.gts` Optional name of the catalog file containing the Geo Time Series. Defaults to `hfcat.gts`.\\n\\n@param `ignore.missing` `BOOLEAN` indicating whether missing `.hfile` should be ignored or produce an error.\\n\\n@param `fileorder` How should files be ordered in the store, one of `NAME`, `REVNAME`, `MINTS`, `MAXTS`.\\n\\n@param `maxreaders` Maximum number of open readers per store, defaults to 1024.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFOPEN\"},{\"name\":\"HFRESCAN\",\"detail\":\"HFRESCAN( secret:STRING store:STRING ): \",\"documentation\":\"The `HFRESCAN` function triggers a rescan of the directory of a defined History File Store. The rescan happens asynchronously.\\n\\nThe HFStores which can be rescanned can be specified using a regular expression as the value of capability `hfrescan`.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`, checked only if capability `hfrescan` is not set when using capabilities.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFRESCAN\"},{\"name\":\"HFTOKEN\",\"detail\":\"HFTOKEN( store:STRING ): envelope:MAP\\nHFTOKEN( store:STRING secret:STRING ): envelope:MAP\",\"documentation\":\"The `HFTOKEN` produces a token envelope which can be used to generate a read token to access data in a History File Store.\\n\\nThe Geo Time Series in a History File Store may have been generated with a wide array of producers, owners and applications. The goal of this function is to retrieve those informations and return a `MAP` containing them plus some additional elements.\\n\\nThe returned `MAP` can be used as argument to the [`TOKENGEN`](https://warp10.io/doc/TOKENGEN) function. Please set the `application`, `ttl` and `owner` fields to suitable values for your environment first.\\n\\nThe stores which can be accessed can be controlled using the `hftoken` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of the History File Store for which a token envelope should be generated.\\n\\n@param `secret` General secret for the History File Store plugin. Not used when the capability `hftoken` is set.\\n\\n@param `envelope` Map containing parameters for generating a token suitable for accessing data in the specified History File Store.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFTOKEN\"},{\"name\":\"HHCODE->\",\"detail\":\"HHCODE->( hhcode:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE->( hhcode:STRING ): lat:DOUBLE lon:DOUBLE\\nHHCODE->( hhcode:BYTES ): lat:DOUBLE lon:DOUBLE\",\"documentation\":\"The `HHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"H3W2IoG4AIs\"},{\"name\":\"HHCODE.BBOX\",\"detail\":\"HHCODE.BBOX( hhCode:STRING resolution:LONG ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:LONG resolution:LONG ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:BYTES resolution:LONG ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:STRING ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:BYTES ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\",\"documentation\":\"The `HHCODE.BBOX` function returns the bounding box of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the bounding box representing the lat/lon of North-Easth and South-West corners of the bbox.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `latSW` Latitude of the south west corner of the bounding box\\n\\n@param `lonSW` Longitude of the south west corner of the bounding box\\n\\n@param `latNE` Latitude of the north east corner of the bounding box\\n\\n@param `lonNE` Longitude of the north east corner of the bounding box\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.BBOX\"},{\"name\":\"HHCODE.CENTER\",\"detail\":\"HHCODE.CENTER( hhCode:STRING resolution:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:LONG resolution:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:BYTES resolution:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:STRING ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:BYTES ): lat:DOUBLE lon:DOUBLE\",\"documentation\":\"The `HHCODE.CENTER` function returns the center of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the center and returns its lat/lon.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `lat` Latitude of the center of the given HHCode\\n\\n@param `lon` Longitude of the center of the given HHCode\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.CENTER\"},{\"name\":\"HHCODE.EAST\",\"detail\":\"HHCODE.EAST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.EAST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.EAST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.EAST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.EAST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.EAST` function returns the cell east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.EAST\"},{\"name\":\"HHCODE.NORTH\",\"detail\":\"HHCODE.NORTH( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.NORTH( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.NORTH( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.NORTH( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.NORTH( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.NORTH` function returns the cell north of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH\"},{\"name\":\"HHCODE.NORTH.EAST\",\"detail\":\"HHCODE.NORTH.EAST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.NORTH.EAST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.NORTH.EAST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.NORTH.EAST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.NORTH.EAST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.NORTH.EAST` function returns the cell north east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.EAST\"},{\"name\":\"HHCODE.NORTH.WEST\",\"detail\":\"HHCODE.NORTH.WEST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.NORTH.WEST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.NORTH.WEST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.NORTH.WEST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.NORTH.WEST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.NORTH.WEST` function returns the cell north west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.WEST\"},{\"name\":\"HHCODE.SOUTH\",\"detail\":\"HHCODE.SOUTH( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.SOUTH( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.SOUTH( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.SOUTH( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.SOUTH( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.SOUTH` function returns the cell south of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH\"},{\"name\":\"HHCODE.SOUTH.EAST\",\"detail\":\"HHCODE.SOUTH.EAST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.SOUTH.EAST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.SOUTH.EAST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.SOUTH.EAST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.SOUTH.EAST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.SOUTH.EAST.EAST` function returns the cell south east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.EAST\"},{\"name\":\"HHCODE.SOUTH.WEST\",\"detail\":\"HHCODE.SOUTH.WEST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.SOUTH.WEST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.SOUTH.WEST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.SOUTH.WEST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.SOUTH.WEST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.SOUTH.WEST` function returns the cell south west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.WEST\"},{\"name\":\"HHCODE.WEST\",\"detail\":\"HHCODE.WEST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.WEST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.WEST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.WEST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.WEST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"documentation\":\"The `HHCODE.WEST` function returns the cell west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.WEST\"},{\"name\":\"HIDE\",\"detail\":\"HIDE( levels:LONG ): hidden:LONG\",\"documentation\":\"The `HIDE` function hides some levels of the stack to the rest of the executing code. This allows a kind of protection for levels which should not be accessed by a macro call for example. Note that this is not a real protection since a call to [`SHOW`](/doc/SHOW) could reveal the hidden levels.\\n\\nThe hidden levels are always the deepest. Depending on the `levels` parameter to the call to `HIDE`, the hidden levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there remains at most a certain number ((*abs(`levels`)*) with `levels` < 0).\\n\\nWhen called with `NULL` as parameter, `HIDE` will hide all the visible levels.\\n\\nThe number of newly hidden levels is returned.\\n\\n@param `levels` Number of levels to hide or to remain visible, or `NULL` to hide them all.\\n\\n@param `hidden` Number of levels actually hidden.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"HIDE\"},{\"name\":\"HLOCATE\",\"detail\":\"HLOCATE( gts:LIST<GTS> ): result:LIST\",\"documentation\":\"The `HLOCATE` function locates the HBase regions containing a list of Geo Time Series™.\\n\\nThis function only works with the distributed version of Warp 10™.\\n\\nIt outputs a list of lists containing a GTS selector, the host and port of the RegionServer currently serving the region and the region id of a region containing data for this GTS.\\n\\n@param `gts` List of Geo Time Series™ to locate.\\n\\n@param `result` List of GTS, RegionServer, region tuples.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.2.13\",\"OPB64name\":\"HLOCATE\"},{\"name\":\"HTTP\",\"detail\":\"HTTP( { url:STRING  } ): { content:BYTES' content:undefined \\n\\n responseHeaders:MAP' headers:undefined \\n\\n statusMessage:STRING' status.message:undefined \\n\\n statusCode:LONG' status.code:undefined \\n\\n }\\nHTTP( { url:STRING method:STRING headers:MAP body:OBJECT  } ): { content:BYTES' content:undefined \\n\\n responseHeaders:MAP' headers:undefined \\n\\n statusMessage:STRING' status.message:undefined \\n\\n statusCode:LONG' status.code:undefined \\n\\n }\\nHTTP( { url:STRING method:STRING headers:MAP body:OBJECT chunkMacro:MACRO chunkSize:LONG username:STRING password:STRING  } ): { chunkNumber:LONG' chunk.number:undefined \\n\\n content:BYTES' content:undefined \\n\\n responseHeaders:MAP' headers:undefined \\n\\n statusMessage:STRING' status.message:undefined \\n\\n statusCode:LONG' status.code:undefined \\n\\n }\",\"documentation\":\"The `HTTP` function sends an HTTP request, waits for the response then returns it.\\nThe input is a MAP with at least the field `url`.\\nThe response is a MAP with the fields `status.code`, `status.message`, `headers` and `content`.\\n\\nThe `HTTP` function can also be used in streaming mode by providing a positive `chunk.size` argument.\\nIn streaming mode, whenever `chunk.size` bytes are downloaded, a response MAP with the additional field `chunk.number` is pushed onto the stack and the macro given as `chunk.macro` argument is being executed.\\nFinally, a last `chunk.macro` execution is done on a chunk response that has empty `content` and `chunk.number = -1`.\\n\\nThe `HTTP` function makes use of token's capabilities to raise the initial limits per warpscript (set from configurations).\\n\\n| Description | Capability | Initial limit | Default value\\n|----------|------|------|------|\\n| Maximum number of calls | http.requests | warpscript.http.maxrequests | 1 |\\n| Maximum number of downloadable bytes | http.size | warpscript.http.maxsize | 65536 |\\n| Maximum number of bytes per chunk | http.chunksize | warpscript.http.maxchunksize | 65536 |\\n\\nOther configurable options:\\n| Description | Configuration | Default value\\n|----------|------|------|\\n| If true, authentication is required to call HTTP | warpscript.http.authentication.required | false |\\n| If set, it is a capability that is required to call HTTP | warpscript.http.capability | *none* |\\n| List of patterns to include/exclude for hosts. If not set, use the value of webcall.host.patterns | warpscript.http.host.patterns | *none* |\\n\\n\\n@param `url` The URL to send the HTTP request to\\n\\n@param `method` Optional HTTP method (aka verb), default to GET or POST whether there is a body\\n\\n@param `headers` Optional request headers\\n\\n@param `body` Optional body. BYTES or UTF-8 encoded STRING\\n\\n@param `chunkMacro` Optional macro that is executed whenever a chunk has been downloaded. It expects a MAP that contains chunk number (LONG), status code (LONG), status message (STRING), headers (MAP), and chunk content (BYTES)\\n\\n@param `chunkSize` Optional chunk size. Activate streaming mode if positive\\n\\n@param `chunkNumber` The index of the current chunk (starting from 1). This field is only set for intermediate chunk responses\\n\\n@param `username` Optional username. It works with basic authentication scheme\\n\\n@param `password` Optional password. It works with basic authentication scheme\\n\\n@param `statusCode` The response status code\\n\\n@param `statusMessage` The response status message\\n\\n@param `responseHeaders` The response headers\\n\\n@param `content` The content of the response\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.8.1\",\"OPB64name\":\"HTTP\"},{\"name\":\"HULLSHAPE\",\"detail\":\"HULLSHAPE( list:LIST ): shape:LIST\\nHULLSHAPE( { list:LIST  } ): shape:LIST\",\"documentation\":\"Return the shape of a tensor (or multidimensional array) that would be able to contain all the values of an input nested list. The size of the returned shape is equal to the deepest level of nesting plus one. Its i-th value is equal to the size of the largest list that is nested i levels deep.\\n\\n@param `list` The input list.\\n\\n@param `shape` The hull shape of the input list.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"HULLSHAPE\"},{\"name\":\"HUMANDURATION\",\"detail\":\"HUMANDURATION( duration:LONG ): humanReadableDuration:STRING\",\"documentation\":\"The `HUMANDURATION` function consumes a **LONG** duration and push back an easily readable **STRING** representation of this duration.\\n\\nThe format of the pushed back **STRING** is **[Dd][Hh][Mm]S.XXXXXXs** with D as days, H as hours, M as minutes, S as seconds and XXXXXX the number of ms (3 digits), us (6 digits) or ns (9 digits) depending on the platform configuration. If the duration is less than a day, Dd is omitted, sames goes with Hh and Mm.\\n\\n@param `duration` Duration expressed in the platform time unit.\\n\\n@param `humanReadableDuration`  A representation of the duration, easily readable for a human.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"HUMANDURATION\"},{\"name\":\"HYBRIDTEST\",\"detail\":\"HYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG alpha:DOUBLE parameters:MAP ): result:LIST<LONG>\\nHYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LONG>\\nHYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG ): result:LIST<LONG>\\nHYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG parameters:MAP ): result:LIST<LONG>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG alpha:DOUBLE parameters:MAP ): result:LIST<LIST<LONG>>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LIST<LONG>>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG ): result:LIST<LIST<LONG>>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG parameters:MAP ): result:LIST<LIST<LONG>>\",\"documentation\":\"The `HYBRIDTEST` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\nLike [`STLESDTEST`](/doc/STLESDTEST), `HYBRIDTEST` performs an [`ESDTEST`](/doc/ESDTEST) onto a GTS that have been relieved of its seasonal and trend part. \\nBut unlike the mentioned test, [`STL`](/doc/STL) and [`ESDTEST`](/doc/ESDTEST) are performed piecewise. Plus, the trend is approximated with the piecewise \\nmedian instead of the trend part of the [`STL`](/doc/STL) decomposition.\\n\\nA LIST of ticks (or a LIST of LIST of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis technique was first developped at [Twitter](https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series).\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ## References\\n> - Owen Vallis, Jordan Hochenbaum, Arun Kejariwal. “A Novel Technique for Long-Term Anomaly Detection in the Cloud”, Twitter Inc (2014).\\n> - Cleveland, Robert B., et al. “STL: A seasonal-trend decomposition procedure based on loess.” Journal of Official Statistics 6.1 (1990): 3-73.\\n> - Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n\\n@param `parameters` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `lgts` List of [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST\"},{\"name\":\"HYBRIDTEST2\",\"detail\":\"HYBRIDTEST2( gts:GTS period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LONG>\\nHYBRIDTEST2( gts:GTS period:LONG piece:LONG k:LONG ): result:LIST<LONG>\\nHYBRIDTEST2( gtsList:LIST<GTS> period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LIST<LONG>>\\nHYBRIDTEST2( gtsList:LIST<GTS> period:LONG piece:LONG k:LONG ): result:LIST<LIST<LONG>>\",\"documentation\":\"The `HYBRIDTEST2` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\n`HYBRIDTEST2` is almost the same procedure than [`HYBRIDTEST`](/doc/HYBRIDTEST) except that it does not use [`STL`](/doc/STL) decomposition for the \\nseasonal extract.\\n\\nThe seasonal part is approximated by pondering each value with the [entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29) of the \\n[modified Z-score](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h.htm) of its seasonal subseries (series with only the values of the \\nsame season).\\n\\nThis test is usually preferred when it is meaningful to think in term of entropy, for example when the GTS represents counters of events. Also as it \\ndoes not use [`STL`](/doc/STL) decomposition, it is not prone to border effects, but at the cost of not detecting slight outliers.\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n@param `gtsList` List of GTS\\n\\n\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST2\"},{\"name\":\"HYPOT\",\"detail\":\"HYPOT( x:NUMBER y:NUMBER ): result:DOUBLE\\nHYPOT( x:NUMBER ly:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nHYPOT( lx:LIST<NUMBER> y:NUMBER ): lresult:LIST<DOUBLE>\\nHYPOT( x:NUMBER gtsy:GTS ): gtsresult:GTS\\nHYPOT( gtsx:GTS y:NUMBER ): gtsresult:GTS\",\"documentation\":\"HYPOT function returns the radius r from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta), r = sqrt(x²+y²).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `result` radius r in polar coordinates\\n\\n@param `lresult` List of radiuses r in polar coordinates\\n\\n@param `gtsresult` Numerical GTS of radiuses r in polar coordinates\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYPOT\"},{\"name\":\"IDENT\",\"detail\":\"IDENT(): ident:STRING\",\"documentation\":\"The `IDENT` function pushes onto the stack the value of the system property `warp.ident`.\\n\\n@param `ident` The value of the `warp.ident` property.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDENT\"},{\"name\":\"IDWT\",\"detail\":\"IDWT( gts:GTS wavelet:STRING ): result:GTS\",\"documentation\":\"The `IDWT` function computes an Inverse [Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Discrete_wavelet_transform) on a Geo Time Series™.\\n\\nThe names of the available Wavelet are the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\n\\n@param `wavelet` Wavelet to consider\\n\\n@param `gts` Geo Time Series™ which contains the wavelet coefficients as is returned by [`FDWT`](/doc/FDWT).\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDWT\"},{\"name\":\"IEEEREMAINDER\",\"detail\":\"IEEEREMAINDER( dividend:NUMBER divisor:NUMBER ): result:LONG\\nIEEEREMAINDER( dividend:NUMBER ldivisor:LIST<NUMBER> ): lresult:LIST<LONG>\\nIEEEREMAINDER( ldividend:LIST<NUMBER> divisor:NUMBER ): lresult:LIST<LONG>\\nIEEEREMAINDER( dividend:NUMBER gtsdivisor:GTS ): gtsresult:GTS\\nIEEEREMAINDER( gtsdividend:GTS divisor:NUMBER ): gtsresult:GTS\",\"documentation\":\"The `IEEEREMAINDER` function consumes two parameters, a dividend f1 and a divisor f2. This function push the remainder onto the stack as\\nprescribed by the [IEEE 754 standard](https://en.wikipedia.org/wiki/IEEE_754-1985).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` Dividend, converted as DOUBLE if not already the case.\\n\\n@param `divisor` Divisor, converted as DOUBLE if not already the case.\\n\\n@param `result` Remainder\\n\\n@param `ldividend` List of dividends, converted as DOUBLE if not already the case.\\n\\n@param `ldivisor` List of divisors, converted as DOUBLE if not already the case.\\n\\n@param `lresult` List of remainders\\n\\n@param `gtsdividend` Numerical GTS of dividends, converted as DOUBLE if not already the case.\\n\\n@param `gtsdivisor` Numerical GTS of divisors, converted as DOUBLE if not already the case.\\n\\n@param `gtsresult` GTS of remainders\\n\\n\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"IEEEREMAINDER\"},{\"name\":\"IFFT\",\"detail\":\"IFFT( real:GTS im:GTS ): result:GTS\",\"documentation\":\"The `IFFT` function computes an Inverse [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) of two Geo Time Series™ \\nrepresenting real and imaginary parts of FFT coefficients.\\n\\nThe result is the reconstructed Geo Time Series™. The ticks of this reconstructed GTS are the coefficient indices. They must be multipled by the original \\nbucketspan to space the ticks according to the decomposed Geo Time Series™. The bucketspan is equal to `X / (n * factor)` where `X` is the number of time \\nunits in a second, `n` is the number of coefficients and `factor` is the scale factor returned by `FFT`.\\n\\n@param `im` GTS containing the imaginary part\\n\\n@param `real` GTS containing the real parts of the `FFT` coefficients\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFFT\"},{\"name\":\"IFT\",\"detail\":\"IFT( if:MACRO then:MACRO ): result:ANY*\\nIFT( check:BOOLEAN then:MACRO ): result:ANY*\",\"documentation\":\"The `IFT` function is a conditional construct which will run a macro only if a boolean condition is true. The condition can either be a boolean on the stack or the result of a macro run.\\n\\n@param `check` Boolean which will be checked as the conditional test.\\n\\n@param `if` Macro which will be executed to determine the conditional test. This macro must leave a boolean on the stack.\\n\\n@param `then` Macro which is executed if the conditional test is `true`.\\n\\n@param `result` State of the stack after the `then` macro is executed.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFT\"},{\"name\":\"IFTE\",\"detail\":\"IFTE( if:MACRO then:MACRO else:MACRO ): result:ANY*\\nIFTE( condition:BOOLEAN then:MACRO else:MACRO ): result:ANY*\",\"documentation\":\"The `IFTE` function is a conditional construct which evaluates a condition and executes one of two macros depending on the condition (`true` or `false`). The condition can either be a BOOLEAN value on the stack or a macro which will be executed and must leave a BOOLEAN on the stack.\\n\\n@param `else` Macro executed if the condition is `false`.\\n\\n@param `then` Macro executed if the condition is `true`.\\n\\n@param `if` Macro executed to evaluate the condition. Must leave a BOOLEAN on top of the stack.\\n\\n@param `condition` Boolean value used as the condition.\\n\\n@param `result` Result of the execution of either the `then` or `else` macro.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFTE\"},{\"name\":\"IMMUTABLE\",\"detail\":\"IMMUTABLE( list:LIST ): immutableList:LIST\\nIMMUTABLE( map:MAP ): immutableMap:MAP\\nIMMUTABLE( set:SET ): immutableSet:SET\\nIMMUTABLE( vector:VLIST ): immutableVector:VLIST\",\"documentation\":\"Transforms a collection (**LIST**, **MAP**, **VLIST**, **SET**) into an immutable one. Any attempt to modify the immutable collection will fail. The original collection is not modified.\\n\\n@param `list` List to wrap into an immutable wrapper.\\n\\n@param `map` Map to wrap into an immutable wrapper.\\n\\n@param `set` Set to wrap into an immutable wrapper.\\n\\n@param `vector` Vector to wrap into an immutable wrapper.\\n\\n@param `immutableList` Immutable version of 'list'.\\n\\n@param `immutableMap` Immutable version of 'map'.\\n\\n@param `immutableSet` Immutable version of 'set'.\\n\\n@param `immutableVector` Immutable version of 'vector'.\\n\\n\",\"tags\":[\"lists\",\"maps\",\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"IMMUTABLE\"},{\"name\":\"IMPORT\",\"detail\":\"IMPORT( prefix:STRING as:STRING ): \",\"documentation\":\"The `IMPORT` function allows to create aliases for macro name prefixes. This is handy when accessing macros from WarpFleet™ repositories which might have multiple versions and/or long group and artifact ids. When fetching a macro, the *imported* prefixes will be scanned and the longest matching one will be replaced by the associated alias.\\n\\n@param `prefix` Original prefix to *import*.\\n\\n@param `as` Name under which `prefix` will be imported.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"IMPORT\"},{\"name\":\"INCREMENTEXACT\",\"detail\":\"INCREMENTEXACT( value:NUMBER ): result:LONG\\nINCREMENTEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nINCREMENTEXACT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `INCREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value incremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be incremented by one\\n\\n@param `result` The incremented value\\n\\n@param `lvalue` List of values to be incremented by one\\n\\n@param `lresult` List of incremented values\\n\\n@param `gts` GTS whose values are to be incremented by one\\n\\n@param `gtsresult` GTS of incremented values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"INCREMENTEXACT\"},{\"name\":\"INDEXOF\",\"detail\":\"INDEXOF( collection:LIST objectToLookFor:ANY numberOfIndexes:LONG ): indexes:LIST<LONG>\\nINDEXOF( collection:MAP objectToLookFor:ANY numberOfIndexes:LONG ): indexes:LIST<ANY>\\nINDEXOF( collection:BYTES objectToLookFor:LONG numberOfIndexes:LONG ): indexes:LIST<LONG>\\nINDEXOF( collection:GTS objectToLookFor:ANY numberOfIndexes:LONG ): indexes:LIST<LONG>\\nINDEXOF( collection:STRING objectToLookFor:STRING numberOfIndexes:LONG ): indexes:LIST<LONG>\",\"documentation\":\"      This function allows you to find: \\n\\n- the indexes of an item in a list\\n- the indexes of an item in a byte array\\n- the indexes of a substring in a string\\n- the keys of an item in a map\\n- the timestamps of a value in a GTS\\n\\n@param `collection` The collection in wich to look for the object\\n\\n@param `objectToLookFor` The item to look for\\n\\n@param `numberOfIndexes` The number of indexes to return, 0 for all the indexes\\n\\n@param `indexes` The indexes of the searched item\\n\\n\",\"tags\":[\"lists\",\"maps\",\"strings\",\"gts\"],\"since\":\"2.10.1\",\"OPB64name\":\"INDEXOF\"},{\"name\":\"INFLATE\",\"detail\":\"INFLATE( compressed:BYTES ): uncompressed:BYTES\",\"documentation\":\"Decompresses a byte array containing data compressed by [`DEFLATE`](doc/DEFLATE).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"INFLATE\"},{\"name\":\"INFO\",\"detail\":\"INFO( { plugin:STRING ext:STRING name:STRING since:STRING deprecated:STRING deleted:STRING version:STRING tags:LIST desc:STRING sig:LIST params:MAP related:LIST examples:LIST conf:LIST  } ): \",\"documentation\":\"Generate documentation of a function or a macro.\\n\\n@param `conf` String list of related configuration keys existing in the Warp 10 configuration.\\n\\n@param `examples` String list of WarpScript examples.\\n\\n@param `related` String list of related functions.\\n\\n@param `params` Map describing the parameters defined in `sig`.\\n\\n@param `sig` List of signatures. Each signature is a **LIST** with 2 lists (input and output) which contain parameter definitions: *eg* `param1:STRING` in stack order (top first)\\n\\n@param `desc` Description of the function or macro.\\n\\n@param `tags` String list tags (*eg* categories).\\n\\n@param `version` Version of the Warp 10 distribution on which this funcion is available (`standalone` | `distributed` | `all` | `pkg` | `ext` | `plugin`)\\n\\n@param `deleted` Version's number of Warp 10 where this function (or macro) was deleted.\\n\\n@param `deprecated` Version's number of Warp 10 where this function (or macro) was deprecated.\\n\\n@param `since` Version's number of Warp 10 where this function (or macro) was included.\\n\\n@param `name` Name of the function or macro.\\n\\n@param `ext` Fully qualified class name of the WarpScript Extension defining the function.\\n\\n@param `plugin` Fully qualified class name of the WarpScript Plugin defining the function.\\n\\n\",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFO\"},{\"name\":\"INFOMODE\",\"detail\":\"INFOMODE(): \",\"documentation\":\"Toggles the info mode ON or OFF depending on its current state. Default is OFF when the stack is created.\\n\\nWhen info mode is ON, the [`INFO`](/doc/INFO) function pushes its map parameter on the stack and stops the current execution as [`STOP`](/doc/STOP) would do.\\n\\n\",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFOMODE\"},{\"name\":\"INTEGRATE\",\"detail\":\"INTEGRATE( gts:GTS initial:NUMBER ): result:GTS\\nINTEGRATE( lgts:LIST<GTS> initial:NUMBER ): lresult:LIST<GTS>\",\"documentation\":\"The `INTEGRATE` function takes a GTS or a list thereof and integrates it/them, considering the value at each tick is a rate of change per second.\\n\\n@param `initial` Initial value\\n\\n@param `gts` GTS to integrate\\n\\n@param `lgts` List of GTS to integrate\\n\\n@param `result` Integrated GTS\\n\\n@param `lresult` List of integrated GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTEGRATE\"},{\"name\":\"INTERPOLATE\",\"detail\":\"INTERPOLATE( gts:GTS ): result:GTS\\nINTERPOLATE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `INTERPOLATE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with by interpolating linearly. \\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled bucketized GTS\\n\\n@param `resultList` list of filled bucketized GTS\\n\\n\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERPOLATE\"},{\"name\":\"INTERSECTION\",\"detail\":\"INTERSECTION( setA:SET setB:SET ): output:SET\",\"documentation\":\"Computes the intersection &#x2229; of two sets.\\n\\nThe `INTERSECTION` function consumes two sets from the top of the stack and pushes back its mathematical intersection (ie: the elements in common).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x2229; *B*\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERSECTION\"},{\"name\":\"INV\",\"detail\":\"INV( matrix:MATRIX ): inverse:MATRIX\",\"documentation\":\"Inverts a matrix. The inversion is attempted using the [LU Decomposition](https://en.wikipedia.org/wiki/LU_decomposition) algorithm.\\n\\nIf the matrix is singular or not square an error will be raised.\\n\\n@param `matrix` Matrix to invert.\\n\\n@param `inverse` Inverse of the original matrix.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"INV\"},{\"name\":\"ISAUTHENTICATED\",\"detail\":\"ISAUTHENTICATED(): result:BOOLEAN\",\"documentation\":\"Returns true or false whether or not the stack is authenticated\\n\\n@param `result` True if the stack is authenticated, false otherwise\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ISAUTHENTICATED\"},{\"name\":\"ISNULL\",\"detail\":\"ISNULL( p:ANY ): result:BOOLEAN\",\"documentation\":\"The `ISNULL` function consumes a parameter p from the top of the stack and pushes onto the stack true if p is null, else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p is null\\n\\n\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNULL\"},{\"name\":\"ISNaN\",\"detail\":\"ISNaN( p:ANY ): result:BOOLEAN\",\"documentation\":\"The `ISNaN` function consumes a numeric parameter p from the top of the stack and pushes onto the stack true if p is Not a Number (NaN), else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p a Double and is NaN, false  otherwise\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNaN\"},{\"name\":\"ISO8601\",\"detail\":\"ISO8601( timestamp:LONG ): iso8601dateAndTime:STRING\\nISO8601( timestamp:LONG timezone:STRING ): iso8601dateAndTime:STRING\",\"documentation\":\"The `ISO8601` function consumes an optional **STRING** timezone and a **LONG** UTC timestamp and pushes back a **STRING** representing the date and time according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard.\\n\\nDepending on the platform time unit, the part representing seconds can have 3, 6 or 9 significant figures respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time representation.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `iso8601dateAndTime` Representation of the date and time of the given timestamp for the givent timezone according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISO8601\"},{\"name\":\"ISODURATION\",\"detail\":\"ISODURATION( duration:LONG ): iso8601duration:STRING\",\"documentation\":\"The `ISODURATION` function consumes a **LONG** duration in platform unit and pushes back a **STRING** reresenting an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). Whatever the platform time unit is, the representation maximum resolution is milliseconds.\\n\\nThe format of the ISO 8601 representation is `PThHmMs.xS` with `h` as hours, `m` as minutes, `s` as seconds and `x` as milliseconds. If any of these value is zero, the value and unit are omitted. The only exception is for a duration of 0 which is represented as `PT0S`. If the duration is negative, `h`, `m` and `s`, if displayed, are negative numbers. \\n\\n@param `duration` A duration expressed in platform time unit.\\n\\n@param `iso8601duration` A representation of the consumed duration according to ISO 8601.\\n\\n\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISODURATION\"},{\"name\":\"ISONORMALIZE\",\"detail\":\"ISONORMALIZE( gts:GTS ): result:GTS\\nISONORMALIZE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `ISONORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between -1 and 1 (i.e. it replaces X by \\n(X - mean)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISONORMALIZE\"},{\"name\":\"JOIN\",\"detail\":\"JOIN( string:STRING* sep:STRING n:LONG ): result:STRING\\nJOIN( objects:LIST sep:STRING ): result:STRING\",\"documentation\":\"Join N strings with the given separator.\\n\\n@param `n` Number of elements to join that it needs to take from the top of the stack.\\n\\n@param `sep` Separator used to join the strings.\\n\\n@param `string` One or more string on the stack.\\n\\n@param `objects` List of objects whose string representations are to be joined.\\n\\n@param `result` Joined string.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"JOIN\"},{\"name\":\"JSON->\",\"detail\":\"JSON->( json:STRING ): resultMap:MAP\\nJSON->( json:STRING ): resultList:LIST\",\"documentation\":\"The `JSON->` function parses a string as [JSON](http://json.org/) from the top of the stack and pushes the result onto the stack.\\n\\n@param `json` String JSON representation\\n\\n@param `resultMap` Map JSON representation if it is a JSON object\\n\\n@param `resultList` List JSON representation if it is a JSON array\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H_CEIXoy\"},{\"name\":\"JSONCOMPACT\",\"detail\":\"\",\"documentation\":\"The `JSONCOMPACT` function configures the stack to output compact [JSON](http://json.org/) format. This means the generated JSON will contain no line return and no space which makes it perfect to exchange data between programs.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONCOMPACT\"},{\"name\":\"JSONLOOSE\",\"detail\":\"\",\"documentation\":\"The `JSONLOOSE` function configures the stack to output loose [JSON](http://json.org/) format where `NaN` and `Infinite` are valid values.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\nIf the [JSON](http://json.org/) parser you’re using is strict, you should either configure the [`JSONSTRICT`](/doc/JSONSTRICT) mode or dealing with `NaN` and `Infinite` values outside the parser.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONLOOSE\"},{\"name\":\"JSONPRETTY\",\"detail\":\"\",\"documentation\":\"The `JSONPRETTY` function configures the stack to output pretty [JSON](http://json.org/) format. This means the generated JSON will contain line returns and will be indented to make it easier for human to read.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONPRETTY\"},{\"name\":\"JSONSTACK\",\"detail\":\"JSONSTACK(): \",\"documentation\":\"Select the JSON format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"JSONSTACK\"},{\"name\":\"JSONSTRICT\",\"detail\":\"\",\"documentation\":\"The `JSONSTRICT` function configures the stack to output strict [JSON](http://json.org/) format.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONSTRICT\"},{\"name\":\"KECCAK.128\",\"detail\":\"KECCAK.128( input:BYTES ): result:BYTES\",\"documentation\":\"The `KECCAK.128` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.128\"},{\"name\":\"KECCAK.224\",\"detail\":\"KECCAK.224( input:BYTES ): result:BYTES\",\"documentation\":\"The `KECCAK.224` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.224\"},{\"name\":\"KECCAK.256\",\"detail\":\"KECCAK.256( input:BYTES ): result:BYTES\",\"documentation\":\"The `KECCAK.256` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.256\"},{\"name\":\"KECCAK.288\",\"detail\":\"KECCAK.288( input:BYTES ): result:BYTES\",\"documentation\":\"The `KECCAK.288` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.288\"},{\"name\":\"KECCAK.384\",\"detail\":\"KECCAK.384( input:BYTES ): result:BYTES\",\"documentation\":\"The `KECCAK.384` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.384\"},{\"name\":\"KECCAK.512\",\"detail\":\"KECCAK.512( input:BYTES ): result:BYTES\",\"documentation\":\"The `KECCAK.512` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.512\"},{\"name\":\"KEYLIST\",\"detail\":\"KEYLIST( map:MAP ): result:LIST\",\"documentation\":\"Gets keys from a **MAP**.\\n\\nThe function `KEYLIST` extracts the keys of a map on the top of the stack and pushes on the stack a list with those keys. The map is consumed.      \\n\\n@param `map` Map from which you want to extract keys\\n\\n@param `result` List of keys\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"KEYLIST\"},{\"name\":\"KURTOSIS\",\"detail\":\"KURTOSIS( gts:GTS bessel:BOOLEAN ): kurtosis:DOUBLE\\nKURTOSIS( lgts:LIST<GTS> bessel:BOOLEAN ): lkurtosis:LIST<DOUBLE>\",\"documentation\":\"The `KURTOSIS` function computes the [kurtosis](https://en.wikipedia.org/wiki/Kurtosis) of a Geo Time Series™ or a list thereof.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the kurtosis.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `kurtosis` Computed kurtosis of the Geo Time Series™ instance.\\n\\n@param `lkurtosis` List of computed kurtosis of the Geo Time Series™ instances.\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.2.13\",\"OPB64name\":\"KURTOSIS\"},{\"name\":\"LABELS\",\"detail\":\"LABELS( gts:GTS ): return:MAP\\nLABELS( encoder:GTSENCODER ): return:MAP\",\"documentation\":\"The `LABELS` function consumes a GTS from the stack, extracts its labels, puts them in a map and pushes the map onto the stack.\\n\\n@param `gts` The Geo Time Series™ to get the labels from.\\n\\n@param `encoder` The Geo Time Series™ Encoder to get the labels from.\\n\\n@param `return` Labels MAP\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LABELS\"},{\"name\":\"LASTACTIVITY\",\"detail\":\"LASTACTIVITY( gts:GTS ): lastactivity:LONG\\nLASTACTIVITY( encoder:GTSENCODER ): lastactivity:LONG\\nLASTACTIVITY( lgts:LIST<GTS> ): llastactivity:LONG\\nLASTACTIVITY( lencoder:LIST<GTSENCODER> ): llastactivity:LONG\",\"documentation\":\"Extracts the timestamp of last activity recorded in the Geo Time Series™ metadata.\\n\\nThe timestamp is expressed as platform time units elapsed since the Unix Epoch.\\n\\n@param `gts` Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `encoder` Geo Time Series™ encoder from which to extract the last activity timestamp.\\n\\n@param `lgts` List of Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `lencoder` List of Geo Time Series™ encoders from which to extract the last activity timestamp.\\n\\n@param `lastactivity` Timestamp of last activity.\\n\\n@param `llastactivity` List of timestamps of last activity.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.0.0\",\"OPB64name\":\"LASTACTIVITY\"},{\"name\":\"LASTBUCKET\",\"detail\":\"LASTBUCKET( gts:GTS ): result:LONG\",\"documentation\":\"The function `LASTBUCKET` consumes a GTS off the stack and pushes its lastbucket onto the stack.\\n\\nNote: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Last bucket timestamp\\n\\n\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTBUCKET\"},{\"name\":\"LASTSORT\",\"detail\":\"LASTSORT( gtsList:LIST<GTS> ): result:LIST<GTS>\",\"documentation\":\"Sorts a list of Geo Time Series™ according to their most recent value. If most recent values are identical, ticks will be compared, the most recent\\nappearing first. If the ticks are also identical, then metadata will be compared, classname first then labels then attributes.\\n\\nWhen comparing on metadata, labels and attributes lists are first sort in a lexicographic order, then label values are compared when label names match. Same for the attributes\\n\\nUse this function to compute Top N queries.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Sorted list of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTSORT\"},{\"name\":\"LASTTICK\",\"detail\":\"LASTTICK( gts:GTS ): result:LONG\\nLASTTICK( lgts:LIST<GTS> ): result:LONG\",\"documentation\":\"The `LASTTICK` function returns the newest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its last bucket.\\n\\nWhen applied to a list of GTS, `LASTTICK` will return the greatest last tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MIN_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `result` Newest timestamp. If the GTS does not have values, **Long.MIN_VALUE** is pushed.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTTICK\"},{\"name\":\"LBOUNDS\",\"detail\":\"LBOUNDS( lower:DOUBLE upper:DOUBLE n:LONG ): bounds:LIST<DOUBLE>\",\"documentation\":\"The `LBOUNDS` function computes bounds which divide a specified interval into `n` intervals of equal length.\\n\\nThe result of `LBOUNDS` is a list of `n+1` bounds, defining `n` intervals inside the specified range plus the two bounds of this range which define the intervals before and after the range.\\n\\n@param `n` Number of intervals to generate.\\n\\n@param `upper` Upper bound of the range to subdivide.\\n\\n@param `lower` Lower bound of the range to subdivide.\\n\\n@param `bounds` List of computed bounds.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LBOUNDS\"},{\"name\":\"LEVELDBCLOSE\",\"detail\":\"LEVELDBCLOSE( secret:STRING ): \",\"documentation\":\"Closes the LevelDB database underlying the Warp 10™ instance. While the LevelDB database is closed, any interaction with the storage layer is blocked. This enables an external tool to manipulate the LevelDB files knowing they are in a coherent state.\\n\\nThe blocked interactions will resume after `LEVELDBOPEN` is called.\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBCLOSE\"},{\"name\":\"LEVELDBOPEN\",\"detail\":\"LEVELDBOPEN( secret:STRING ): \",\"documentation\":\"Re-opens the LevelDB database underlying the Warp 10™ instance. It must have been closed using `LEVELDBCLOSE` prior to calling `LEVELDBOPEN`\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBOPEN\"},{\"name\":\"LEVELDBSECRET\",\"detail\":\"LEVELDBSECRET( currentsecret:STRING newsecret:STRING ): \",\"documentation\":\"Modifies the LevelDB secret needed to interact with the Warp 10™ LevelDB subsystem.\\n\\n@param `currentsecret` Current LevelDB secret.\\n\\n@param `newsecret` New LevelDB secret.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSECRET\"},{\"name\":\"LEVELDBSNAPSHOT\",\"detail\":\"LEVELDBSNAPSHOT( snapshot:STRING secret:STRING ): nfiles:LONG\",\"documentation\":\"Creates a LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files. Once those hard links are created, the LevelDB subsystem is reopen.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOT\"},{\"name\":\"LEVELDBSNAPSHOTINC\",\"detail\":\"LEVELDBSNAPSHOTINC( snapshot:STRING secret:STRING ): nfiles:LONG\",\"documentation\":\"Creates an incremental LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files which are only in the current LevelDB file set. Once those hard links are created, the LevelDB subsystem is reopen and the files which were both in the current LevelDB file set and the reference snapshot are linked from the reference snapshot. This allows for the snapshot process to only close the LevelDB subsystem during the linking of files which were created since the reference snapshot was created.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOTINC\"},{\"name\":\"LFILTER\",\"detail\":\"LFILTER( inputlist:LIST macro:MACRO ): results:LIST\\nLFILTER( inputlist:LIST macro:MACRO index:BOOLEAN ): results:LIST\",\"documentation\":\"The `LFILTER` function filters the element of a **LIST** according to the result of a macro execution on each element of the **LIST**. It produces a **LIST** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of filered elements\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"2.9.0\",\"OPB64name\":\"LFILTER\"},{\"name\":\"LFLATMAP\",\"detail\":\"LFLATMAP( inputlist:LIST macro:MACRO ): results:LIST\\nLFLATMAP( inputlist:LIST macro:MACRO index:BOOLEAN ): results:LIST\",\"documentation\":\"The `LFLATMAP` function applies a macro on each element of a list, producing a list \\nwith the element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the list index on top and the element \\nat that particular index below it. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\nDifference with `LMAP`: if the macro returns a list, then LFLATMAP will produce a \\nlist with the elements of the macro output list (_i.e._ it will _flatten_ the list). \\n\\nDifference with `LMAP FLATTEN`: flatten will do the list flattening recursively. \\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count -1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LFLATMAP\"},{\"name\":\"LIMIT\",\"detail\":\"LIMIT( maxDataPoints:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and \\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `LIMIT` function modifies the maximum number of datapoints which can be fetched during a script execution by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call `AUTHENTICATE` with a valid token.\\n\\n@param `maxDataPoints` Maximal data points retrieved from database in a single FETCH\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"LIMIT\"},{\"name\":\"LINEOFF\",\"detail\":\"\",\"documentation\":\"The `LINEOFF` function disables the automatic labelling of WarpScript code as enabled by `LINEON`.      \\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEOFF\"},{\"name\":\"LINEON\",\"detail\":\"\",\"documentation\":\"The `LINEON` function enables the automatic section labelling at the beginning of each line of the input WarpScript code. This handy feature greatly simplifies the debug process as the exact line number where an error happens will appear in the error message embedded as a section name of the form `[Line #xx]`.\\n\\nThis automatic labelling only works with the `/exec` endpoint of Warp 10.\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEON\"},{\"name\":\"LIST->\",\"detail\":\"LIST->( input:LIST ): elements:ANY* listlength:LONG\",\"documentation\":\"The `LIST->` function extracts the elements of the **LIST** at the top of the stack\\nand pushes them onto the stack one by one. The function then pushes\\nonto the stack the number of elements that were in the **LIST**.\\n\\n@param `input` The input list, will be consumbed\\n\\n@param `listlength` The length N of input\\n\\n@param `elements` N elements pushed on the stack\\n\\n\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"I3_IK1oy\"},{\"name\":\"LMAP\",\"detail\":\"LMAP( inputlist:LIST macro:MACRO ): results:LIST\\nLMAP( inputlist:LIST macro:MACRO index:BOOLEAN ): results:LIST\",\"documentation\":\"The `LMAP` function applies a macro on each element of a **LIST**. It produces a **LIST** with the resulting element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. \\n\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LMAP\"},{\"name\":\"LOAD\",\"detail\":\"LOAD( name:STRING ): value:ANY\\nLOAD( register:LONG ): value:ANY\",\"documentation\":\"The `LOAD` function pushes onto the stack the value currently associated with a symbol name.      \\n\\nIf the symbol is not defined, an error will be raised.\\n\\n@param `name` Name of symbol whose value should be retrieved.\\n\\n@param `register` Register number whose value should be retrieved.\\n\\n@param `value` Retrieved value.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOAD\"},{\"name\":\"LOCATIONOFFSET\",\"detail\":\"LOCATIONOFFSET( gts:GTS distance:NUMBER ): result:GTS\\nLOCATIONOFFSET( gtsList:LIST<GTS> distance:NUMBER ): resultList:LIST<GTS>\",\"documentation\":\"The `LOCATIONOFFSET` function downsamples a Geo Time Series™ by retaining the first and last datapoints and only those datapoints which are \\nmore than a given distance away.\\n\\n@param `distance` Distance in meters\\n\\n@param `gts` Geo Time Series™ to downsample\\n\\n@param `gtsList` List of Geo Time Series™ to downsample\\n\\n@param `result` Downsampled Geo Time Series™\\n\\n@param `resultList` List of downsampled Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONOFFSET\"},{\"name\":\"LOCATIONS\",\"detail\":\"LOCATIONS( gts:GTS ): latitudes:LIST<DOUBLE> longitudes:LIST<DOUBLE>\",\"documentation\":\"The `LOCATIONS` function consumes a Geo Time Series™ from the stack, extracts the locations of a Geo Time Series™, puts them in two lists\\n(a list of latitudes and a list of longitudes) and pushes the two lists onto the stack.\\n\\n@param `gts` GTS\\n\\n@param `longitudes` List of longitudes\\n\\n@param `latitudes` List of latitudes\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONS\"},{\"name\":\"LOCSTRINGS\",\"detail\":\"LOCSTRINGS( gts:GTS ): result:LIST<STRING>\",\"documentation\":\"The `LOCSTRINGS` function extract the locations from a Geo Time Series™ and builds a list of the 64 bits hexadecimal representation of their \\n[HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` List of [HHCode](https://en.wikipedia.org/wiki/HHCode)\\n\\n\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCSTRINGS\"},{\"name\":\"LOG\",\"detail\":\"LOG( value:NUMBER ): result:DOUBLE\\nLOG( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nLOG( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `LOG` function consumes a floating point number x from the top of the stack and pushes back its natural logarithm, log<sub>e</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of the given GTS values\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG\"},{\"name\":\"LOG10\",\"detail\":\"LOG10( value:NUMBER ): result:DOUBLE\\nLOG10( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nLOG10( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `LOG10` function consumes a floating point number x from the top of the stack and pushes back its common logarithm, log<sub>10</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Common logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of common logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the common logarithm of the given GTS values\\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG10\"},{\"name\":\"LOG1P\",\"detail\":\"LOG1P( value:NUMBER ): result:DOUBLE\\nLOG1P( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nLOG1P( gts:GTS ): gtsresult:GTS\",\"documentation\":\"Returns the natural logarithm of the sum of the argument and 1.\\n\\nThe `LOG1P` function consumes a number from the top of the stack and pushes back the natural logarithm for (arg + 1).\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of (value + 1)\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithm of (x + 1), for each value in the given list.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of (x + 1), for each values in the given GTS\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG1P\"},{\"name\":\"LOGEVENT->\",\"detail\":\"LOGEVENT->( logline:STRING ): decodedlog:STRING\",\"documentation\":\"Warp&nbsp;10™ runner execution logs are encrypted. See [this documentation](/content/03_Documentation/06_Operations/05_Logs/).\\n\\nThe easiest way to read logs is to copy the log output and use this function.\\n\\n\\n@param `logline` The opb64 representation of the aes encrypted log line\\n\\n@param `decodedlog` The decoded logs.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"I3x6GKO4I_FhEV\"},{\"name\":\"LOGMSG\",\"detail\":\"LOGMSG( msg:STRING ): \",\"documentation\":\"`LOGMSG` function prints millisecond timestamp and input text on the standard output.\\n\\nThe `LOGMSG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOGMSG\"},{\"name\":\"LOWESS\",\"detail\":\"LOWESS( gts:GTS bandwidth:LONG ): result:GTS\\nLOWESS( gtsList:LIST<GTS> bandwidth:LONG ): lresult:LIST<GTS>\",\"documentation\":\"The `LOWESS` function consumes a bandwidth (a **LONG**) from the top of the stack, then smooths a GTS or a **LIST** of GTS that are below by using\\nlocal regression.\\n\\nTo obtain a good smoothing, it is advised to choose an odd number of at least 5 as the bandwidth parameter.\\n\\n@param `bandwidth` The bandwidth parameter is the number of nearest neighbors to consider when applying the local regression.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `gtsList` List of Geo Time Series™.\\n\\n@param `lresult` List of Geo Time Series™ result.\\n\\n@param `result` Geo Time Series™ result.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOWESS\"},{\"name\":\"LR\",\"detail\":\"LR( gts:GTS ): alpha:DOUBLE beta:DOUBLE\",\"documentation\":\"Compute the [simple linear regression](https://en.wikipedia.org/wiki/Linear_regression) parameters `alpha` (y-intercept) and `beta` (line slope) for the given numerical Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ on which to compute linear regression.\\n\\n@param `beta` The slope of the line fitted on the GTS values.\\n\\n@param `alpha` The y-intercept of the lined fitted on the GTS values.\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.13\",\"OPB64name\":\"LR\"},{\"name\":\"LSORT\",\"detail\":\"LSORT( inputlist:LIST ): sortedlist:LIST\",\"documentation\":\"The `LSORT` function sorts the list on the top of the stack.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `inputlist` The reference of the list to sort\\n\\n@param `sortedlist` The original list sorted, this is not a new list object\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LSORT\"},{\"name\":\"LTTB\",\"detail\":\"LTTB( gts:GTS samples:LONG ): downsampled:GTS\\nLTTB( lgts:LIST<GTS> samples:LONG ): ldownsampled:LIST<GTS>\",\"documentation\":\"The `LTTB` function downsamples a Geo Time Series™ or list thereof using the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"LTTB\"},{\"name\":\"MACRO->\",\"detail\":\"MACRO->( macro:MACRO ): statements:LIST\",\"documentation\":\"The `MACRO->` function converts a `MACRO` into a `LIST` of statements.\\n\\n@param `macro` `MACRO` to convert.\\n\\n@param `statements` List of statements from `macro`.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"IJ42JZwhEV\"},{\"name\":\"MACROBUCKETIZER\",\"detail\":\"MACROBUCKETIZER( macro:MACRO ): result:AGGREGATOR\",\"documentation\":\"`MACROBUCKETIZER` converts a macro into a bucketizer which can be used with the [`BUCKETIZE`](/doc/BUCKETIZE) framework.\\n\\nFor each tick in the mapped GTS, the macro will be called with a list containing the following elements on the stack:\\n\\n```js\\n[tick_of_computation,[gts_classes],[label_bucketize],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n@param `macro` Macro used as a bucketizer\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketize\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROBUCKETIZER\"},{\"name\":\"MACROCONFIG\",\"detail\":\"MACROCONFIG( key:STRING ): \",\"documentation\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration keys looked up are those built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIG`.\\n\\n`MACROCONFIG` will check if the keys exists, if not it will remove the part of the macro name after the last `/` and will try that new key. It will successively try all names up to the last part of the macro name.\\n\\nIf none of those keys existed, the call will end in error.\\n\\nSo for example, if `MACROCONFIG` is called from a macro `my/test/macro` to retrieve the value associated with `mykey`, it will look up the following keys in the configuration:\\n\\n```\\nmykey@my/test/macro\\nmykey@my/test\\nmykey@my\\n```\\n\\n@param `key` Configuration key to look up.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIG\"},{\"name\":\"MACROCONFIGDEFAULT\",\"detail\":\"MACROCONFIGDEFAULT( key:STRING default:STRING ): \",\"documentation\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration key looked is built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIGDEFAULT`.\\n\\n`MACROCONFIGDEFAULT` will check if the keys exists, if not it will push the provided default value onto the stack, or fail with an error if the default was `NULL`. If the key is found, the associated value is pushed on the stack.\\n\\n@param `key` Configuration key to look up.\\n\\n@param `default` Default value to use if the key was not found, or `NULL` to fail if the key is absent.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGDEFAULT\"},{\"name\":\"MACROCONFIGSECRET\",\"detail\":\"MACROCONFIGSECRET( oldSecret:STRING newSecret:STRING ): \",\"documentation\":\"The `MACROCONFIGSECRET` macro consumes 2 elements on the stack, the current and new secret to be set. If no secret has been set, the function will throw an error.\\n\\nThe secret set by this function is the secret used by [`SETMACROCONFIG`](/doc/SETMACROCONFIG).\\n\\n@param `newSecret` New secret to override the current one.\\n\\n@param `oldSecret` Currently set secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGSECRET\"},{\"name\":\"MACROFILLER\",\"detail\":\"MACROFILLER( macro:MACRO prewindow:LONG postwindow:LONG ): filler:FILLER\",\"documentation\":\"`MACROFILLER` converts a macro into a *filler* which can be used with the [`FILL`](/doc/FILL) function.\\n\\nThe macro will find the following elements on the stack when it is called:\\n\\n```\\n6: Geo Time Series™ to fill. Both this GTS and the one above are only meant to expose the metadata\\n5: Geo Time Series™ of the *other* GTS with a value at the current tick\\n4: list of [ tick latitude longitude elevation value ] for the pre window\\n3: [ tick latitude longitude elevation value ] of the *other* Geo Time Series™\\n2: list of [ tick latitude longitude elevation value ] for the post window\\nTOP: tick which is being filled\\n```\\n\\nIt must leave on the stack a list containing the following elements, in this order:\\n\\n*tick*, *latitude* or `NaN`, *longitude* or `NaN`, *elevation* or `NaN`, *value*\\n\\n\\n@param `macro` Macro to wrap.\\n\\n@param `prewindow` Number of datapoints needed ahead of the missing datapoint.\\n\\n@param `postwindow` Number of datapoints needed after the missing datapoint.\\n\\n@param `filler` Filler instance.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"MACROFILLER\"},{\"name\":\"MACROFILTER\",\"detail\":\"MACROFILTER( macro:MACRO ): result:FILTER\",\"documentation\":\"`MACROFILTER` converts a macro into a filter which can be used with the [`FILTER`](/doc/FILTER) framework\\n\\nFor each equivalence classes in the filter set of Geo Time Series™, the macro will be called with the following elements on the stack:\\n\\n```\\n[gts], {labels_equivalence_class}\\n```\\n\\nAfter each call the macro is expected to leave a list on the stack.\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROFILTER\"},{\"name\":\"MACROMAPPER\",\"detail\":\"MACROMAPPER( macro:MACRO ): result:AGGREGATOR\",\"documentation\":\"`MACROMAPPER` converts a macro into a mapper which can be used with the [`MAP`](/doc/MAP) framework.\\n\\nFor each tick in the mapped Geo Time Series™, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROMAPPER` can also create a multivariate mapper, that is, a mapper that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate mapper with MAP, each input GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n\\n@param `macro` Macro to convert\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROMAPPER\"},{\"name\":\"MACROREDUCER\",\"detail\":\"MACROREDUCER( macro:MACRO ): result:AGGREGATOR\",\"documentation\":\"`MACROREDUCER` converts a macro into a reducer which can be used with the [`REDUCE`](/doc/REDUCE) framework\\n\\nFor each tick in the Geo Time Series™ to reduce, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nEach list have a length of the number of GTSs in the partition. Each missing value are replaced by `null`, each missing tick by the minimum value of long and each missing latitude, longitude or elevation by NaN. The `label_maps` list as one more element at the end compared to the other lists: the common labels for the GTSs of the partition.\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROREDUCER` can also create a multivariate reducer, that is, a reducer that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate reducer with REDUCE, each input List of GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROREDUCER\"},{\"name\":\"MACROTTL\",\"detail\":\"MACROTTL( ttl:LONG ): \",\"documentation\":\"In a file defining a server side macro, the `MACROTTL` function defines the time to live of the macro code. If the macro is accessed after this delay has expired and on-demand loading of macros is enabled, it will unconditionally be reloaded from disk.\\n\\nThis feature is very useful when you have macros generated dynamically on the server side which change frequently. Using `MACROTTL` you can ensure the newest code is loaded regardless of the rescan interval of the macro directory.\\n\\nIn a file defining a server side macro, the call to `MACROTTL` should appear before or after the actual macro definition but not within.\\n\\nThe time after which the macro will no longer be valid is the time of the call to `MACROTTL` plus its parameter.\\n\\n@param `ttl` The time to live to apply to the macro, in ms.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MACROTTL\"},{\"name\":\"MAKEGTS\",\"detail\":\"MAKEGTS( timestamps:LIST latitudes:LIST longitudes:LIST elevations:LIST values:LIST ): result:GTS\",\"documentation\":\"The `MAKEGTS` function builds a Geo Time Series™ from **LIST**s.\\n\\nThe timestamp and values lists must be of the exact same size.\\nHowever, as latitudes, longitudes and elevations are optional in a Geo Time Series™, these lists can be shorter than the timestamps lists or even empty. If there are missing latitudes, longitudes and elevations, use [`NaN`](/doc/NaN).\\n\\n@param `values` Values of the GTS\\n\\n@param `elevations` Elevations of the GTS\\n\\n@param `longitudes` Longitudes of the GTS\\n\\n@param `latitudes` Latitudes of the GTS\\n\\n@param `timestamps` Timestamps of the GTS\\n\\n@param `result` Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAKEGTS\"},{\"name\":\"MAN\",\"detail\":\"MAN( function:STRING ): url:STRING\\nMAN( any:ANY ): url:STRING\\nMAN(): url:STRING\",\"documentation\":\"The `MAN` function returns the help link for a function name.\\n\\nIf the function does not exists, it returns http://www.warp10.io/\\n\\n\\n@param `function` The function name\\n\\n@param `any` Anything except a function name\\n\\n@param `url` URL of the online help\\n\\n\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.2.18\",\"OPB64name\":\"MAN\"},{\"name\":\"MAP\",\"detail\":\"MAP( [ gtsList:LIST<GTS> mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG ] ): result:LIST<GTS>\\nMAP( [ gtsList:LIST<GTS> mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG step:LONG ] ): result:LIST<GTS>\\nMAP( [ gtsList:LIST<GTS> mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG step:LONG overrideTick:BOOLEAN ] ): result:LIST<GTS>\\nMAP( gtsList:LIST<GTS> { mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG step:LONG overrideTick:BOOLEAN outputTicks:LIST<LONG>  } ): result:LIST<GTS>\",\"documentation\":\"The `MAP` framework applies a function on values of a Geo Time Series™ that fall into a sliding window.\\n\\nThe `MAP` framework is designed to use an existing MAPPER or a custom MACROMAPPER. It could also accept a macro: the current window is passed as a GTS to the macro. See examples below.\\n\\n@param `result` List of Geo Time Series™, one for each input, whose values are the results of the function application on each sliding window. If the input series is bucketized, the result series will be too unless outputTicks is non null.\\n\\n@param `gtsList` A list of Geo Time Series™, or a single Geo Time Series™\\n\\n@param `mapper` Mapper function to apply\\n\\n@param `pre` Width of the sliding window before the current tick. This parameter is interpreted as a number of ticks if its value is positive, and as a number of time units if its value is negative. A value of 0 means the sliding window does not cover the past. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the past. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `post` Width of the sliding window after the current tick. Values have the same semantics as for the `pre` parameter. A value of 0 means the sliding window does not cover the future. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the future. Defaults to 0.\\n\\n@param `occurrences` Limit the number of computations to that number. If the value is 0, compute a value for each tick of the input Geo Time Series™. If it is positive, compute that many values starting from the oldest to the most recent tick. In the other case, do that many computations in the reverse order. This is useful when you are interested in a single result, like the max or sum of all values. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `step` The step size in number of ticks. The mapper beggins at the oldest tick and goes to the tick `step` after the current one and so on. Defaults to 1.\\n\\n@param `overrideTick` If set to true, the tick value returned by the mapper is used to update the current tick, else it is ignored and the original tick is kept. Defaults to false.\\n\\n@param `outputTicks` If non null, it sets the list of ticks that is traversed to anchor the sliding windows (instead of the ticks of the input Geo Time Series™). In that case, a tick of the input Geo Time Series™ that would be equal to one of these anchor points is counted by a positive `post` if `occurences` is non-negative, or by a positive `pre` if `occurences` is negative.\\n\\n\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAP\"},{\"name\":\"MAP->\",\"detail\":\"MAP->( map:MAP ): key:ANY* value:ANY* mapsize:LONG\",\"documentation\":\"The `MAP->` function expands the **MAP** on top of the stack into pairs of elements followed by the number of elements extracted. If the **MAP** was \\ncreated by a call to `->MAP`, the order of the elements will be the same as prior to calling `->MAP`.\\n\\n@param `map` Map to expand\\n\\n@param `key` Key of the pair\\n\\n@param `value` Value of the pair\\n\\n@param `mapsize` The number of key value pushed on the stack.\\n\\n\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"IJ4FAIs\"},{\"name\":\"MAPID\",\"detail\":\"MAPID( input:MAP ): result:STRING\",\"documentation\":\"Generates a fingerprint of a map.\\n\\n@param `input` Input map\\n\\n@param `result` Fingerprint of the map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAPID\"},{\"name\":\"MARK\",\"detail\":\"MARK(): mark:MARK\",\"documentation\":\"Pushes a mark onto the stack.\\n\\n@param `mark` A MARK instance.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MARK\"},{\"name\":\"MAT->\",\"detail\":\"MAT->( input:MATRIX ): [  result:LIST<LIST<DOUBLE>>  ]\",\"documentation\":\"The `MAT->` function converts a Matrix into nested lists.\\n\\n\\n@param `input` Matrix to convert\\n\\n@param `result` Nested list of values\\n\\n\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"IJ4JAIs\"},{\"name\":\"MATCH\",\"detail\":\"MATCH( string:STRING regexp:STRING ): result:LIST<STRING>\\nMATCH( string:STRING regexp:MATCHER ): result:LIST<STRING>\",\"documentation\":\"The `MATCH` function applies a regular expression (regexp) to a string.\\n\\nIt consumes two parameters from the top of the stack: the regexp pattern and the string to test matching with.\\n\\nIf the string doesn’t match the regexp, the function return an empty list. If it matches, the function will return a list of every matching group.\\n\\nInstead of using a regular expression **STRING**, you can also use the result of [`MATCHER`](/doc/MATCHER) for improved performance.\\n\\n@param `regexp` Regular expression to apply\\n\\n@param `string` String to evaluate\\n\\n@param `result` List of every matching group.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCH\"},{\"name\":\"MATCHER\",\"detail\":\"MATCHER( regexp:STRING ): result:MATCHER\",\"documentation\":\"The `MATCHER` function will compile a regular expression into an efficient object which can be used by [`MATCH`](/doc/MATCH).\\n\\n@param `regexp` Regular expression to compile\\n\\n@param `result` Compiled regula expression\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCHER\"},{\"name\":\"MAX\",\"detail\":\"MAX( p1:NUMBER p2:NUMBER ): result:NUMBER\\nMAX( p1:COUNTER p2:COUNTER ): result:LONG\\nMAX( p1:COUNTER p2:NUMBER ): result:NUMBER\\nMAX( p1:NUMBER p2:COUNTER ): result:NUMBER\\nMAX( nlist:LIST<NUMBER> ): sresult:NUMBER\\nMAX( clist:LIST<COUNTER> ): sresult:LONG\\nMAX( nlist:LIST<NUMBER> value:NUMBER ): nresult:LIST<NUMBER>\\nMAX( clist:LIST<COUNTER> value:COUNTER ): nresult:LIST<LONG>\\nMAX( clist:LIST<COUNTER> value:NUMBER ): nresult:LIST<NUMBER>\\nMAX( gts:GTS ): gresult:NUMBER\\nMAX( gts:GTS value:NUMBER ): gtsresult:GTS\",\"documentation\":\"Returns the greater of two numeric values.\\n\\nThe `MAX` function consumes two numeric parameters from the top of the stack and pushes back the greatest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The larger of p1 and p2.\\n\\n@param `sresult` The larger of the elements in the given list.\\n\\n@param `gresult` The larger of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the max between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the max between the element in the GTS and the given value.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAX\"},{\"name\":\"MAXBUCKETS\",\"detail\":\"MAXBUCKETS( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXBUCKETS` function modifies the maximum number of buckets which can be created by a call to [`BUCKETIZE`](/doc/BUCKETIZE) by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXBUCKETS\"},{\"name\":\"MAXDEPTH\",\"detail\":\"MAXDEPTH( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXDEPTH` function modifies the maximum depth (number of levels) of the execution stack by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXDEPTH\"},{\"name\":\"MAXGEOCELLS\",\"detail\":\"MAXGEOCELLS( maxcells:LONG ): \",\"documentation\":\"Modifies the maximum number of cells a **GEOSHAPE** created by [`GEO.WKT`](/doc/GEO.WKT) or [`GEO.JSON`](/doc/GEO.JSON) can have. The limit can be modified up to the configured value for `warpscript.maxgeocells.hard`.\\n\\n@param `maxcells` New limit to set.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.11\",\"OPB64name\":\"MAXGEOCELLS\"},{\"name\":\"MAXGTS\",\"detail\":\"MAXGTS( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard limit \\nwhich can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXGTS` function modifies the maximum number of Geo Time Series™ which can be fetched by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXGTS\"},{\"name\":\"MAXJSON\",\"detail\":\"MAXJSON( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to\\nthe hard limit value.\\n\\nThe `MAXJSON` function modifies the maximum number of characters in a json produced by [`->JSON`](/doc/AIt9JoxD).\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"MAXJSON\"},{\"name\":\"MAXLONG\",\"detail\":\"MAXLONG(): result:LONG\",\"documentation\":\"Pushes [Long.MAX_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MAX_VALUE) onto the stack.\\n\\n@param `result` Long.MAX_LONG\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLONG\"},{\"name\":\"MAXLOOP\",\"detail\":\"MAXLOOP( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard\\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe MAXLOOP function modifies the maximum number of milliseconds which can be spent in a loop setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLOOP\"},{\"name\":\"MAXOPS\",\"detail\":\"MAXOPS( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXOPS` function modifies the maximum number of operations which can be performed during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXOPS\"},{\"name\":\"MAXPIXELS\",\"detail\":\"MAXPIXELS( pixels:LONG ): \",\"documentation\":\"Modifies the maximum size (in pixels) of images which can be created by [`PGraphics`](/doc/PGraphics). The limit can be modified up to the value configured in `warpscript.maxpixels.hard`.\\n\\n@param `pixels` Maximum size (in pixels).\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXPIXELS\"},{\"name\":\"MAXRECURSION\",\"detail\":\"MAXRECURSION( depth:LONG ): \",\"documentation\":\"Modifies the maximum nesting depth of macro calls. The limit can be modified up to the value configured in `warpscript.maxrecursion.hard`.\\n\\n@param `depth` Maximum nesting depth.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MAXRECURSION\"},{\"name\":\"MAXSYMBOLS\",\"detail\":\"MAXSYMBOLS( limit:LONG ): \",\"documentation\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a \\nhard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXSYMBOLS` function modifies the maximum number of simultaneous symbols which can be defined on the stack during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXSYMBOLS\"},{\"name\":\"MAXURLFETCHCOUNT\",\"detail\":\"MAXURLFETCHCOUNT( limit:LONG ): \",\"documentation\":\"The `MAXURLFETCHCOUNT` function modifies the maximum number of URLs which can be fetched with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.MAXURLFETCHCOUNT.limit.hard`.\\n\\n@param `limit` The maximum number of URLs which can be fetched.\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHCOUNT\"},{\"name\":\"MAXURLFETCHSIZE\",\"detail\":\"MAXURLFETCHSIZE( limit:LONG ): \",\"documentation\":\"The `MAXURLFETCHSIZE` function modifies the maximum cumulative size of fetched payloads with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.urlfetch.maxsize.hard` and is expressed as a number of bytes.\\n\\n@param `limit` The maximum cumulative size of fetched payloads.\\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHSIZE\"},{\"name\":\"MCHECKSIG\",\"detail\":\"MCHECKSIG( macro:MACRO ): macro:MACRO checked:BOOLEAN\",\"documentation\":\"The `MCHECKSIG` function checks if a macro signature is valid. If the macro does not contain a signature, the function returns `false` just as if the macro was signed but the signature was not valid. You can use [`MSIGCOUNT`](/doc/MSIGCOUNT) first to determine if the macro contains a signature or not.\\n\\n@param `macro` Macro whose signature must be checked.\\n\\n@param `checked` Boolean indicating if the signature could be validated.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MCHECKSIG\"},{\"name\":\"MD2\",\"detail\":\"MD2( input:BYTES ): result:BYTES\",\"documentation\":\"The `MD2` function digests a byte array on the stack with the cryptographic hash function [`MD2`](https://en.wikipedia.org/wiki/MD2_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD2\"},{\"name\":\"MD4\",\"detail\":\"MD4( input:BYTES ): result:BYTES\",\"documentation\":\"The `MD4` function digests a byte array on the stack with the cryptographic hash function [`MD4`](https://en.wikipedia.org/wiki/MD4).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD4\"},{\"name\":\"MD5\",\"detail\":\"MD5( input:BYTES ): result:BYTES\",\"documentation\":\"The `MD5` function digests a byte array on the stack with the cryptographic hash function [`MD5`](https://en.wikipedia.org/wiki/MD5).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"MD5\"},{\"name\":\"MDETACH\",\"detail\":\"MDETACH( macro:MACRO ): macro:MACRO sig:MACRO\",\"documentation\":\"The `MDETACH` function detaches a signature macro from a signed macro. The original macro is shrunk, it is not a shorter copy, you can use `+` right after the call to `MDETACH` to recreate the original macro.\\n\\nIf the input macro does not contain a signature, the result of applying `MDETACH` will be an empty macro and the original macro will not be modified.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MDETACH\"},{\"name\":\"MERGE\",\"detail\":\"MERGE( gtsList:LIST<GTS> ): result:GTS\",\"documentation\":\"Merge several Geo Time Series™ together.\\n\\nThe `MERGE` function expects a **LIST** of Geo Time Series™ on the top of the stack. It will consume these GTS and push onto the stack a single GTS instance\\nwith all measurements found in the GTS instances present in the **LIST**. The name and labels of the resulting GTS instance are those of the first one of the\\n**LIST**.\\n\\n`MERGE` do not override values on the same timestamp, they are appenned.\\n\\n@param `gtsList` The list of Geo Time Series™\\n\\n@param `result` The merged Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MERGE\"},{\"name\":\"META\",\"detail\":\"META( gtsList:LIST<GTS> writeToken:STRING ): \",\"documentation\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `META` is applied must have a non empty name and attributes (possibly empty).\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"META\"},{\"name\":\"METADIFF\",\"detail\":\"METADIFF( gtsList:LIST<GTS> writeToken:STRING ): \",\"documentation\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend in an incremental manner. New attributes are added and already existing attributes are updated or removed if their value is an empty string.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `METADIFF` is applied must have a non empty name and attributes (possibly empty).\\n\\nTo be able to use `METADIFF`, you must configure *ingress.attributes.allowdelta = true*. \\n\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"METADIFF\"},{\"name\":\"METAMATCH\",\"detail\":\"METAMATCH( gts:GTS selector:STRING ): match:BOOLEAN\\nMETAMATCH( encoder:ENCODER selector:STRING ): match:BOOLEAN\\nMETAMATCH( gtsList:LIST<GTS> selector:STRING ): matchList:LIST<BOOLEAN>\\nMETAMATCH( encoderList:LIST<ENCODER> selector:STRING ): matchList:LIST<BOOLEAN>\",\"documentation\":\"`METAMATCH` expose the [`filter.byselector`](/doc/filter.byselector) internals. It returns true if the input GTS metadata matches the given selector. Input can also be an encoder, or a list of GTS or encoders.\\n\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n\\n@param `gts` Geo Time Series™ instance to test\\n\\n@param `encoder` Encoder to test\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `match` Returns true when gts matches the selector\\n\\n@param `gtsList` List of Geo Time Series™ instances to test\\n\\n@param `encoderList` List of Geo Time Series™ instances to test\\n\\n@param `matchList` Returns true when gts or encoder of the input list matches the selector. matchList size is the same as input size, and order is preserved.\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.11\",\"OPB64name\":\"METAMATCH\"},{\"name\":\"METAOFF\",\"detail\":\"METAOFF( message:STRING secret:STRING ): \",\"documentation\":\"Disables meta operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a meta operation is attempted.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAOFF\"},{\"name\":\"METAON\",\"detail\":\"METAON( secret:STRING ): \",\"documentation\":\"Enables meta operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAON\"},{\"name\":\"METASET\",\"detail\":\"METASET( [ token:STRING class:STRING labels:MAP notbefore:LONG notafter:LONG maxduration:LONG ttl:LONG ] ): metaset:STRING\",\"documentation\":\"Performs a [`FIND`](/doc/FIND), retrieving a list of Geo Time Series™ and builds a *metaset* which can be distributed to allow access to those GTS without having to give away credentials.\\n\\nMetaset support is only available if a key has been set for `warp.aes.metasets`.\\n\\n@param `ttl` Time to live of the produces metaset. It will not be usable after that much time has elapsed since the current time. The ttl is specified in time units.\\n\\n@param `maxduration` The maximum span of data which can be retrieved using this metaset, in time units.\\n\\n@param `notafter` Most recent timestamp of the data this metaset can retrieve.\\n\\n@param `notbefore` Most ancient timestamp of the data this meataset can retrieve.\\n\\n@param `labels` Map of label selectors.\\n\\n@param `class` Geo Time Series™ class selector.\\n\\n@param `token` Read token to use for retrieving the GTS.\\n\\n@param `metaset` Encrypted metaset which can be used with a [`FETCH`](/doc/FETCH).\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"METASET\"},{\"name\":\"METASORT\",\"detail\":\"METASORT( gts:LIST<GTS> elements:LIST<STRING> ): sorted:LIST<GTS>\\nMETASORT( gts:LIST<GTS> elements:LIST<STRING> considerAttributes:BOOLEAN ): sorted:LIST<GTS>\",\"documentation\":\"Sorts a list of Geo Time Series™ according to elements of their metadata. The list of elements to consider for sorting can contain label/attribute names or NULL to consider the classname. Elements will be considered in the order in which they appear in the list.\\nIf two GTSs match the same criteria, the order considered is the one given in the list of Geo Time Series™.\\n\\nIf the list of elements is empty, the sort will apply on class name then on label and last on attributes.\\n\\nWhen sorting on a label/attribute, if 2 GTS match the same criterion, the one with the smallest number of labels is the first.\\nWhen sorting on a label/attribute, the GTS who does not have the label will be considered first.\\n\\n@param `gts` List of Geo Time Series™ to sort.\\n\\n@param `elements` Metadata elements to consider for sorting.\\n\\n@param `considerAttributes` Set to true to consider attributes as labels\\n\\n@param `sorted` Sorted list of GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"METASORT\"},{\"name\":\"MFILTER\",\"detail\":\"MFILTER( inputmap:MAP macro:MACRO ): results:MAP\\nMFILTER( inputmap:MAP macro:MACRO index:BOOLEAN ): results:MAP\",\"documentation\":\"The `MFILTER` function filters the element of a **MAP** according to the result of a macro execution on each key/value pair of the **MAP**. It produces a **MAP** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of filtered key/value pairs\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"2.9.0\",\"OPB64name\":\"MFILTER\"},{\"name\":\"MIN\",\"detail\":\"MIN( p1:NUMBER p2:NUMBER ): result:NUMBER\\nMIN( p1:COUNTER p2:COUNTER ): result:LONG\\nMIN( p1:COUNTER p2:NUMBER ): result:NUMBER\\nMIN( p1:NUMBER p2:COUNTER ): result:NUMBER\\nMIN( nlist:LIST<NUMBER> ): sresult:NUMBER\\nMIN( clist:LIST<COUNTER> ): sresult:LONG\\nMIN( nlist:LIST<NUMBER> value:NUMBER ): nresult:LIST<NUMBER>\\nMIN( clist:LIST<COUNTER> value:COUNTER ): nresult:LIST<LONG>\\nMIN( clist:LIST<COUNTER> value:NUMBER ): nresult:LIST<NUMBER>\\nMIN( gts:GTS ): gresult:NUMBER\\nMIN( gts:GTS value:NUMBER ): gtsresult:GTS\",\"documentation\":\"Returns the smaller of two numeric values.\\n\\nThe `MIN` function consumes two numeric parameters from the top of the stack and pushes back the smallest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The smaller of p1 and p2.\\n\\n@param `sresult` The smaller of the elements in the given list.\\n\\n@param `gresult` The smaller of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the min between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the min between the element in the GTS and the given value.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MIN\"},{\"name\":\"MINLONG\",\"detail\":\"MINLONG(): result:LONG\",\"documentation\":\"Pushes [Long.MIN_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MIN_VALUE) onto the stack.\\n\\n@param `result` Long.MIN_VALUE\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MINLONG\"},{\"name\":\"MINREV\",\"detail\":\"MINREV( revision:STRING ): newer:BOOLEAN\",\"documentation\":\"The `MINREV` function consumes a string representing a revision on the stack and puts back a boolean indicating if the revision of the current Warp 10™ platform is newer or equal.\\n\\n@param `revision` A string representing a revision (semantic versioning). Given a version number MAJOR.MINOR.PATCH, .MINOR or .MINOR.PATCH can be omitted.\\n\\n@param `newer` A boolean indicating wether the revision of the current Warp 10™ platform is newer or equal to the given revision.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.2.23\",\"OPB64name\":\"MINREV\"},{\"name\":\"MMAP\",\"detail\":\"MMAP( inputmap:MAP macro:MACRO ): results:MAP\\nMMAP( inputmap:MAP macro:MACRO index:BOOLEAN ): results:MAP\",\"documentation\":\"The `MMAP` function applies a macro on each key/value pair of a **MAP**, producing a **MAP** with the two elements on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it.\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"MMAP\"},{\"name\":\"MODE\",\"detail\":\"MODE( gts:GTS ): result:LIST\\nMODE( gtsList:LIST<GTS> ): result:LIST<LIST>\",\"documentation\":\"The `MODE` function computes the mode(s) for a given Geo Time Series™ or a GTS **LIST**. Foreach Geo Time Series™ pushes back on the stack a list containing\\ntheir mode(s).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Mode of the list (the items that occurs most often)\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"MODE\"},{\"name\":\"MONOTONIC\",\"detail\":\"MONOTONIC( gts:GTS trend:BOOLEAN ): result:GTS\\nMONOTONIC( gtsList:LIST<GTS> trend:BOOLEAN ): resultList:LIST<GTS>\",\"documentation\":\"Produces a new Geo Time Series™ from an input by modifying the value so the result is monotonous. This is technically applying a ratchet effect on values.\\n\\nThe `MONOTONIC` function expects a boolean on top of the stack and a Geo Time Series™ or list thereof below the boolean. The boolean indicates whether the\\nresult should be monotonically increasing (false) or decreasing (true).\\n\\n@param `trend` Whether the result should be monotonically increasing (false) or decreasing (true)\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` New Geo Time Series™\\n\\n@param `resultList` List of new Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MONOTONIC\"},{\"name\":\"MOTIONSPLIT\",\"detail\":\"MOTIONSPLIT( gts:GTS parameters:MAP ): splits:LIST<GTS>\\nMOTIONSPLIT( lgts:LIST<GTS> parameters:MAP ): lsplits:LIST<LIST<GTS>>\",\"documentation\":\"The `MOTIONSPLIT` function splits Geo Time Series™ instances based on several possible motion criteria. Split parameters can be combined to split on multiple criteria.\\n\\n`MOTIONSPLIT` can split on:\\n- stopped state detection\\n- moving to stopped transition\\n- time difference between two ticks (just as [`TIMESPLIT`](/doc/TIMESPLIT) does).\\n- maximal distance between two consecutive positions.\\n\\n`MOTIONSPLIT` parameters:\\n- **timesplit**: LONG value, time in platform time unit. Splits if the time difference between two consecutive ticks is strictly greater than this parameter. If defined, the split type label will be \\\"timesplit\\\".\\n- **distance.split**: DOUBLE value, distance in meter. Splits if the orthodromic distance between two consecutive locations is strictly greater than this parameter. If defined, the split type label will be \\\"distancesplit\\\".\\n- **stopped.min.time**: LONG value, time in platform time unit. This is the minimum time the consecutive locations should stay in the stopped zone radius to consider a stop state. If defined, the split type label will be \\\"stopped\\\".\\n- **stopped.max.radius**: DOUBLE value, distance in meter. As long as consecutive positions remains in the radius during stopped.min.time, `MOTIONSPLIT` detect a stopped state.\\n- **stopped.max.speed**: DOUBLE value, speed in m/s. If the speed is greater than this value while in stopped state, `MOTIONSPLIT` exits the stopped state.\\n- **stopped.max.mean.speed**: DOUBLE value, speed in m/s. Maximum mean speed in the proximity zone that prevent the split. `MOTIONSPLIT` will split only if there is a full stop during the given time and radius, and if the mean speed in the proximity zone is less than this parameter.\\n- **stopped.split**: BOOLEAN value. If true, `MOTIONSPLIT` also splits between stopped and moving sequences. If defined, the split type label will be \\\"stopped\\\" or \\\"moving\\\".\\n- **label.stopped.time**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the time in stopped state. If the split source is not a stop detection, this label won't be set.\\n- **label.split.number**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the split number, starting from 1.\\n- **label.split.type**: STRING value. If defined, `MOTIONSPLIT` will add an extra label that contains the split reason. It could be \\\"timesplit\\\", \\\"distancesplit\\\", \\\"end\\\", \\\"stopped\\\" or \\\"moving\\\".\\n\\n`MOTIONSPLIT` split type priorities:\\n- If stopped.min.time and stopped.max.radius are set, the stop detection has the first priority.\\n- If `MOTIONSPLIT` does not detect a stopped state, it looks for a distance split.\\n- If `MOTIONSPLIT` does not detect a stopped state or a distance split, it looks for a time split.\\n\\n\\n@param `parameters` List of splitting parameters. See the function description.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"MOTIONSPLIT\"},{\"name\":\"MRSEC\",\"detail\":\"MRSEC( macro:MACRO ): secured:MACRO\",\"documentation\":\"The `MRSEC` function modifies a `MACRO` and any macro it contains, setting its *secure* flag to `true`. It is a recursive version of [`MSEC`](/doc/MSEC).\\n\\n@param `macro` `MACRO` to recursively flag as secure.\\n\\n@param `secured` The original `MACRO` now recursively marked as secure.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MRSEC\"},{\"name\":\"MSEC\",\"detail\":\"MSEC( macro:MACRO ): secured:MACRO\",\"documentation\":\"The `MSEC` function modifies a `MACRO`, setting its *secure* flag to `true`. Some functions behave differently in the presence of secure macros, namely:\\n\\n* `SNAPSHOT` of a secure macro does not produce the actual code of the macro but a comment indicating the macro is secure.\\n* `ASREGS` and `DEREF` cannot operate on secure macros.\\n\\nMaking a macro secure is handy when returning a macro as the result of another macro call. The returned macro cannot be altered or inspected by the calling code thus providing a level of security and enabling the return of a singleton macro.\\n\\n@param `macro` `MACRO` to flag as secure.\\n\\n@param `secured` The original `MACRO` now marked as secure.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MSEC\"},{\"name\":\"MSGFAIL\",\"detail\":\"MSGFAIL( message:STRING ): \",\"documentation\":\"The `MSGFAIL` function stops the execution of WarpScript code by throwing an exception. \\n\\n@param `message` The exception message\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSGFAIL\"},{\"name\":\"MSIG\",\"detail\":\"MSIG( macro:MACRO ): macro:MACRO sig:MACRO\",\"documentation\":\"The `MSIG` function extracts a signature macro from a signed macro. The function can also be used with 3 `STRING` parameters in which case is simply consumes those parameters and emits nothing. This latter case is meant for signature macros so such macros are valid macros which do nothing. See [`MSIGN`](/doc/MSIGN) for the format of the signature macros.\\n\\nIf the input macro does not contain a signature, the result of applying `MSIG` will be an empty macro.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIG\"},{\"name\":\"MSIGCOUNT\",\"detail\":\"MSIGCOUNT( macro:MACRO ): count:LONG\",\"documentation\":\"The `MSIGCOUNT` function counts the number of signatures present in a macro. Note that it does not verify the said signatures.\\n\\n@param `macro` Macro from which to extract the signature count.\\n\\n@param `count` Number of signatures present in the macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGCOUNT\"},{\"name\":\"MSIGINFO\",\"detail\":\"MSIGINFO( macro:MACRO ): macro:MACRO infos:MAP\",\"documentation\":\"The `MSIGINFO` function extracts elements from a signed or signature macro. If a signature was found it outputs a map with the following keys, otherwise it outputs an empty map.\\n\\n| Key   | Description|\\n|-------|------------|\\n| `key` | ECC public key to use for signature verification. |\\n| `sig` | Byte array containing the signature. |\\n\\n@param `macro` Macro from which to extract the signature infos.\\n\\n@param `infos` Map containing the extracted informations.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGINFO\"},{\"name\":\"MSIGN\",\"detail\":\"MSIGN( macro:MACRO privatekey:KEY ): macro:MACRO sig:MACRO\",\"documentation\":\"The `MSIGN` function creates a cryptographic signature of a macro. The cryptographic signature is itself a macro with the following structure:\\n\\n```\\n<%\\n  'CURVE'\\n  'PUBKEY'\\n  'SIG'\\n  MSIG\\n%>\\n```\\n\\nwhere `CURVE` is the name of the [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) to use, `PUBKEY` is the hex encoded public key (`Q` parameter) which can be used to verify the signature and `SIG` is the hex encoded `SHA256WITHECSDA` signature of the `UTF-8` content of the snapshot of the macro.\\n\\nThe resulting signature macro can be concatenated at the end of the original unsigned macro to create a *signed* macro. The signature macro can then be extracted using [`MSIG`](/doc/MSIG) or [`MDETACH`](/doc/MDETACH).\\n\\n@param `privatekey` ECC private key to use for signing `macro`.\\n\\n@param `macro` Macro to sign.\\n\\n@param `sig` Signature macro.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGN\"},{\"name\":\"MSORT\",\"detail\":\"MSORT( map:MAP ): result:MAP\",\"documentation\":\"The function `MSORT` inspects the top of the stack. If it is a **MAP**, it sorts the **MAP** according to its keys. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\n@param `map` Map to sort\\n\\n@param `result` Sorted map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSORT\"},{\"name\":\"MSTU\",\"detail\":\"MSTU(): numberTimeUnits:LONG\",\"documentation\":\"The `MSTU` function pushes onto the stack the number of platform time units in one millisecond. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one millisecond.\\n\\n\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSTU\"},{\"name\":\"MULTIPLYEXACT\",\"detail\":\"MULTIPLYEXACT( x:NUMBER y:NUMBER ): prod:LONG\\nMULTIPLYEXACT( list:LIST<NUMBER> ): sprod:LONG\\nMULTIPLYEXACT( lx:LIST<NUMBER> y:NUMBER ): lprod:LIST<LONG>\\nMULTIPLYEXACT( gts:GTS ): gprod:LONG\\nMULTIPLYEXACT( gtsx:GTS y:NUMBER ): gtsprod:GTS\",\"documentation\":\"The `MULTIPLYEXACT` function consumes two LONGs from the top of the stack and puts back the product. If the product overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `prod` The product of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sprod` The product of all the elements of list\\n\\n@param `gprod` The product of all the elements of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lprod` List of **LONG** where each value is the product of y and an element in lx\\n\\n@param `gtsprod` GTS of **LONG** values where each value is the product of y and an element in lx\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"MULTIPLYEXACT\"},{\"name\":\"MUSIGMA\",\"detail\":\"MUSIGMA( gts:GTS bessel:BOOLEAN ): mu:DOUBLE sigma:DOUBLE\",\"documentation\":\"The `MUSIGMA` function calculates the mean and the standard deviation of a Geo Time Series. It consumes two parameters from the top of the stack: a boolean \\n(to choose if [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction) should be applied on the standard deviation) and a numeric GTS, and \\nit pushes onto the stack its mean (mu) and its standard deviation (sigma).\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `sigma` Standard deviation\\n\\n@param `mu` Mean\\n\\n@param `gts` A single Geo Time Series\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MUSIGMA\"},{\"name\":\"MUTEX\",\"detail\":\"MUTEX( macro:MACRO mutex:STRING ): \",\"documentation\":\"Attempts to hold a named lock, creating it if needed, and execute a macro while holding the lock. When the macro execution terminates, either normally or with an error, the lock is released.\\n\\n@param `mutex` Name of lock to hold.\\n\\n@param `macro` Macro to execute while holding the lock.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"MUTEX\"},{\"name\":\"MVELEVATIONS\",\"detail\":\"MVELEVATIONS( input:GTSENCODER ): output:LIST\\nMVELEVATIONS( input:GTS ): output:LIST\\nMVELEVATIONS( linput:LIST ): output:LIST\",\"documentation\":\"The `MVELEVATIONS` function extracts elevations from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVELEVATIONS` function will emit a list with two elements (a pair), the first element will be the elevation associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the elevations of the Multivariate value itself.\\n\\nIf a tick has no associated elevation, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted elevations.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVELEVATIONS\"},{\"name\":\"MVERIFY\",\"detail\":\"MVERIFY( macro:MACRO ): macro:MACRO\",\"documentation\":\"The `MVERIFY` function checks if a macro signature is valid and throws an exception if it is not or if the macro was not signed.\\n\\n@param `macro` Macro whose signature must be verified.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MVERIFY\"},{\"name\":\"MVHHCODES\",\"detail\":\"MVHHCODES( input:GTSENCODER ): output:LIST\\nMVHHCODES( input:GTS ): output:LIST\\nMVHHCODES( linput:LIST ): output:LIST\",\"documentation\":\"The `MVHHCODES` function extracts [`HHCodes`](https://en.wikipedia.org/wiki/HHCode) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVHHCODES` function will emit a list with two elements (a pair), the first element will be the HHCode associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the HHCodes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted HHCodes.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVHHCODES\"},{\"name\":\"MVINDEXSPLIT\",\"detail\":\"MVINDEXSPLIT( input:GTSENCODER ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTSENCODER indices:LIST ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTSENCODER renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTSENCODER indices:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS indices:LIST ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS indices:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> indices:LIST ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> indices:LIST renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> indices:LIST ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> indices:LIST renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\",\"documentation\":\"The `MVINDEXSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVINDEXSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element index (first element being at index 0).\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:INDEX` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of indices or indices ranges can be specified to only produce encoders for the indices which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `indices` List of indices or indices ranges (list of two indices), used to restrict which indices to consider.\\n\\n@param `renaming` Map of index (LONG) to parameter to `RENAME`. If no entry is present for an index, `+:INDEX` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVINDEXSPLIT\"},{\"name\":\"MVLOCATIONS\",\"detail\":\"MVLOCATIONS( input:GTSENCODER ): output:LIST\\nMVLOCATIONS( input:GTS ): output:LIST\\nMVLOCATIONS( linput:LIST ): output:LIST\",\"documentation\":\"The `MVLOCATIONS` function extracts location (latitude, longitude) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVLOCATIONS` function will emit a list with two elements (a pair), the first element will be the latitude and longitude (a list) associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the latitudes and longitudes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `[ NaN NaN ]` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted locations.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVLOCATIONS\"},{\"name\":\"MVTICKS\",\"detail\":\"MVTICKS( input:GTSENCODER ): output:LIST\\nMVTICKS( input:GTS ): output:LIST\\nMVTICKS( linput:LIST ): output:LIST\",\"documentation\":\"The `MVTICKS` function extracts ticks from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVTICKS` function will emit a list with two elements (a pair), the first element will be the tick at which the Multivariate value was encountered, the second element will be a list containing the ticks of the Multivariate value itself.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted ticks.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKS\"},{\"name\":\"MVTICKSPLIT\",\"detail\":\"MVTICKSPLIT( input:GTSENCODER ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTSENCODER timestamps:LIST ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTSENCODER renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTSENCODER timestamps:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS timestamps:LIST ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS timestamps:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> timestamps:LIST ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> renaming:MAP ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> timestamps:LIST renaming:MAP ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> timestamps:LIST ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> renaming:MAP ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> timestamps:LIST renaming:MAP ): loutput:LIST<GTSENCODER>\",\"documentation\":\"The `MVTICKSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVTICKSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element timestamp.\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:TIMESTAMP` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of timestamps or timestamp ranges can be specified to only produce encoders for the timestamps which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `timestamps` List of timestamps or timestamps ranges (list of two timestamps), used to restrict which timestamps to consider.\\n\\n@param `renaming` Map of timestamp (LONG) to parameter to `RENAME`. If no entry is present for a timestamp, `+:TIMESTAMP` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKSPLIT\"},{\"name\":\"MVVALUES\",\"detail\":\"MVVALUES( input:GTSENCODER ): output:LIST\\nMVVALUES( input:GTS ): output:LIST\\nMVVALUES( linput:LIST ): output:LIST\",\"documentation\":\"The `MVVALUES` function extracts values from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted values.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVVALUES\"},{\"name\":\"NAME\",\"detail\":\"NAME( gts:GTS ): result:STRING\\nNAME( encoder:GTSENCODER ): result:STRING\",\"documentation\":\"The `NAME` function consumes a Geo Time Series™ from the stack, extracts its class name, and pushes it onto the stack.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `encoder` Geo Time Series™ Encoder\\n\\n@param `result` Class name\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NAME\"},{\"name\":\"NBOUNDS\",\"detail\":\"NBOUNDS( mu:NUMBER sigma:NUMBER n:LONG ): bounds:LIST<DOUBLE>\",\"documentation\":\"The `NBOUNDS` function computes bounds defining a specified number of intervals which have the same area under the curve of a normal distribution with a given mean and standard deviation.\\n\\n@param `n` Number of desired intervals.\\n\\n@param `sigma` Positive standard deviation to use for the normal distribution.\\n\\n@param `mu` Mean to use for the normal distribution.\\n\\n@param `bounds` List of `n`-1 bounds defining the `n` intervals.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NBOUNDS\"},{\"name\":\"NDEBUGON\",\"detail\":\"NDEBUGON( n:NUMBER ): \",\"documentation\":\"Turns on stack debugging so up to the given number of stack levels will be returned in case of error. Stack debugging is off by default.\\n\\n@param `n` Maximum number of stack levels to return in case of error.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NDEBUGON\"},{\"name\":\"NEGATEEXACT\",\"detail\":\"NEGATEEXACT( value:NUMBER ): result:LONG\\nNEGATEEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nNEGATEEXACT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `NEGATEEXACT` function consumes one NUMBER from the top of the stack and puts back the negated value. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be negated\\n\\n@param `result` The negated value\\n\\n@param `lvalue` List of values to be negated\\n\\n@param `lresult` List of negated values\\n\\n@param `gts` GTS containing values to be negated\\n\\n@param `gtsresult` GTS containing negated values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEGATEEXACT\"},{\"name\":\"NEWENCODER\",\"detail\":\"NEWENCODER(): encoder:GTSENCODER\",\"documentation\":\"The `NEWENCODER` function creates an empty encoder and pushes it onto the stack. An encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` A newly created empty encoder instance.\\n\\n\",\"tags\":[\"encoder\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"NEWENCODER\"},{\"name\":\"NEWGTS\",\"detail\":\"NEWGTS(): gts:GTS\",\"documentation\":\"The `NEWGTS` function pushes onto the stack an empty Geo Time Series™ instance.\\n\\n@param `gts` A newly created empty GTS instance.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEWGTS\"},{\"name\":\"NEXTAFTER\",\"detail\":\"NEXTAFTER( from:NUMBER to:NUMBER ): result:DOUBLE\\nNEXTAFTER( from:NUMBER lto:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nNEXTAFTER( lfrom:LIST<NUMBER> to:NUMBER ): lresult:LIST<DOUBLE>\\nNEXTAFTER( from:NUMBER gtsto:GTS ): gtsresult:GTS\\nNEXTAFTER( gtsfrom:GTS to:NUMBER ): gtsresult:GTS\",\"documentation\":\"The `NEXTAFTER` function consumes two numeric parameter from the top of the stack and pushes back the **DOUBLE** adjacent to the first argument in the direction of the second argument. In other words, the result is between *from* and *to* and adjacent to *from*.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `from` Starting value\\n\\n@param `to` Direction used to calculate the adjacent value\\n\\n@param `result` Next **DOUBLE** from *from* to *to*\\n\\n@param `lfrom` List of starting values\\n\\n@param `lto` List of directions used to calculate the adjacent value\\n\\n@param `lresult` List of next **DOUBLE** from *from* to *to*\\n\\n@param `gtsfrom` Numerical GTS of starting values\\n\\n@param `gtsto` Numerical GTS of directions used to calculate the adjacent value\\n\\n@param `gtsresult` Numerical GTS of next **DOUBLE** from *from* to *to*\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTAFTER\"},{\"name\":\"NEXTDOWN\",\"detail\":\"NEXTDOWN( value:NUMBER ): result:DOUBLE\\nNEXTDOWN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nNEXTDOWN( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `NEXTDOWN` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of negative infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of negative infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of negative infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of negative infinity of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEXTDOWN\"},{\"name\":\"NEXTUP\",\"detail\":\"NEXTUP( value:NUMBER ): result:DOUBLE\\nNEXTUP( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nNEXTUP( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `NEXTUP` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of positive infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of positive infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of positive infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of positive infinity of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTUP\"},{\"name\":\"NOLOG\",\"detail\":\"NOLOG(): \",\"documentation\":\"The `NOLOG` function resets java.util.logging.LogManager.\\n\\nIt can be useful to do this during developments and tests of an extension.\\n\\nThe `NOLOG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.2.19\",\"OPB64name\":\"NOLOG\"},{\"name\":\"NONEMPTY\",\"detail\":\"NONEMPTY( gtsList:LIST<GTS> ): results:LIST<GTS>\",\"documentation\":\"Filter a list of Geo Time Series™ in order to retain only those that have at least one value.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `results` Filtered list of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NONEMPTY\"},{\"name\":\"NONNULL\",\"detail\":\"NONNULL( list:LIST ): nonnulls:LIST\",\"documentation\":\"The `NONNULL` function consumes a list and produces a list containing only the non NULL elements of the argument list.\\n\\n@param `list` The argument list to filter\\n\\n@param `nonnulls` A new list with only those elements from `list` which are not NULL\\n\\n\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.2.7\",\"OPB64name\":\"NONNULL\"},{\"name\":\"NOOP\",\"detail\":\"\",\"documentation\":\"It does nothing.\\n\\nWhile it does not have a usefulness of its own, it can be used when generating code from within WarpScript code prior to executing it with [`EVAL`](/doc/EVAL).\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOOP\"},{\"name\":\"NORMALIZE\",\"detail\":\"NORMALIZE( gts:GTS ): result:GTS\\nNORMALIZE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"The `NORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between 0 and 1 (i.e. it replaces X by \\n(X - min)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NORMALIZE\"},{\"name\":\"NOT\",\"detail\":\"NOT( input:BOOLEAN ): result:BOOLEAN\\nNOT( gts:GTS ): negatedgts:GTS\",\"documentation\":\"Negates a boolean.\\n\\nThe `NOT` function is synonymous for [`!`](/doc/7F). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gts` A boolean Geo Time Series™\\n\\n@param `negatedgts` A boolean Geo Time Series™\\n\\n\",\"tags\":[\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOT\"},{\"name\":\"NOTAFTER\",\"detail\":\"NOTAFTER( timestamp:LONG ): \\nNOTAFTER( date:STRING ): \",\"documentation\":\"Checks that the current time is not after the provided timestamp.\\n\\nThe `NOTAFTER` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not after the provided timestamp.\\nIf it is not after the WarpScript execution continues, otherwise it throws an exception.\\n\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTAFTER\"},{\"name\":\"NOTBEFORE\",\"detail\":\"NOTBEFORE( timestamp:LONG ): \\nNOTBEFORE( date:STRING ): \",\"documentation\":\"Checks that the current time is not before the provided timestamp.\\n\\nThe `NOTBEFORE` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not before the provided timestamp.\\nIf it is not before the WarpScript execution continues, otherwise it throws an exception.\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTBEFORE\"},{\"name\":\"NOTIMINGS\",\"detail\":\"\",\"documentation\":\"Use of the `NOTIMINGS` function disables the collection of timing information for each line of the input script. Use [`TIMINGS`](/doc/TIMINGS) to enable it again.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTIMINGS\"},{\"name\":\"NOW\",\"detail\":\"NOW(): timestamp:LONG\",\"documentation\":\"The `NOW` function pushes onto the stack the current **LONG** timestamp expressed in the platform time unit. This timestamp is the number of platform time unit elapsed since 00:00:00 on 1 January 1970 UTC minus the number of leap seconds, see [Unix time](https://en.wikipedia.org/wiki/Unix_time).\\n\\nThis function is mostly linear with time but this property is violated when the OS resynchronises its clock (ie consecutive calls to `NOW` may 'jump' or 'go backward').\\n\\n@param `timestamp` The current timestamp in platform time unit.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOW\"},{\"name\":\"NPDF\",\"detail\":\"NPDF( mu:NUMBER sigma:NUMBER ): npdf:FUNCTION\",\"documentation\":\"The `NPDF` function builds a function which outputs the probability of occurrence of a given value under a specified normal distribution.\\n\\nThe normal distribution is defined by its mean and standard deviation. The result of the `NPDF` function is itself a function which can be invoked via [`EVAL`](doc/EVAL).\\n\\n*NPDF* stands for Normal (Gaussian) distribution Probability Density Function.\\n\\n@param `sigma` Standard deviation of the normal distribution to consider.\\n\\n@param `mu` Mean of the normal distribution to consider.\\n\\n@param `npdf` Function which given an input number outputs the probability of its occurence under the given normal distribution.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NPDF\"},{\"name\":\"NPEEK\",\"detail\":\"NPEEK( levels:NUMBER ): \",\"documentation\":\"Displays a given number of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of stack levels to display.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"NPEEK\"},{\"name\":\"NRETURN\",\"detail\":\"NRETURN( levelnumber:LONG ): \",\"documentation\":\"Immediately exit a certain number of macros being executed. The `NRETURN` function expects a number of levels on top of the stack.\\n\\n@param `levelnumber` Number of levels of macro to exit.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"NRETURN\"},{\"name\":\"NSUMSUMSQ\",\"detail\":\"NSUMSUMSQ( gts:GTS ): cardinality:LONG sum:DOUBLE square:DOUBLE\",\"documentation\":\"Computes the cardinality, sum of values and sum of squared values of a Geo Time Series™. Pushes those results on the stack in the order they were mentioned.\\n\\nOnly numeric series are allowed.\\n\\n@param `square` Sum of squared values\\n\\n@param `sum` Sum of values\\n\\n@param `cardinality` Values count\\n\\n@param `gts` Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NSUMSUMSQ\"},{\"name\":\"NULL\",\"detail\":\"NULL(): result:NULL\",\"documentation\":\"The `NULL` function pushes the symbolic value *null* onto the stack.\\n\\n@param `result` Symbolic value *null*\\n\\n\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NULL\"},{\"name\":\"NaN\",\"detail\":\"NaN(): result:DOUBLE\",\"documentation\":\"Pushes the double value *NaN* (Not a Number) onto the stack.\\n\\n@param `result` Value *NaN*\\n\\n\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NaN\"},{\"name\":\"ONLYBUCKETS\",\"detail\":\"ONLYBUCKETS( gts:GTS ): result:GTS\\nONLYBUCKETS( lgts:LIST<GTS> ): lresult:LIST<GTS>\",\"documentation\":\"Only retains ticks from Geo Time Series™ with timestamps which are bucket ends. If an input GTS is not bucketized, a clone of the GTS will be returned.\\n\\nThe `ONLYBUCKETS` function does not remove duplicate ticks, please consider using [`DEDUP`](/doc/DEDUP) for that purpose.\\n\\n@param `gts` Single instance of Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `result` Transformed GTS.\\n\\n@param `lresult` List of transformed GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ONLYBUCKETS\"},{\"name\":\"OPB64->\",\"detail\":\"OPB64->( input:STRING ): output:BYTES\",\"documentation\":\"Decode a String in order preserving base64 into a byte array.\\n\\nBytes array cannot be represented on the stack.\\n\\n@param `input` Any valid opbbase64 string.\\n\\n@param `output` Byte array of the input decoded input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.7\",\"OPB64name\":\"Ip01CYFhEV\"},{\"name\":\"OPB64TOHEX\",\"detail\":\"OPB64TOHEX( input:STRING ): output:STRING\",\"documentation\":\"The OPB64TOHEX function decodes the order preserving base64 string on top of the stack and immediately re-encode it in hex string.\\n\\n\\n@param `input` OPBase64 encoded string\\n\\n@param `output` hexadecimal representation\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.2\",\"OPB64name\":\"OPB64TOHEX\"},{\"name\":\"OPS\",\"detail\":\"OPS(): ops:LONG\",\"documentation\":\"Pushes onto the stack the current number of operations which were performed by the WarpScript code execution.\\n\\n@param `ops` number of operations\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPS\"},{\"name\":\"OPTDTW\",\"detail\":\"OPTDTW( data:LIST query:LIST match:NUMBER ): result:LIST\\nOPTDTW( data:LIST query:LIST window:NUMBER match:NUMBER ): result:LIST\",\"documentation\":\"The `OPTDTW` function finds the top subsequence matches in a sequence for a given query sequence. The function uses [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping)\\nto assess the subsequence similarity with the query.\\n\\n@param `match` Number of top matches. Use 0 as the number of matches to return to return them all.\\n\\n@param `query` Query numerical sequence, thr shortest\\n\\n@param `data` Data sequence in which to find matches\\n\\n@param `result` List of matches, each match being a pair of (index, distance).\\n\\n@param `window` Maximum index difference.\\n\\n\",\"tags\":[\"math\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPTDTW\"},{\"name\":\"OPTIMIZE\",\"detail\":\"OPTIMIZE( gts:GTS ratio:NUMBER ): gts:GTS\\nOPTIMIZE( encoder:GTSENCODER ratio:NUMBER ): optencoder:GTSENCODER\\nOPTIMIZE( lgts:LIST<GTS> ratio:NUMBER ): lgts:LIST<GTS>\\nOPTIMIZE( lencoder:LIST<GTSENCODER> ratio:NUMBER ): loptencoder:LIST<GTSENCODER>\",\"documentation\":\"Optimizes the memory footprint of Geo Time Series™ and GTS Encoder instances.\\n\\n@param `ratio` Ratio of memory footprint to number of values, if this ratio is not exceeded, no optimization will take place. As a result, optimization is always done when ratio <= 1 or ratio is NaN.\\n\\n@param `gts` Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `encoder` Instance of GTS Encoder to optimize.\\n\\n@param `optencoder` Optimized version of the encoder, or the original instance if no optimization occurred.\\n\\n@param `lgts` List of Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `lencoder` List of instances of GTS Encoder to optimize.\\n\\n@param `loptencoder` List of optimized version of the encoders or the original instances if no optimization occurred.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"OPTIMIZE\"},{\"name\":\"OR\",\"detail\":\"OR( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\nOR( l:LIST ): result:BOOLEAN\\nOR( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"documentation\":\"The `OR` operator is a synonymous for [`||`](/doc/U6k).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `OR` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"OR\"},{\"name\":\"PACK\",\"detail\":\"PACK( input:LIST format:STRING ): result:BYTES\",\"documentation\":\"The `PACK` function packs a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n@param `input` List to pack\\n\\n@param `format` Format used to pack\\n\\n@param `result` Bytes array\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"PACK\"},{\"name\":\"PAPPLY\",\"detail\":\"PAPPLY( [ op:OPERATOR labels:LIST gts:LIST<GTS>+ ] ): result:MAP\",\"documentation\":\"The `PAPPLY` function performs operations in a way identical to the [`APPLY`](/doc/APPLY) framework but produces a map of results keyed by the label map of each equivalence class.\\n\\nAs [`APPLY`](/doc/APPLY), `PAPPLY` provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can due. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` Map of resulting GTS, one per equivalence class, keyed with the equivalence class labels.\\n\\n@param `op` Operation to perform.\\n\\n\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"PAPPLY\"},{\"name\":\"PARSE\",\"detail\":\"PARSE( data:STRING ): result:LIST<GTS>\",\"documentation\":\"The `PARSE` function parses an input **STRING** containing datapoints in the [Geo Time Series™ input format](/content/03_Documentation/03_Interacting_with_Warp_10/03_Ingesting_data/02_GTS_input_format) and pushes onto the stack the parsed Geo Time Series™.\\n\\n@param `data` Datapoints in the Geo Time Series™ input format\\n\\n@param `result` List of parsed Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.0.11\",\"OPB64name\":\"PARSE\"},{\"name\":\"PARSESELECTOR\",\"detail\":\"PARSESELECTOR( selector:STRING ): classselector:STRING labelselector:MAP\",\"documentation\":\"The `PARSESELECTOR` function parses a GTS Selector (STRING) returnss the class selector and labels selectors.\\n\\nIn order for `PARSESELECTOR` to parse correctly a selector, the following characters MUST appear percent-encoded in the `STRING` to parse, the equal sign (`=`, `%3D`), the comma (`,` `%2C`) and closing curly brace (`}` `%7D`). Due to the way WarpScript parses `STRING` constants, the `%` sign MUST be percent-encoded (`%25`) in the `STRING` if it appears in WarpScript code:\\n\\nThe `STRING` `class{label=comm%2Cequal%3Dsign}` must appear in WarpScript as:\\n\\n```\\n'class{label=comm%252Cequal%253Dsign'\\n```\\n\\nCombined with `TOSELECTOR`, it can be used to build a selector from a subset of GTS.\\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature'\\n  { 'sensorId' '=01' }\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\nFETCH\\n\\n```\\nThis can be used to simplify the syntax of a FETCH or FIND request. \\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature{sensorId=01}' PARSESELECTOR\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\n\\nFETCH\\n```\\n\\n\\n\\n@param `selector` String selector.\\n\\n@param `labelselector` MAP of label selectors.\\n\\n@param `classselector` Class name selector.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARSESELECTOR\"},{\"name\":\"PARSEVALUE\",\"detail\":\"PARSEVALUE( input:STRING ): value:ANY\",\"documentation\":\"The `PARSEVALUE` function parses a STRING representing a valid value in the Geo Time Series™ input format.\\n\\nThe underlying implementation being the internal WarpScript function, some of the returned types might not be easily handled in the rest of the calling script. Most notably, some floating point representations might lead to BigDecimal instances being produced.\\n\\n@param `input` String representation of the value to parse.\\n\\n@param `value` Parsed value, could be a STRING, LONG, DOUBLE, BIGDECIMAL, BOOLEAN or BYTES elements.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.1.0\",\"OPB64name\":\"PARSEVALUE\"},{\"name\":\"PARTITION\",\"detail\":\"PARTITION( lgts:LIST<GTS> labels:LIST<STRING> ): result:MAP\",\"documentation\":\"The `PARTITION` function splits a Geo Time Series™ list in equivalence classes based on label values.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels` plus all labels with common values among the GTS in the equivalence class.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARTITION\"},{\"name\":\"PATTERNDETECTION\",\"detail\":\"PATTERNDETECTION( gts:GTS patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nPATTERNDETECTION( lgts:LIST<GTS> patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"documentation\":\"The `PATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNDETECTION\"},{\"name\":\"PATTERNS\",\"detail\":\"PATTERNS( gts:GTS wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nPATTERNS( lgts:LIST<GTS> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"documentation\":\"The `PATTERNS` function extracts symbolic patterns (or motifs) from a Geo Time Series™. Those patterns are similar to [iSAX](http://www.cs.ucr.edu/~eamonn/iSAX/iSAX.html) symbols.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNS` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNS\"},{\"name\":\"PEEK\",\"detail\":\"PEEK(): \",\"documentation\":\"Displays the top of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEK\"},{\"name\":\"PEEKN\",\"detail\":\"PEEKN( distance:NUMBER ): \",\"documentation\":\"Displays the content of the level of the stack at the given distance from the top.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `distance` Distance (in stack levels) between the top of the stack and the level to display.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEKN\"},{\"name\":\"PERMUTE\",\"detail\":\"PERMUTE( tensor:LIST pattern:LIST ): tensor:LIST\\nPERMUTE( { tensor:LIST pattern:LIST fast:BOOLEAN  } ): tensor:LIST\",\"documentation\":\"Permute the dimensions of a nested LIST as if it were a tensor or a multidimensional array.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent before operating. Default to false.\\n\\n@param `pattern` The permutation pattern (a LIST of LONG).\\n\\n@param `tensor` The resulting nested LIST.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"PERMUTE\"},{\"name\":\"PFILTER\",\"detail\":\"PFILTER( [ gtsList:LIST<GTS> labels:LIST<STRING> filter:FILTER ] ): result:MAP\",\"documentation\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `PFILTER framework allows for advanced filtering using N-ary functions \\n(functions which accept N parameters). Returned GTS are grouped by equivalence classes.\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A map keyed by the label set of each equivalence class whose values are lists of selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `PFILTER`.\\n\\n\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"PFILTER\"},{\"name\":\"PGPDECRYPT\",\"detail\":\"PGPDECRYPT( encrypted:ANY keyring:KEYRING keyid:ANY passphrase:STRING ): decrypted:BYTES\",\"documentation\":\"The `PGPDECRYPT` function decrypts encryted data.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n@param `keyid` Key id of the PGP secret key to use for decryption. This can either be a LONG or a hex STRING.\\n\\n@param `keyring` PGP secret key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `encrypted` Encrypted content as `BYTES` or `STRING` (armored).\\n\\n@param `decrypted` Clear text content.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPDECRYPT\"},{\"name\":\"PGPENCRYPT\",\"detail\":\"PGPENCRYPT( content:ANY { date:LONG keyring:KEYRING recipient:ANY algorithm:STRING armor:BOOLEAN throw_keyid:BOOLEAN  } ): encrypted:ANY\",\"documentation\":\"The `PGPENCRYPT` function encrypts data so it can be decrypted by a given [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public key. The encryption is performed using [AES 256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) by default.\\n\\n@param `throw_keyid` Flag indicating whether or not to hide the key id of the recipient. Defaults to `true`.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `algorithm` Symmetric key algorithm to use for encryption. Possible values are `AES_128`, `AES_192`, `AES_256` (default), `BLOWFISH`, `CAMELLIA_128`, `CAMELLIA_192`, `CAMELLIA_256`, `CAST5`, `DES`, `IDEA`, `SAFER`, `TRIPLE_DES`, `TWOFISH`.\\n\\n@param `recipient` Recipient PGP public key or key id (LONG or hex STRING).\\n\\n@param `keyring` PGP key ring containing the key id specified in `recipient`. May not be set when `recipient` is a PGP public key.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to encrypt. `STRING` content will be encoded using `UTF-8` prior to encryption.\\n\\n@param `encrypted` `BYTES` or `STRING` (when `armor` is `true`) encrypted content.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPENCRYPT\"},{\"name\":\"PGPINFO\",\"detail\":\"PGPINFO( ring:ANY ): infos:MAP\\nPGPINFO( key:KEY ): infos:MAP\",\"documentation\":\"The `PGPINFO` function outputs informations about the keys contained in a PGP key ring previously extracted by [`PGPRING`](/doc/PGPRING).\\n\\nIt outputs a MAP keyed by key id and with values which are MAPs containing the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `keyid` | Uppercase 64 bits hecadecimal key id. |\\n| `fingerprint` | Lowercase hexadecimal full key fingerprint. |\\n| `uid` | List of uids associated with the key. Each uid is a byte array (`BYTES`). |\\n| `bits` | Key strength in bits. |\\n| `algorithm` | Algorithm used by the key, can be one of `RSA_GENERAL`, `RSA_SIGN`, `RSA_ENCRYPT`, `ELGAMAL_GENERAL`, `ELGAMAL_ENCRYPT`, `DSA`, `ECDH`, `ECDSA`, `DIFFIE_HELLMAN`, `EDDSA`, and `UNKNOWN_xx` for yet unsupported algorithms.|\\n| `master` | `BOOLEAN` indicating whether or not the key is a master key. |\\n| `signing` | `BOOLEAN` indicating if the key can be used for signing. |\\n| `encryption` | `BOOLEAN` indicating if the key can be used for encryption. |\\n| `expiry` | Timestamp at which the key expires, in platform time units since the Unix Epoch. 0 means no expiration. |\\n| `pubkey` | PGP public key with this key id. |\\n| `attributes` | List of key attributes, each attribute is a byte array. The only supported attribute at the moment is JPEG images. |\\n\\n@param `ring` PGP public or private key ring as extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `infos` Details of the keys present in the ring or key.\\n\\n@param `key` PGP public key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPINFO\"},{\"name\":\"PGPPRIVATE\",\"detail\":\"PGPPRIVATE( keyring:KEYRING ): keyids:LIST<STRING>\",\"documentation\":\"The `PGPPRIVATE` function outputs the list of key ids for secret keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP secret key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP secret keys present in the key ring.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPRIVATE\"},{\"name\":\"PGPPUBLIC\",\"detail\":\"PGPPUBLIC( keyring:KEYRING ): keyids:LIST<STRING>\",\"documentation\":\"The `PGPPUBLIC` function outputs the list of key ids for public keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret or public key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP public keys present in the key ring.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPUBLIC\"},{\"name\":\"PGPRING\",\"detail\":\"PGPRING( block:BYTES ): keyrings:LIST<KEYRING>\\nPGPRING( armored:STRING ): keyrings:LIST<KEYRING>\\nPGPRING( keyring:KEYRING ): encoded:BYTES\",\"documentation\":\"The `PGPRING` function parses a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public or secret key ring block and extracts the various key rings it contains. The function returns a list of key ring objects.\\n\\n@param `block` PGP public or private key ring block as produced by `gpg --export` or `gpg --export-secret-[sub]keys`.\\n\\n@param `armored` PGP public key ring block as produced by `gpg --export*` with the `--armor` option.\\n\\n@param `keyrings` LIST of key rings found in `block`.\\n\\n@param `keyring` PGP public or secret key ring as produced by `PGPRING`.\\n\\n@param `encoded` Encoded form of the input key ring.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPRING\"},{\"name\":\"PGPSIGN\",\"detail\":\"PGPSIGN( content:ANY { keyring:KEYRING keyid:ANY passphrase:STRING digest:STRING armor:BOOLEAN detached:BOOLEAN  } ): signature:ANY\",\"documentation\":\"The `PGPSIGN` function signs some content with a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `digest` Digest algorithm to use for the signature. Possible values are `SHA1`, `SHA224`, `SHA256`, `SHA384`, `SHA512` (default), `SHA3-224`, `SHA3-256`, `SHA3-384`, `SHA3-512`, `RIPEMD160`, `RMD160`, `MD2`, `MD4`, `TIGER`, `HAVAL`, `SM3`, `MD5`.\\n\\n@param `keyring` PGP secret key ring as generated by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the key present in `keyring` to use for signing.\\n\\n@param `detached` Should the signature be a deatched one (default) or not.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to sign. `STRING` content will be encoded using `UTF-8` prior to signature.\\n\\n@param `signature` `STRING` or `BYTES` signature.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPSIGN\"},{\"name\":\"PGPVERIFY\",\"detail\":\"PGPVERIFY( content:ANY signature:ANY key:KEY detached:BOOLEAN ): verified:BOOLEAN\\nPGPVERIFY( signature:ANY key:KEY detached:BOOLEAN ): signed:BYTES verified:BOOLEAN\\nPGPVERIFY( content:ANY signature:ANY keyring:KEYRING keyid:ANY detached:BOOLEAN ): verified:BOOLEAN\\nPGPVERIFY( signature:ANY keyring:KEYRING keyid:ANY detached:BOOLEAN ): signed:BYTES verified:BOOLEAN\",\"documentation\":\"The `PGPVERIFY` function verifies a PGP signature.\\n\\n@param `key` PGP public key to use for verifying the signature.\\n\\n@param `keyring` PGP secret or public key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the public key to use for verifying the signature. LONG or hex STRING.\\n\\n@param `detached` Flag indicating whether the signature is detached or not.\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content, when `detached` is `true`.\\n\\n@param `verified` Verification result.\\n\\n@param `signed` Extracted signed content, when `detached` is `false`.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPVERIFY\"},{\"name\":\"PGraphics\",\"detail\":\"PGraphics( width:LONG height:LONG imgtype:STRING ): pg:PGRAPHICS\",\"documentation\":\"Warp 10 includes a large subset of the [Processing](http://www.processing.org) drawing library. You can create and manipulate images, then push a base64 encoded png onto the stack.\\n\\n+ Step 1: create a processing graphic object with `PGraphics` function.\\n+ Step 2: manipulate this object with Processing functions.\\n+ Step 3: render the processing graphic with `Pencode` function.\\n\\nDocumentation of every function has a link to original Processing website. Original website includes more examples for each function.\\n\\nProcessing functions offers a lot of different signatures for colors. The most efficient is to keep the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n\\nUp to Warp 10 1.2.18, antialiasing was not available. It is now available, by appending a digit to the **imgtype** string argument. The maximum anti-aliasing level is determined by the hardware of the machine that is running the software, so 2D4 and 2D8 mode will not work with every computer.\\n\\n+ \\\"2D\\\": no antialiasing\\n+ \\\"2D2\\\": bilinear smoothing\\n+ \\\"2D3\\\": bicubic smoothing\\n+ \\\"2D4\\\": 4x antialiasing\\n+ \\\"2D8\\\": 8x antialiasing\\n\\n\\nYou can adjust the maximal number of pixel allowed in Warp 10 configuration file.\\n\\n@param `imgtype` '2D', '3D', or '2Dx', where x is the level of anti aliasing (2, 3, 4, or 8).\\n\\n@param `width` Pixel width of the image.\\n\\n@param `height` Pixel height of the image.\\n\\n@param `pg` Processing graphic object.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PGraphics\"},{\"name\":\"PI\",\"detail\":\"PI(): pi:DOUBLE\",\"documentation\":\"Alias of [pi](/doc/R5Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"J3Z\"},{\"name\":\"PICK\",\"detail\":\"PICK( level:NUMBER ): result:ANY\",\"documentation\":\"The `PICK` function copies on top of the stack the element at level N. Parameter N is consumed off the top of the stack when `PICK` is called.\\n\\n@param `level` Level of the stack\\n\\n@param `result` What is on stack at *level*\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"PICK\"},{\"name\":\"PICKLE->\",\"detail\":\"PICKLE->( input:BYTES ): output:ANY\",\"documentation\":\"The `PICKLE->` function decodes some Pickle encoded content contained in a byte array.\\nThe conversion is done using [Pyrolite v4](https://github.com/irmen/pickle).\\n\\nIt can read all pickle protocol versions (0 to 4, so this includes\\nthe latest additions made in Python 3.4).\\n\\n```python\\n>>> myobject={ 'apple':3.5,'banana':18 }\\n>>> pickle.dumps(myobject).encode(\\\"hex\\\")\\n'286470300a53276170706c65270a70310a46332e350a73532762616e616e61270a70320a4931380a732e'\\n```\\n\\n@param `input` Byte array of a pickle encoded content\\n\\n@param `output` Warp 10 object\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"J3_2Hol4AIs\"},{\"name\":\"PIGSCHEMA\",\"detail\":\"PIGSCHEMA( elt:ANY* ): elt:ANY* schema:STRING\",\"documentation\":\"The `PIGSCHEMA` function produces on top of the stack a STRING representing the [Pig](https://en.wikipedia.org/wiki/Pig_(programming_tool)) schema definition for the current stack content.\\n\\n@param `elt` Stack content.\\n\\n@param `schema` Schema for the current stack, usable when working with WarpScript in Pig.\\n\\n\",\"tags\":[\"pig\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"PIGSCHEMA\"},{\"name\":\"PIVOT\",\"detail\":\"PIVOT( input:LIST<GTS> pivot:LIST<GTS> ): result:LIST<GTS>\",\"documentation\":\"The `PIVOT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick of GTS from the first list, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n1// C3{C1=C} 2\\n2// C4{C2=F} 30\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n4// C3{} 5\\n4// C4{} 50\\n```\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOT\"},{\"name\":\"PIVOTSTRICT\",\"detail\":\"PIVOTSTRICT( input:LIST<GTS> pivot:LIST<GTS> ): result:LIST<GTS>\",\"documentation\":\"The `PIVOTSTRICT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™ in a way similar to what [`PIVOT`](/doc/PIVOT) does.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick common to Geo Time Series™ of both lists, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOTSTRICT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n```\\n\\nOnly ticks 0 and 3 appear in the result as those are the only ticks present in both `C1` and `C2`.\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOTSTRICT\"},{\"name\":\"POLYFIT\",\"detail\":\"POLYFIT( gts:GTS degree:LONG buckets:BOOLEAN ): coeffs:LIST<DOUBLE>\\nPOLYFIT( gts:GTS degree:LONG ): coeffs:LIST<DOUBLE>\",\"documentation\":\"Creates a polynomial of the specified degree which fits the provided Geo Time Series.\\n\\nThe ticks or buckets ids can be considered.\\n\\n@param `buckets` Flag indicating whether to consider the ticks (`false`) or the bucket ids (`true`). If `buckets` is missing the ticks are considered.\\n\\n@param `degree` Degree of the polynomial to generate.\\n\\n@param `gts` Numerical Geo Time Series to fit. Must be bucketized if `buckets` is `true`.\\n\\n@param `coeffs` List of the coefficients of the generated polynomial function.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFIT\"},{\"name\":\"POLYFUNC\",\"detail\":\"POLYFUNC( coeffs:LIST<DOUBLE> ): func:FUNC\",\"documentation\":\"Creates a WarpScript function which computes a polynomial function of the given coefficients.\\n\\nThe resulting WarpScript function can be applied to a Geo Time Series, a GTS Encoder, a numerical value or a list thereof.\\n\\nWhen applied to a Geo Time Series, the bucket id can be considered instead of the tick by adding a `BOOLEAN` parameter to the call.\\n\\n@param `coeffs` List of polynomial coefficients.\\n\\n@param `func` Generated WarpScript function.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFUNC\"},{\"name\":\"POPR\",\"detail\":\"POPR( value:ANY ): \",\"documentation\":\"Pops a value from the top of the stack and stores it into the designated register.\\n\\nThe `POPR` function is really a family of functions named `POPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"POPR\"},{\"name\":\"PREDUCE\",\"detail\":\"PREDUCE( [ gts:LIST<GTS>+ labels:LIST<STRING> reducer:AGGREGATOR ] ): result:MAP\",\"documentation\":\"Behaves as [`REDUCE`](/doc/REDUCE) but produces a map of results keyed by the label map of each equivalence class.\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` Map keyed by the label map of each equivalence class and whose values are the Geo Time Series™ produced for each class.\\n\\n\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.5\",\"OPB64name\":\"PREDUCE\"},{\"name\":\"PRNG\",\"detail\":\"PRNG( seed:LONG ): \",\"documentation\":\"The `PRNG` function initializes the stack's seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator). This PRNG can later be used by the [`SRAND`](/doc/SRAND) function to produce random numbers in a deterministic way (!).\\n\\n@param `seed` The seed to use for initializing the PRNG.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"PRNG\"},{\"name\":\"PROB\",\"detail\":\"PROB( gts:GTS ): result:GTS\\nPROB( gtslist:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"Computes probability for each value of the input Geo Time Series™.\\n\\nThe function `PROB` consumes a GTS or a list of the GTS from the top of the stack. It pushes back the probability for each value.\\n\\nThe probabilities are computed using the value histogram.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `gtslist` The input list of Geo Time Series™\\n\\n@param `result` The Geo Time Series™ wit probability for each value\\n\\n@param `resultList` The List of Geo Time Series™ with probability for each value\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.6\",\"OPB64name\":\"PROB\"},{\"name\":\"PROBABILITY\",\"detail\":\"PROBABILITY( valueHistogram:MAP ): result:STRING\",\"documentation\":\"Pushes on the stack a function which computes probabilities according to a provided value histogram.\\n\\nTo use the function pushed by `PROBABILITY` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function expects a value on top of the stack and will output the probability of occurrence of this value.\\n\\n\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"PROBABILITY\"},{\"name\":\"PSTACK\",\"detail\":\"\",\"documentation\":\"When in interactive (REPL) mode, prints the content of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PSTACK\"},{\"name\":\"PUSHR\",\"detail\":\"PUSHR(): value:ANY\",\"documentation\":\"Pushes onto the stack the value currently contained in the designated register.\\n\\nThe `PUSHR` function is really a family of functions named `PUSHRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PUSHR\"},{\"name\":\"PUT\",\"detail\":\"PUT( inputmap:MAP newvalue:ANY newkey:ANY ): outputmap:MAP\",\"documentation\":\"The `PUT` function inserts a new key-value pair in a map.\\nIf the key already exists in the input MAP, the value is replaced by the new one.\\n\\n`PUT` function puts the reference of the MAP on top of the stack.\\n\\n@param `newkey` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `newvalue` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `inputmap` reference to the map to be modified\\n\\n@param `outputmap` copy of input map reference. Useful to chain other instructions on the same map.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"PUT\"},{\"name\":\"Palpha\",\"detail\":\"Palpha( pg:PGRAPHICS color:NUMBER ): pg:PGRAPHICS alpha:DOUBLE\",\"documentation\":\"Extracts the alpha value from a color.\\n\\nThe `Palpha` function is easy to use and understand, but it is slower than bit shifting... \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/alpha_.html)\\n\\n@param `color` Any value of the color datatype\\n\\n@param `alpha` Alpha component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Palpha\"},{\"name\":\"Parc\",\"detail\":\"Parc( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE start:DOUBLE stop:DOUBLE ): pg:PGRAPHICS\\nParc( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE start:DOUBLE stop:DOUBLE mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Draws an arc to the screen. Arcs are drawn along the outer edge of an ellipse defined by the **a**, **b**, **c**, and **d** parameters. The origin of the arc's ellipse may be changed with the [`PellipseMode`](/doc/PellipseMode) function. Use the **start** and **stop** parameters to specify the angles (in radians) at which to draw the arc.\\n\\n\\n\\nThere are three ways to draw an arc; the rendering technique used is defined by the optional seventh parameter. The three options, depicted in the examples, are PIE, OPEN, and CHORD. The default mode is the OPEN stroke with a PIE fill.\\n\\n\\n\\nIn some cases, the `Parc` function isn't accurate enough for smooth drawing. For example, the shape may jitter on screen when rotating slowly. If you're having an issue with how arcs are rendered, you'll need to draw the arc yourself with [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) or a **PShape**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/arc_.html)\\n\\n@param `b` y-coordinate of the arc's ellipse\\n\\n@param `a` x-coordinate of the arc's ellipse\\n\\n@param `c` width of the arc's ellipse by default\\n\\n@param `d` height of the arc's ellipse by default\\n\\n@param `start` angle to start the arc, specified in radians\\n\\n@param `stop` angle to stop the arc, specified in radians\\n\\n@param `mode` closing mode. either PIE, OPEN, or CHORD\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Parc\"},{\"name\":\"Pbackground\",\"detail\":\"Pbackground( pg:PGRAPHICS argb:LONG ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS gray:DOUBLE ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS image:PIMAGE ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS rgb:LONG alpha:NUMBER ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS gray:DOUBLE alpha:NUMBER ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"The `Pbackground` function sets the color used for the background of the processing graphics object. \\n\\nAn image object can also be used as the background for a sketch, although the image's width and height must match that of the processing object. Images used with `Pbackground` will ignore the current [`Ptint`](/doc/Ptint) setting. \\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pbackground` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/background_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `rgb` any rgb color value.\\n\\n@param `alpha` opacity of the background. 0 = transparent, 255 = opaque.\\n\\n@param `gray` a value between white (255) and black (0)\\n\\n@param `image` PImage to set as background (must be same size as pg)\\n\\n@param `v1` red or hue value (depending on the current color mode)\\n\\n@param `v2` green or saturation value (depending on the current color mode)\\n\\n@param `v3` blue or brightness value (depending on the current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbackground\"},{\"name\":\"PbeginContour\",\"detail\":\"PbeginContour( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Use the `PbeginContour` and [`PendContour`](/doc/PendContour) function to create negative shapes within shapes such as the center of the letter 'O'. `PbeginContour` begins recording vertices for the shape and [`PendContour`](/doc/PendContour) stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\n\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a `PbeginContour`/[`PendContour`](/doc/PendContour) pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginContour\"},{\"name\":\"PbeginShape\",\"detail\":\"PbeginShape( pg:PGRAPHICS kind:STRING ): pg:PGRAPHICS\\nPbeginShape( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Using the `PbeginShape` and [`PendShape`](/doc/PendShape) functions allow creating more complex forms. `PbeginShape` begins recording vertices for a shape and [`PendShape`](/doc/PendShape) stops recording. \\n\\nThe value of the **kind** parameter tells it which types of shapes to create from the provided vertices. The parameters available for beginShape() are POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, and QUAD_STRIP. After calling the `PbeginShape` function, a series of [`Pvertex`](/doc/Pvertex) commands must follow. To stop drawing the shape, call [`PendShape`](/doc/PendShape). The [`Pvertex`](/doc/Pvertex) function with two parameters specifies a position in 2D. Each shape will be outlined with the current stroke color and filled with the fill color. \\n\\n\\nTransformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within `PbeginShape`. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within `PbeginShape`. \\n\\n\\nThe P2D and P3D renderers allow [`Pstroke`](/doc/Pstroke) and [`Pfill`](/doc/Pfill) to be altered on a per-vertex group basis. Settings such as [`PstrokeWeight`](/doc/PstrokeWeight), [`PstrokeCap`](/doc/PstrokeCap), and [`PstrokeJoin`](/doc/PstrokeJoin) cannot be changed while inside a `PbeginShape`/[`PendShape`](/doc/PendShape) block with any renderer.\\n\\nUp to Warp 10 1.2.18, `PbeginShape` could be called without the **kind** parameter. It defaults to POLYGON.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginShape_.html)\\n\\n@param `kind` Either POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginShape\"},{\"name\":\"Pbezier\",\"detail\":\"Pbezier( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\\nPbezier( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE z1:DOUBLE x2:DOUBLE y2:DOUBLE z2:DOUBLE x3:DOUBLE y3:DOUBLE z3:DOUBLE x4:DOUBLE y4:DOUBLE z4:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Draws a Bezier curve on the screen. These curves are defined by a series of anchor and control points. The first two parameters specify the first anchor point and the last two parameters specify the other anchor point. The middle parameters specify the control points which define the shape of the curve. Bezier curves were developed by French engineer Pierre Bezier. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezier_.html)\\n\\n@param `x1` coordinates for the first anchor point\\n\\n@param `y1` coordinates for the first anchor point\\n\\n@param `z1` coordinates for the first anchor point\\n\\n@param `x2` coordinates for the first control point\\n\\n@param `y2` coordinates for the first control point\\n\\n@param `z2` coordinates for the first control point\\n\\n@param `x3` coordinates for the second control point\\n\\n@param `y3` coordinates for the second control point\\n\\n@param `z3` coordinates for the second control point\\n\\n@param `x4` coordinates for the second anchor point\\n\\n@param `y4` coordinates for the second anchor point\\n\\n@param `z4` coordinates for the second anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbezier\"},{\"name\":\"PbezierDetail\",\"detail\":\"PbezierDetail( pg:PGRAPHICS detail:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the resolution at which Beziers display. The default value is 20. This function is only useful when using the **P3D** renderer; the default **P2D** renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierDetail_.html)\\n\\n@param `detail` resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierDetail\"},{\"name\":\"PbezierPoint\",\"detail\":\"PbezierPoint( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"documentation\":\"Evaluates the Bezier at point t for points a, b, c, d. The parameter t varies between 0 and 1, a and d are points on the curve, and b and c are the control points. This can be done once with the x coordinates and a second time with the y coordinates to get the location of a bezier curve at t.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierPoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierPoint\"},{\"name\":\"PbezierTangent\",\"detail\":\"PbezierTangent( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"documentation\":\"Calculates the tangent of a point on a Bezier curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierTangent\"},{\"name\":\"PbezierVertex\",\"detail\":\"PbezierVertex( pg:PGRAPHICS x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Specifies vertex coordinates for Bezier curves. Each call to `PbezierVertex` defines the position of two control points and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PbezierVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only with POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierVertex_.html)\\n\\n@param `x2` The x-coordinate of the 1st control point\\n\\n@param `y2` The y-coordinate of the 1st control point\\n\\n@param `x3` The x-coordinate of the 2nd control point\\n\\n@param `y3` The y-coordinate of the 2nd control point\\n\\n@param `x4` The x-coordinate of the anchor point\\n\\n@param `y4` The y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierVertex\"},{\"name\":\"Pblend\",\"detail\":\"Pblend( pg:PGRAPHICS src:PIMAGE sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG mode:STRING ): pg:PGRAPHICS\\nPblend( pg:PGRAPHICS sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Blends a region of pixels from one image into another (or in itself again) with full alpha channel support.\\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels in the destination image (B):\\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - Multiply the colors, result will always be darker.\\n+ SCREEN - Opposite multiply, uses inverse values of the colors.\\n+ OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values,and screens light values.\\n+ HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.\\n+ SOFT_LIGHT - Mix of DARKEST and LIGHTEST. Works like OVERLAY, but not as harsh.\\n+ DODGE - Lightens light tones and increases contrast, ignores darks.Called \\\"Color Dodge\\\" in Illustrator and Photoshop.\\n+ BURN - Darker areas are applied, increasing contrast, ignores lights.Called \\\"Color Burn\\\" in Illustrator and Photoshop.\\n\\nAll modes use the alpha information (highest byte) of source image pixels as the blending factor. If the source and destination regions are different sizes, the image will be automatically resized to match the destination size. If the **src** parameter is not used, the display window is used as the source image.\\n\\n[Link to original Processing doc](https://processing.org/reference/blend_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `mode` Either BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblend\"},{\"name\":\"PblendMode\",\"detail\":\"PblendMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Blends the pixels in the display window according to a defined mode. \\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels already in the display window (B). \\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B. This is the default blending mode.\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - multiply the colors, result will always be darker.\\n+ SCREEN - opposite multiply, uses inverse values of the colors.\\n+ REPLACE - the pixels entirely replace the others and don't utilize alpha (transparency) values\\n\\nA pixel's final color is the result of applying one of the above blend modes with each channel of (A) and (B) independently. For example, red is compared with red, green with green, and blue with blue.\\n\\nWe recommend using `PblendMode` and not the previous [`Pblend`](/doc/Pblend) function. However, unlike [`Pblend`](/doc/Pblend), the `PblendMode` function does not support the following: HARD_LIGHT, SOFT_LIGHT, OVERLAY, DODGE, BURN. On older hardware, the LIGHTEST, DARKEST, and DIFFERENCE modes might not be available as well. \\n\\n[Link to original Processing doc](https://processing.org/reference/blendMode_.html)\\n\\n@param `mode` The blending mode to use\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PblendMode\"},{\"name\":\"Pblue\",\"detail\":\"Pblue( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS blue:DOUBLE\",\"documentation\":\"Extracts the blue value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pblue` function is easy to use and understand, but it is slower than bit masking. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/blue_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `blue` Blue component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblue\"},{\"name\":\"Pbox\",\"detail\":\"Pbox( pg:PGRAPHICS size:NUMBER ): pg:PGRAPHICS\\nPbox( pg:PGRAPHICS w:NUMBER h:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"A box is an extruded rectangle. A box with equal dimensions on all sides is a cube.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/box_.html)\\n\\n@param `size` dimension of the box in all dimensions (creates a cube)\\n\\n@param `w` dimension of the box in the x-dimension\\n\\n@param `h` dimension of the box in the y-dimension\\n\\n@param `d` dimension of the box in the z-dimension\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbox\"},{\"name\":\"Pbrightness\",\"detail\":\"Pbrightness( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS brightness:DOUBLE\",\"documentation\":\"Extracts the brightness value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/brightness_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `brightness` Brightness component of input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbrightness\"},{\"name\":\"Pclear\",\"detail\":\"Pclear( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Clears the pixels. This function clears everything in a **PGraphics** object to make all of the pixels 100% transparent.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clear_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclear\"},{\"name\":\"Pclip\",\"detail\":\"Pclip( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Limits the rendering to the boundaries of a rectangle defined by the parameters. The boundaries are drawn based on the state of the [`PimageMode`](/doc/PimageMode) function, either CORNER, CORNERS, or CENTER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clip_.html)\\n\\n@param `a` x-coordinate of the rectangle, by default\\n\\n@param `b` y-coordinate of the rectangle, by default\\n\\n@param `c` width of the rectangle, by default\\n\\n@param `d` height of the rectangle, by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclip\"},{\"name\":\"Pcolor\",\"detail\":\"Pcolor( pg:PGRAPHICS gray:NUMBER ): pg:PGRAPHICS color:LONG\\nPcolor( pg:PGRAPHICS gray:NUMBER alpha:NUMBER ): pg:PGRAPHICS color:LONG\\nPcolor( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS color:LONG\\nPcolor( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS color:LONG\",\"documentation\":\"`Pcolor` creates colors for storing in ARGB LONG datatype.\\n\\n+ RGB: The most efficient is to skip Pcolor function, using the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n+ HSB: For Hue Saturation Brightness to RGB conversion, use [`PcolorMode`](/doc/PcolorMode) to specify HSB, then use Pcolor to convert to ARGB.\\n\\nThe parameters are interpreted as RGB or HSB values depending on the current [`PcolorMode`](/doc/PcolorMode). The default mode is RGB values from 0 to 255.\\n\\nNote that if only one value is provided to `Pcolor`, it will be interpreted as a grayscale value. Add a second value, and it will be used for alpha transparency. When three values are specified, they are interpreted as either RGB or HSB values. Adding a fourth value applies alpha transparency.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/color_.html)\\n\\n@param `gray` int: number specifying value between white and black\\n\\n@param `alpha` float, or int: relative to current color range\\n\\n@param `v1` float, or int: red or hue values relative to the current color range\\n\\n@param `v2` float, or int: green or saturation values relative to the current color range\\n\\n@param `v3` float, or int: blue or brightness values relative to the current color range\\n\\n@param `color` ARGB color.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcolor\"},{\"name\":\"PcolorMode\",\"detail\":\"PcolorMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\\nPcolorMode( pg:PGRAPHICS mode:STRING max:DOUBLE ): pg:PGRAPHICS\\nPcolorMode( pg:PGRAPHICS mode:STRING max1:DOUBLE max2:DOUBLE max3:DOUBLE ): pg:PGRAPHICS\\nPcolorMode( pg:PGRAPHICS mode:STRING max1:DOUBLE max2:DOUBLE max3:DOUBLE maxA:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Changes the way Processing interprets color data. By default, the parameters for [`Pfill`](/doc/Pfill), [`Pstroke`](/doc/Pstroke), [`Pbackground`](/doc/Pbackground), and [`Pcolor`](/doc/Pcolor) are defined by values between 0 and 255 using the RGB color model. The `PcolorMode` function is used to change the numerical range used for specifying colors and to switch color systems. For example, calling **colorMode(RGB, 1.0)** will specify that values are specified between 0 and 1. The limits for defining colors are altered by setting the parameters **max**, **max1**, **max2**, **max3**, and **maxA**.\\n\\nWhen using max different from default values, do not work with grayscale.\\n\\nAfter changing the range of values for colors with code like **colorMode(HSB, 360, 100, 100)**, those ranges remain in use until they are explicitly changed again. For example, after running **colorMode(HSB, 360, 100, 100)** and then changing back to **colorMode(RGB)**, the range for R will be 0 to 360 and the range for G and B will be 0 to 100. To avoid this, be explicit about the ranges when changing the color mode. For instance, instead of **colorMode(RGB)**, write **colorMode(RGB, 255, 255, 255)**. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/colorMode_.html)\\n\\n@param `mode` Either 'RGB' or 'HSB', corresponding to Red/Green/Blue and Hue/Saturation/Brightness\\n\\n@param `max` range for all color elements\\n\\n@param `max1` range for the red or hue depending on the current color mode\\n\\n@param `max2` range for the green or saturation depending on the current color mode\\n\\n@param `max3` range for the blue or brightness depending on the current color mode\\n\\n@param `maxA` range for the alpha\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcolorMode\"},{\"name\":\"Pconstrain\",\"detail\":\"Pconstrain( pg:PGRAPHICS x:DOUBLE low:DOUBLE high:DOUBLE ): pg:PGRAPHICS clamped:DOUBLE\",\"documentation\":\"Constrains a value to not exceed a maximum and minimum value. Also known as clamping a value. \\n\\nIt could be done with warpscript MIN MAX functions, see example.\\n\\n[Link to original Processing doc](https://processing.org/reference/constrain_.html)\\n\\n@param `x` The value to clamp.\\n\\n@param `low` Minimum limit.\\n\\n@param `high` Maximum limit.\\n\\n@param `clamped` Clamped value of x in [low high] range.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pconstrain\"},{\"name\":\"Pcopy\",\"detail\":\"Pcopy( pg:PGRAPHICS src:PIMAGE sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG ): pg:PGRAPHICS\\nPcopy( pg:PGRAPHICS sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG ): pg:PGRAPHICS\\nPcopy( pg:PGRAPHICS ): pg:PGRAPHICS img:PIMAGE\",\"documentation\":\"Copies a region of pixels from the display window to another area of the display window and copies a region of pixels from an image used as the **src** parameter into the display window. If the source and destination regions are not the same size, it will automatically resize the source pixels to fit the specified target region. No alpha information is used in the process, however if the source image has an alpha channel set, it will be copied as well.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/copy_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `img` PIMAGE object, copy of pg\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcopy\"},{\"name\":\"PcreateFont\",\"detail\":\"PcreateFont( pg:PGRAPHICS name:STRING ): pg:PGRAPHICS font:PFONT\\nPcreateFont( pg:PGRAPHICS name:STRING size:NUMBER ): pg:PGRAPHICS font:PFONT\\nPcreateFont( pg:PGRAPHICS name:STRING size:NUMBER smooth:BOOLEAN ): pg:PGRAPHICS font:PFONT\\nPcreateFont( pg:PGRAPHICS name:STRING size:NUMBER smooth:BOOLEAN charset:STRING ): pg:PGRAPHICS font:PFONT\",\"documentation\":\"Dynamically converts a font to the format used by Processing from a font that is installed on the computer.  Not all fonts can be used and some might work with one operating system and not others.\\n\\nThe **size** parameter states the font size you want to generate. The **smooth** parameter specifies if the font should be antialiased or not.\\n\\nSince the 2.5.0 version, the name of the font can be a URI to a OpenType or Type1 font which will be resolved by a macro defined by the `processing.font.resolver` configuration.\\n\\n[Link to original Processing doc](https://processing.org/reference/createFont_.html)\\n\\n@param `name` Name of the font to load or URI from where to load the font.\\n\\n@param `size` Point size of the font\\n\\n@param `smooth` True for an antialiased font, false for aliased\\n\\n@param `charset` subset of ascii characters to be generated.\\n\\n@param `font` Processing font object compatible with PtextFont.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcreateFont\"},{\"name\":\"Pcurve\",\"detail\":\"Pcurve( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\\nPcurve( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE z1:DOUBLE x2:DOUBLE y2:DOUBLE z2:DOUBLE x3:DOUBLE y3:DOUBLE z3:DOUBLE x4:DOUBLE y4:DOUBLE z4:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Draws a curved line on the screen. The first and second parameters specify the beginning control point and the last two parameters specify the ending control point. The middle parameters specify the start and stop of the curve. Longer curves can be created by putting a series of `Pcurve` functions together or using [`PcurveVertex`](/doc/PcurveVertex). An additional function called [`PcurveTightness`](/doc/PcurveTightness) provides control for the visual quality of the curve. The `Pcurve` function is an implementation of Catmull-Rom splines. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n[Link to original Processing doc](https://processing.org/reference/curve_.html)\\n\\n@param `x1` float: coordinates for the beginning control point\\n\\n@param `y1` float: coordinates for the beginning control point\\n\\n@param `x2` float: coordinates for the first point\\n\\n@param `y2` float: coordinates for the first point\\n\\n@param `x3` float: coordinates for the second point\\n\\n@param `y3` float: coordinates for the second point\\n\\n@param `x4` float: coordinates for the ending control point\\n\\n@param `y4` float: coordinates for the ending control point\\n\\n@param `z1` float: coordinates for the beginning control point\\n\\n@param `z2` float: coordinates for the first point\\n\\n@param `z3` float: coordinates for the second point\\n\\n@param `z4` float: coordinates for the ending control point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcurve\"},{\"name\":\"PcurveDetail\",\"detail\":\"PcurveDetail( pg:PGRAPHICS detail:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the resolution at which curves display. The default value is 20. This function is only useful when using the P3D renderer as the default P2D renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveDetail_.html)\\n\\n@param `detail` Resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveDetail\"},{\"name\":\"PcurvePoint\",\"detail\":\"PcurvePoint( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"documentation\":\"Evaluates the curve at point **t** for points **a**, **b**, **c**, **d**. The parameter **t** may range from 0 (the start of the curve) and 1 (the end of the curve). **a** and **d** are points on the curve, and **b** and **c** are the control points. This can be used once with the **x** coordinates and a second time with the **y** coordinates to get the location of a curve at **t**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curvePoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of second point on the curve\\n\\n@param `c` coordinate of third point on the curve\\n\\n@param `d` coordinate of fourth point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurvePoint\"},{\"name\":\"PcurveTangent\",\"detail\":\"PcurveTangent( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"documentation\":\"Calculates the tangent of a point on a curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTangent\"},{\"name\":\"PcurveTightness\",\"detail\":\"PcurveTightness( pg:PGRAPHICS tightness:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Modifies the quality of forms created with [`Pcurve`](/doc/Pcurve) and [`PcurveVertex`](/doc/PcurveVertex). The parameter **tightness** determines how the curve fits to the vertex points. The value 0.0 is the default value for **tightness** (this value defines the curves to be Catmull-Rom splines) and the value 1.0 connects all the points with straight lines. Values within the range -5.0 and 5.0 will deform the curves but will leave them recognizable and as values increase in magnitude, they will continue to deform.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTightness_.html)\\n\\n@param `tightness` Amount of deformation from the original vertices\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTightness\"},{\"name\":\"PcurveVertex\",\"detail\":\"PcurveVertex( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPcurveVertex( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Specifies vertex coordinates for curves. This function may only be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). The first and last points in a series of `PcurveVertex` lines will be used to guide the beginning and end of a the curve. A minimum of four points is required to draw a tiny curve between the second and third points. Adding a fifth point with `PcurveVertex` will draw the curve between the second, third, and fourth points. The `PcurveVertex` function is an implementation of Catmull-Rom splines. \\n\\n[Link to original Processing doc](https://processing.org/reference/curveVertex_.html)\\n\\n@param `x` The x-coordinate of the vertex\\n\\n@param `y` The y-coordinate of the vertex\\n\\n@param `z` The z-coordinate of the vertex\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveVertex\"},{\"name\":\"Pdecode\",\"detail\":\"Pdecode( b64img:STRING ): img:PIMAGE\\nPdecode( rawimg:BYTES ): img:PIMAGE\",\"documentation\":\"`Pdecode` takes the image representation on the stack and pushes a Pimage object on the stack. This object can only be used as an input for [`Pset`](/doc/Pset), [`Pimage`](/doc/Pimage), [`Pbackground`](/doc/Pbackground).\\n\\nInput string must start with the header `data:image/png;base64,`.\\n\\nSupported input types: PNG, GIF, JPG.\\n\\n@param `img` Processing Pimage object.\\n\\n@param `rawimg` Image bytes.\\n\\n@param `b64img` Base64 encoded image string\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdecode\"},{\"name\":\"Pdist\",\"detail\":\"Pdist( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE z1:DOUBLE x2:DOUBLE y2:DOUBLE z2:DOUBLE ): pg:PGRAPHICS\\nPdist( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Calculates the distance between two points, in 2D or 3D space.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/dist_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdist\"},{\"name\":\"Pellipse\",\"detail\":\"Pellipse( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Draws an ellipse (oval) to the screen. An ellipse with equal width and height is a circle. By default, the first two parameters set the location, and the third and fourth parameters set the shape's width and height. The origin may be changed with the [`PellipseMode`](/doc/PellipseMode) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipse_.html)\\n\\n@param `a` float: x-coordinate of the ellipse\\n\\n@param `b` float: y-coordinate of the ellipse\\n\\n@param `c` float: width of the ellipse by default\\n\\n@param `d` float: height of the ellipse by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pellipse\"},{\"name\":\"PellipseMode\",\"detail\":\"PellipseMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Modifies the location from which ellipses are drawn by changing the way in which parameters given to [`Pellipse`](/doc/Pellipse) are intepreted.\\n\\nThe default mode is **ellipseMode(CENTER)**, which interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(RADIUS)** also uses the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, but uses the third and fourth parameters to specify half of the shapes's width and height.\\n\\n**ellipseMode(CORNER)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(CORNERS)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the location of one corner of the ellipse's bounding box, and the third and fourth parameters as the location of the opposite corner.\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipseMode_.html)\\n\\n@param `mode` Either CENTER, RADIUS, CORNER, or CORNERS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PellipseMode\"},{\"name\":\"Pencode\",\"detail\":\"Pencode( pg:PGRAPHICS ): b64img:STRING\\nPencode( pg:PGRAPHICS metadata:MAP ): b64img:STRING\\nPencode( img:PIMAGE ): b64img:STRING\\nPencode( img:PIMAGE metadata:MAP ): b64img:STRING\",\"documentation\":\"`Pencode` function takes a processing graphic object on the top of the stack, render it to a png file, encode it in base64, prefix the result with the standard png header \\\"data:image/png;base64,\\\".\\n\\nSince the 2.7.3 version, this function can be called on a **PIMAGE** instance.\\n\\nThe resulting string is ready to use in an html document.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing image object.\\n\\n@param `b64img` Base64 encoded image string, ready to use in an html page.\\n\\n@param `metadata` Map of metadata to add to the PNG. Accepted keys are 'tEXt', 'zTXt' and 'iTXt', while values are lists of maps with 'keyword' and 'text' keys.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pencode\"},{\"name\":\"PendContour\",\"detail\":\"PendContour( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Use the [`PbeginContour`](/doc/PbeginContour) and `PendContour` function to create negative shapes within shapes such as the center of the letter 'O'. [`PbeginContour`](/doc/PbeginContour) begins recording vertices for the shape and `PendContour` stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a [`PbeginContour`](/doc/PbeginContour)/`PendContour` pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n[Link to original Processing doc](https://processing.org/reference/endContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendContour\"},{\"name\":\"PendShape\",\"detail\":\"PendShape( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\\nPendShape( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"The `PendShape` function is the companion to [`PbeginShape`](/doc/PbeginShape) and may only be called after [`PbeginShape`](/doc/PbeginShape). When `Pendshape` is called, all of image data defined since the previous call to [`PbeginShape`](/doc/PbeginShape) is written into the image buffer. The constant CLOSE as the value for the MODE parameter to close the shape (to connect the beginning and the end). \\n\\nUp to Warp 10 1.2.18, `PendShape` could be called without the **mode** parameter. It defaults to OPEN.\\n\\n[Link to original Processing doc](https://processing.org/reference/endShape_.html)\\n\\n@param `mode` Use CLOSE to close the shape, OPEN otherwise.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendShape\"},{\"name\":\"Pfill\",\"detail\":\"Pfill( pg:PGRAPHICS argb:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS gray:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS argb:LONG alpha:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS v1:LONG v2:LONG v3:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS v1:LONG v2:LONG v3:LONG alpha:LONG ): pg:PGRAPHICS\",\"documentation\":\"Sets the color used to fill shapes. For example, if you run **fill(204, 102, 0)**, all subsequent shapes will be filled with orange. This color is either specified in terms of the RGB or HSB color depending on the current [`PcolorMode`](/doc/PcolorMode). The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\nThe value for the \\\"gray\\\" parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\nTo change the color of an image or a texture, use [`Ptint`](/doc/Ptint).\\n\\n[Link to original Processing doc](https://processing.org/reference/fill_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pfill\"},{\"name\":\"Pfilter\",\"detail\":\"Pfilter( pg:PGRAPHICS kind:STRING ): pg:PGRAPHICS\\nPfilter( pg:PGRAPHICS kind:STRING param:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Filters the display window using a preset filter or with a custom shader. Using a shader with `Pfilter` is much faster than without. Shaders require the P2D or P3D renderer in size().\\n\\n\\nThe presets options are:\\n\\n+ **THRESHOLD** Converts the image to black and white pixels depending if they are above or below the threshold defined by the level parameter. The parameter must be between 0.0 (black) and 1.0 (white). If no level is specified, 0.5 is used.\\n+ **GRAY** Converts any colors in the image to grayscale equivalents. No parameter is used.\\n+ **OPAQUE** Sets the alpha channel to entirely opaque. No parameter is used.\\n+ **INVERT** Sets each pixel to its inverse value. No parameter is used.\\n+ **POSTERIZE** Limits each channel of the image to the number of colors specified as the parameter. The parameter can be set to values between 2 and 255, but results are most noticeable in the lower ranges.\\n+ **BLUR** Executes a Guassian blur with the level parameter specifying the extent of the blurring. If no parameter is used, the blur is equivalent to Guassian blur of radius 1. Larger values increase the blur.\\n+ **ERODE** Reduces the light areas. No parameter is used.\\n+ **DILATE** Increases the light areas. No parameter is used.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/filter_.html)\\n\\n@param `kind` Either THRESHOLD, GRAY, OPAQUE, INVERT, POSTERIZE, BLUR, ERODE, or DILATE\\n\\n@param `param` unique for each, see above\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.2.17\",\"OPB64name\":\"J5OdQ6G_RV\"},{\"name\":\"Pget\",\"detail\":\"Pget( pg:PGRAPHICS ): pg:PGRAPHICS img:PIMAGE\\nPget( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS color:LONG\\nPget( pg:PGRAPHICS x:NUMBER y:NUMBER w:NUMBER h:NUMBER ): pg:PGRAPHICS img:PIMAGE\",\"documentation\":\"Reads the color of any pixel or grabs a section of an image. If no parameters are specified, the entire image is returned (same as `Pcopy`). Use the **x** and **y** parameters to get the value of one pixel. Get a section of the display window by specifying additional **w** and **h** parameters. When getting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\nIf the pixel requested is outside of the image window, black is returned. The numbers returned are scaled according to the current color ranges, but only RGB values are returned by this function. For example, even though you may have drawn a shape with **colorMode(HSB)**, the numbers returned will be in RGB format.\\n\\nGetting the color of a single pixel with **get(x, y)** is easy, but not as fast as grabbing the data directly from [`Ppixels`](/doc/Ppixels).\\n\\n[Link to original Processing doc](https://processing.org/reference/get_.html)\\n\\n@param `x` int: x-coordinate of the pixel\\n\\n@param `y` int: y-coordinate of the pixel\\n\\n@param `w` int: width of pixel rectangle to get\\n\\n@param `h` int: height of pixel rectangle to get\\n\\n@param `img` PIMAGE object\\n\\n@param `color` Color of the pixel, 32bits ARGB format.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pget\"},{\"name\":\"Pgreen\",\"detail\":\"Pgreen( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS green:DOUBLE\",\"documentation\":\"Extracts the green value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pgreen` function is easy to use and understand, but it is slower than bit shifting. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/green_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `green` Green component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pgreen\"},{\"name\":\"Phue\",\"detail\":\"Phue( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS hue:DOUBLE\",\"documentation\":\"Extracts the hue value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/hue_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `hue` Hue component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Phue\"},{\"name\":\"Pimage\",\"detail\":\"Pimage( pg:PGRAPHICS img:PIMAGE a:NUMBER b:NUMBER ): pg:PGRAPHICS\\nPimage( pg:PGRAPHICS img:PIMAGE a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"The `Pimage` function draws a Pimage (see [`Pdecode`](/doc/Pdecode)) on a PGraphic object.\\n\\nThe **img** parameter specifies the image to display and by default the **a** and **b** parameters define the location of its upper-left corner. The image is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PimageMode`](/doc/PimageMode) function can be used to change the way these parameters draw the image.\\n\\nThe color of an image may be modified with the [`Ptint`](/doc/Ptint) function. This function will maintain transparency for GIF and PNG images.\\n\\n[Link to original Processing doc](https://processing.org/reference/image_.html)\\n\\n@param `img` PImage: the image to display\\n\\n@param `a` float: x-coordinate of the image by default\\n\\n@param `b` float: y-coordinate of the image by default\\n\\n@param `c` float: width to display the image by default\\n\\n@param `d` float: height to display the image by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pimage\"},{\"name\":\"PimageMode\",\"detail\":\"PimageMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Modifies the location from which images are drawn by changing the way in which parameters given to [`Pimage`](/doc/Pimage) are intepreted.\\n\\nThe default mode is **imageMode(CORNER)**, which interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the upper-left corner of the image. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n**imageMode(CENTER)** interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the image's center point. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/imageMode_.html)\\n\\n@param `mode` could be CORNER or CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PimageMode\"},{\"name\":\"Plerp\",\"detail\":\"Plerp( pg:PGRAPHICS start:NUMBER stop:NUMBER amt:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Calculates a number between two numbers at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 equal to the first point, 0.1 is very near the first point, 0.5 is half-way in between, etc. The lerp function is convenient for creating motion along a straight path and for drawing dotted lines, or any linear interpolation.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerp_.html)\\n\\n@param `start` first value\\n\\n@param `stop` second value\\n\\n@param `amt` float between 0.0 and 1.0\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Plerp\"},{\"name\":\"PlerpColor\",\"detail\":\"PlerpColor( pg:PGRAPHICS c1:NUMBER c2:NUMBER amt:NUMBER ): pg:PGRAPHICS outcolor:LONG\",\"documentation\":\"Calculates a color between two colors at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 is equal to the first point, 0.1 is very near the first point, 0.5 is halfway in between, etc. \\n\\nAn amount below 0 will be treated as 0. Likewise, amounts above 1 will be capped at 1. This is different from the behavior of `Plerp`, but necessary because otherwise numbers outside the range will produce strange and unexpected colors.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerpColor_.html)\\n\\n@param `c1` interpolate from this color\\n\\n@param `c2` interpolate to this color\\n\\n@param `amt` between 0.0 and 1.0\\n\\n@param `outcolor` the interpolated result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PlerpColor\"},{\"name\":\"Pline\",\"detail\":\"Pline( pg:PGRAPHICS x1:NUMBER y1:NUMBER x2:NUMBER y2:NUMBER ): pg:PGRAPHICS\\nPline( pg:PGRAPHICS x1:NUMBER y1:NUMBER z1:NUMBER x2:NUMBER y2:NUMBER z2:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Draws a line (a direct path between two points) to the screen. The version of `Pline` with four parameters draws the line in 2D.  To color a line, use the [`Pstroke`](/doc/Pstroke) function. A line cannot be filled, therefore the [`Pfill`](/doc/Pfill) function will not affect the color of a line. 2D lines are drawn with a width of one pixel by default, but this can be changed with the [`PstrokeWeight`](/doc/PstrokeWeight) function. The version with six parameters allows the line to be placed anywhere within XYZ space. Drawing this shape in 3D with the **z** parameter requires the P3D parameter.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/line_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pline\"},{\"name\":\"PloadShape\",\"detail\":\"PloadShape( svg:STRING ): Pshape:PSHAPE\",\"documentation\":\"`PloadShape` can load a [SVG image](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) and return a PSHAPE object. WarpScript does not support [OBJ files](https://en.wikipedia.org/wiki/Wavefront_.obj_file) yet. \\n\\nThis feature is experimental, some files may render empty. \\n\\n@param `svg` A one line or a multiline SVG string.\\n\\n@param `Pshape` A PSHAPE object which can be used with Pshape.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"PloadShape\"},{\"name\":\"Pmag\",\"detail\":\"Pmag( pg:PGRAPHICS a:NUMBER b:NUMBER ): pg:PGRAPHICS mag:DOUBLE\",\"documentation\":\"Calculates the magnitude (or length) of a vector. A vector is a direction in space commonly used in computer graphics and linear algebra. Because it has no \\\"start\\\" position, the magnitude of a vector can be thought of as the distance from the coordinate 0,0 to its x,y value. Therefore, `Pmag` is a shortcut for writing **0 0 x y Pdist**. It is exactly the same as warpscript function [`HYPOT`](/doc/HYPOT).\\n\\n3D is not yet supported.\\n\\n[Link to original Processing doc](https://processing.org/reference/mag_.html)\\n\\n@param `a` first value\\n\\n@param `b` second value\\n\\n@param `mag` result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmag\"},{\"name\":\"Pmap\",\"detail\":\"Pmap( pg:PGRAPHICS value:DOUBLE start1:DOUBLE stop1:DOUBLE start2:DOUBLE stop2:DOUBLE ): pg:PGRAPHICS output:DOUBLE\",\"documentation\":\"Re-maps a number from one range to another.\\n\\nIn the first example, the number 25 is converted from a value in the range of 0 to 100 into a value that ranges from the left edge of the window (0) to the right edge (width).\\n\\n\\nAs shown in the second example, numbers outside of the range are not clamped to the minimum and maximum parameters values, because out-of-range values are often intentional and useful.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/map_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start1` lower bound of the value's current range\\n\\n@param `stop1` upper bound of the value's current range\\n\\n@param `start2` lower bound of the value's target range\\n\\n@param `stop2` upper bound of the value's target range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmap\"},{\"name\":\"Pmask\",\"detail\":\"Pmask( orginal_img:PIMAGE mask_image:PIMAGE ): masked_image:PIMAGE\\nPmask( orginal_grp:PGRAPHICS mask_image:PIMAGE ): masked_grp:PGRAPHICS\\nPmask( orginal_img:PIMAGE mask_grp:PGRAPHICS ): masked_image:PIMAGE\\nPmask( orginal_grp:PGRAPHICS mask_grp:PGRAPHICS ): masked_grp:PGRAPHICS\",\"documentation\":\"The `Pmask` function copies the blue channel of an image to the alpha channel of an other.\\n\\nAs **PGRAPHICS** intances are alse **PIMAGE** instances, you can use this function with **PGRAPHICS**.\\n\\n@param `orginal_img` PImage to be masked\\n\\n@param `mask_image` Pimage to serve as mask\\n\\n@param `masked_image` Masked Pimage\\n\\n@param `orginal_grp` PGraphics to be masked\\n\\n@param `mask_grp` PGraphics to serve as mask\\n\\n@param `masked_grp` Masked PGraphics\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.7.0\",\"OPB64name\":\"Pmask\"},{\"name\":\"PnoClip\",\"detail\":\"PnoClip( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Disables the clipping previously started by the [`Pclip`](/doc/Pclip) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noClip_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoClip\"},{\"name\":\"PnoFill\",\"detail\":\"PnoFill( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Disables filling geometry. If both [`PnoStroke`](/doc/PnoStroke) and `PnoFill` are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noFill_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoFill\"},{\"name\":\"PnoStroke\",\"detail\":\"PnoStroke( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Disables drawing the stroke (outline). If both `PnoStroke` and [`PnoFill`](/doc/PnoFill) are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noStroke_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoStroke\"},{\"name\":\"PnoTint\",\"detail\":\"PnoTint( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Removes the current fill value for displaying images and reverts to displaying images with their original hues.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noTint_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoTint\"},{\"name\":\"Pnorm\",\"detail\":\"Pnorm( pg:PGRAPHICS value:NUMBER start:NUMBER stop:NUMBER ): pg:PGRAPHICS output:DOUBLE\",\"documentation\":\"Normalizes a number from another range into a value between 0 and 1. Identical to `value low high 0 1 Pmap`.\\n\\nNumbers outside of the range are not clamped to 0 and 1, because out-of-range values are often intentional and useful. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/norm_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start` lower bound of the value's current range\\n\\n@param `stop` upper bound of the value's current range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pnorm\"},{\"name\":\"Ppixels\",\"detail\":\"Ppixels( pg:PGRAPHICS ): pg:PGRAPHICS pixels:LIST<LONG>\\nPpixels( img:PIMAGE ): pixels:LIST<LONG>\",\"documentation\":\"Returns an array containing the values for all the pixels in the display window. These values are of the color datatype. This array is the size of the display window. For example, if the image is 100x100 pixels, there will be 10000 values and if the window is 200x300 pixels, there will be 60000 values. After **pixels** has been modified, the [`PupdatePixels`](/doc/PupdatePixels) function must be run to update the content of the display window.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pixels.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppixels\"},{\"name\":\"Ppoint\",\"detail\":\"Ppoint( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPpoint( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Draws a point, a coordinate in space at the dimension of one pixel. The first parameter is the horizontal value for the point, the second value is the vertical value for the point.\\n\\nUse [`Pstroke`](/doc/Pstroke) to set the color of a `Ppoint`.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/point_.html)\\n\\n@param `x` x-coordinate of the point\\n\\n@param `y` y-coordinate of the point\\n\\n@param `z` z-coordinate of the point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppoint\"},{\"name\":\"PpopMatrix\",\"detail\":\"PpopMatrix( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Pops the current transformation matrix off the matrix stack. Understanding pushing and popping requires understanding the concept of a matrix stack. The [`PpushMatrix`](/doc/PpushMatrix) function saves the current coordinate system to the stack and `PpopMatrix` restores the prior coordinate system. [`PpushMatrix`](/doc/PpushMatrix) and `PpopMatrix` are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopMatrix\"},{\"name\":\"PpopStyle\",\"detail\":\"PpopStyle( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"The [`PpushStyle`](/doc/PpushStyle) function saves the current style settings and `PpopStyle` restores the prior settings; these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with [`PpushStyle`](/doc/PpushStyle), it builds on the current style information. The [`PpushStyle`](/doc/PpushStyle) and `PpopStyle` functions can be nested to provide more control (see example for a demonstration.)\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopStyle\"},{\"name\":\"PpushMatrix\",\"detail\":\"PpushMatrix( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Pushes the current transformation matrix onto the matrix stack. Understanding `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) requires understanding the concept of a matrix stack. The `PpushMatrix` function saves the current coordinate system to the stack and [`PpopMatrix`](/doc/PpopMatrix) restores the prior coordinate system. `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushMatrix\"},{\"name\":\"PpushStyle\",\"detail\":\"PpushStyle( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"The `PpushStyle` function saves the current style settings and [`PpopStyle`](/doc/PpopStyle) restores the prior settings. Note that these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with `PpushStyle`, it builds on the current style information. The `PpushStyle` and [`PpopStyle`](/doc/PpopStyle) functions can be nested to provide more control. (See example for a demonstration.)\\n\\n\\nThe style information controlled by the following functions are included in the style:fill, stroke, tint, strokeWeight, strokeCap, strokeJoin, imageMode, rectMode, ellipseMode, shapeMode, colorMode, textAlign, textFont, textMode, textSize, textLeading, emissive, specular, shininess, ambient.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushStyle\"},{\"name\":\"Pquad\",\"detail\":\"Pquad( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"A quad is a quadrilateral, a four sided polygon. It is similar to a rectangle, but the angles between its edges are not constrained to ninety degrees. The first pair of parameters (x1,y1) sets the first vertex and the subsequent pairs should proceed clockwise or counter-clockwise around the defined shape.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quad_.html)\\n\\n@param `x1` float: x-coordinate of the first corner\\n\\n@param `y1` float: y-coordinate of the first corner\\n\\n@param `x2` float: x-coordinate of the second corner\\n\\n@param `y2` float: y-coordinate of the second corner\\n\\n@param `x3` float: x-coordinate of the third corner\\n\\n@param `y3` float: y-coordinate of the third corner\\n\\n@param `x4` float: x-coordinate of the fourth corner\\n\\n@param `y4` float: y-coordinate of the fourth corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pquad\"},{\"name\":\"PquadraticVertex\",\"detail\":\"PquadraticVertex( pg:PGRAPHICS cx:DOUBLE cy:DOUBLE x3:DOUBLE y3:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Specifies vertex coordinates for quadratic Bezier curves. Each call to `PquadraticVertex` defines the position of one control point and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PquadraticVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when there is no MODE parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quadraticVertex_.html)\\n\\n@param `cx` the x-coordinate of the control point\\n\\n@param `cy` the y-coordinate of the control point\\n\\n@param `x3` the x-coordinate of the anchor point\\n\\n@param `y3` the y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PquadraticVertex\"},{\"name\":\"Prect\",\"detail\":\"Prect( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\\nPrect( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER r:NUMBER ): pg:PGRAPHICS\\nPrect( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER tl:NUMBER tr:NUMBER br:NUMBER bl:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Draws a rectangle to the screen. A rectangle is a four-sided shape with every angle at ninety degrees. By default, the first two parameters set the location of the upper-left corner, the third sets the width, and the fourth sets the height. The way these parameters are interpreted, however, may be changed with the [`PrectMode`](/doc/PrectMode) function.\\n\\n\\n\\nTo draw a rounded rectangle, add a fifth parameter, which is used as the radius value for all four corners.\\n\\n\\n\\nTo use a different radius value for each corner, include eight parameters. When using eight parameters, the latter four set the radius of the arc at each corner separately, starting with the top-left corner and moving clockwise around the rectangle.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rect_.html)\\n\\n@param `a` float: x-coordinate of the rectangle by default\\n\\n@param `b` float: y-coordinate of the rectangle by default\\n\\n@param `c` float: width of the rectangle by default\\n\\n@param `d` float: height of the rectangle by default\\n\\n@param `r` float: radii for all four corners\\n\\n@param `tl` float: radius for top-left corner\\n\\n@param `tr` float: radius for top-right corner\\n\\n@param `br` float: radius for bottom-right corner\\n\\n@param `bl` float: radius for bottom-left corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Prect\"},{\"name\":\"PrectMode\",\"detail\":\"PrectMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Modifies the location from which rectangles are drawn by changing the way in which parameters given to [`Prect`](/doc/Prect) are intepreted.\\n\\nThe default mode is **CORNER**, which interprets the first two parameters of [`Prect`](/doc/Prect) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**CORNERS** interprets the first two parameters of [`Prect`](/doc/Prect) as the location of one corner, and the third and fourth parameters as the location of the opposite corner.\\n\\n**CENTER** interprets the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**RADIUS** also uses the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, but uses the third and fourth parameters to specify half of the shape's width and height.\\n\\nThe parameter must be written in ALL CAPS because Processing is a case-sensitive language.\\n\\n[Link to original Processing doc](https://processing.org/reference/rectMode_.html)\\n\\n@param `mode` either CORNER, CORNERS, CENTER, or RADIUS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PrectMode\"},{\"name\":\"Pred\",\"detail\":\"Pred( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS red:DOUBLE\",\"documentation\":\"Extracts the red value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pred` function is easy to use and understand, but it is slower than bit shifting. \\n\\n[Link to original Processing doc](https://processing.org/reference/red_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `red` Red component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pred\"},{\"name\":\"PresetMatrix\",\"detail\":\"PresetMatrix( pg:PGRAPHICS ): pg:PGRAPHICS\",\"documentation\":\"Replaces the current matrix with the identity matrix. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/resetMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PresetMatrix\"},{\"name\":\"Presize\",\"detail\":\"Presize( img:PIMAGE width:LONG height:LONG ): resized:PIMAGE\",\"documentation\":\"The `Presize` function takes a **PIMAGE**, a width and a height and resizes the **PIMAGE**. This resizing does bilinear interpolation, which results in a smoother image than using [`Pimage`](/doc/Pimage) to resize.\\n\\n@param `height` New height of the image.\\n\\n@param `width` New width of the image.\\n\\n@param `img` Image to be resized\\n\\n@param `resized` Resized image.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.7.3\",\"OPB64name\":\"Presize\"},{\"name\":\"Protate\",\"detail\":\"Protate( pg:PGRAPHICS angle:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Rotates the amount specified by the **angle** parameter. Angles must be specified in radians (values from **0** to **2 PI**). \\n\\nThe coordinates are always rotated around their relative position to the origin. Positive numbers rotate objects in a clockwise direction and negative numbers rotate in the couterclockwise direction. Transformations apply to everything that happens afterward, and subsequent calls to the function compound the effect. For example, calling `pi 2.0 / Protate` once and then calling `pi 2.0 / Protate` a second time is the same as a single `pi Protate`. \\n \\n\\nTechnically, `Protate` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rotate_.html)\\n\\n@param `angle` angle of rotation specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Protate\"},{\"name\":\"Psaturation\",\"detail\":\"Psaturation( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS saturation:DOUBLE\",\"documentation\":\"Extracts the saturation value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/saturation_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `saturation` Saturation component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psaturation\"},{\"name\":\"Pscale\",\"detail\":\"Pscale( pg:PGRAPHICS s:NUMBER ): pg:PGRAPHICS\\nPscale( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPscale( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Increases or decreases the size of a shape by expanding and contracting vertices. Objects always scale from their relative origin to the coordinate system. Scale values are specified as decimal percentages. For example, the function call `2.0 Pscale` increases the dimension of a shape by 200%.\\n\\n\\n\\nTransformations apply to everything that happens after and subsequent calls to the function multiply the effect. For example, calling `2.0 Pscale` and then `1.5 Pscale` is the same as `3.0 Pscale`. This function can be further controlled with [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/scale_.html)\\n\\n@param `s` percentage to scale the object\\n\\n@param `x` percentage to scale the object in the x-axis\\n\\n@param `y` percentage to scale the object in the y-axis\\n\\n@param `z` percentage to scale the object in the z-axis\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pscale\"},{\"name\":\"Pset\",\"detail\":\"Pset( pg:PGRAPHICS x:NUMBER y:NUMBER c:NUMBER ): pg:PGRAPHICS\\nPset( pg:PGRAPHICS x:NUMBER y:NUMBER img:PIMAGE ): pg:PGRAPHICS\",\"documentation\":\"Changes the color of any pixel, or writes an image directly to the display window.\\n\\n\\n\\nThe **x** and **y** parameters specify the pixel to change and the **c** parameter specifies the color value. The **c** parameter is interpreted according to the current color mode.  (The default color mode is RGB values from 0 to 255.)  When setting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\n\\n\\nSetting the color of a single pixel with **set(x, y)** is easy, but not as fast as putting the data directly into the list of pixels returned by  [`Ppixels`](/doc/Ppixels).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/set_.html)\\n\\n@param `x` X-coordinate of the pixel\\n\\n@param `y` Y-coordinate of the pixel\\n\\n@param `c` Any value of the color datatype\\n\\n@param `img` Image to copy into the original image\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pset\"},{\"name\":\"Pshape\",\"detail\":\"Pshape( pg:PGRAPHICS shape:PSHAPE ): pg:PGRAPHICS\\nPshape( pg:PGRAPHICS shape:PSHAPE x:DOUBLE y:DOUBLE ): pg:PGRAPHICS\\nPshape( pg:PGRAPHICS shape:PSHAPE a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Draws shapes to the display window. Shapes must be loaded with [`PloadShape`](/doc/PloadShape). Processing currently works with SVG, OBJ, and custom-created shapes. WrapScript only support SVG. The **shape** parameter specifies the shape to display and the coordinate parameters define the location of the shape from its upper-left corner. The shape is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PshapeMode`](/doc/PshapeMode) function can be used to change the way these parameters are interpreted.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shape_.html)\\n\\n@param `shape` the shape to display\\n\\n@param `x` x-coordinate of the shape\\n\\n@param `y` y-coordinate of the shape\\n\\n@param `a` x-coordinate of the shape\\n\\n@param `b` y-coordinate of the shape\\n\\n@param `c` width to display the shape\\n\\n@param `d` height to display the shape\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"Pshape\"},{\"name\":\"PshapeMode\",\"detail\":\"PshapeMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Modifies the location from which shapes draw. The default mode is **shapeMode(CORNER)**, which specifies the location to be the upper left corner of the shape and uses the third and fourth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. The syntax **shapeMode(CORNERS)** uses the first and second parameters of [`Pshape`](/doc/Pshape) to set the location of one corner and uses the third and fourth parameters to set the opposite corner. The syntax **shapeMode(CENTER)** draws the shape from its center point and uses the third and forth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shapeMode_.html)\\n\\n@param `mode` int: either CORNER, CORNERS, CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshapeMode\"},{\"name\":\"PshearX\",\"detail\":\"PshearX( pg:PGRAPHICS angle:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Shears a shape around the x-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearX` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearX_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearX\"},{\"name\":\"PshearY\",\"detail\":\"PshearY( pg:PGRAPHICS angle:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Shears a shape around the y-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearY` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearY_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearY\"},{\"name\":\"Psize\",\"detail\":\"Psize( img:PIMAGE ): width:LONG height:LONG\\nPsize( pg:PGRAPHICS ): width:LONG height:LONG\",\"documentation\":\"The `Psize` function returns the pixel `width` and `height` of a Pimage or PGraphics object.\\n\\n@param `img` PImage instance to measure.\\n\\n@param `pg` PGraphics instance to measure.\\n\\n@param `height` Object height in pixels.\\n\\n@param `width` Object height in pixels.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.6.0\",\"OPB64name\":\"Psize\"},{\"name\":\"Psphere\",\"detail\":\"Psphere( pg:PGRAPHICS r:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"A sphere is a hollow ball made from tessellated triangles.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphere_.html)\\n\\n@param `r` the radius of the sphere\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psphere\"},{\"name\":\"PsphereDetail\",\"detail\":\"PsphereDetail( pg:PGRAPHICS res:NUMBER ): pg:PGRAPHICS\\nPsphereDetail( pg:PGRAPHICS ures:NUMBER vres:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Controls the detail used to render a sphere by adjusting the number of vertices of the sphere mesh. The default resolution is 30, which creates a fairly detailed sphere definition with vertices every 360/30 = 12 degrees. If you are going to render a great number of spheres per frame, it is advised to reduce the level of detail using this function. The setting stays active until `PsphereDetail` is called again with a new parameter and so should **not** be called prior to every [`Psphere`](/doc/Psphere) statement, unless you wish to render spheres with different settings, e.g. using less detail for smaller spheres or ones further away from the camera. To control the detail of the horizontal and vertical resolution independently, use the version of the functions with two parameters.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphereDetail_.html)\\n\\n@param `res` int: number of segments (minimum 3) used per full circle revolution\\n\\n@param `ures` int: number of segments used longitudinally per full circle revolutoin\\n\\n@param `vres` int: number of segments used latitudinally from top to bottom\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PsphereDetail\"},{\"name\":\"Pstroke\",\"detail\":\"Pstroke( pg:PGRAPHICS argb:LONG ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS gray:DOUBLE ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS argb:LONG alpha:DOUBLE ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS gray:DOUBLE alpha:DOUBLE ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the color used to draw lines and borders around shapes. This color is either specified in terms of the RGB or HSB color depending on the current **colorMode** The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/stroke_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pstroke\"},{\"name\":\"PstrokeCap\",\"detail\":\"PstrokeCap( pg:PGRAPHICS cap:STRING ): pg:PGRAPHICS\",\"documentation\":\"Sets the style for rendering line endings. These ends are either squared, extended, or rounded, each of which specified with the corresponding parameters: SQUARE, PROJECT, and ROUND. The default cap is ROUND.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeCap_.html)\\n\\n@param `cap` Either SQUARE, PROJECT, or ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeCap\"},{\"name\":\"PstrokeJoin\",\"detail\":\"PstrokeJoin( pg:PGRAPHICS join:STRING ): pg:PGRAPHICS\",\"documentation\":\"Sets the style of the joints which connect line segments. These joints are either mitered, beveled, or rounded and specified with the corresponding parameters MITER, BEVEL, and ROUND. The default joint is MITER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeJoin_.html)\\n\\n@param `join` Either MITER, BEVEL, ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeJoin\"},{\"name\":\"PstrokeWeight\",\"detail\":\"PstrokeWeight( pg:PGRAPHICS weight:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the width of the stroke used for lines, points, and the border around shapes. All widths are set in units of pixels.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight. See [`Ppoint`](/doc/Ppoint) example.\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeWeight_.html)\\n\\n@param `weight` The weight (in pixels) of the stroke.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeWeight\"},{\"name\":\"Ptext\",\"detail\":\"Ptext( pg:PGRAPHICS s:STRING x:DOUBLE y:DOUBLE ): pg:PGRAPHICS\\nPtext( pg:PGRAPHICS s:STRING x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"Draws text to the screen. Displays the information specified in the first parameter on the screen in the position specified by the additional parameters. A default font will be used unless a font is set with the [`PtextFont`](/doc/PtextFont) function and a default size will be used unless a font is set with [`PtextSize`](/doc/PtextSize). Change the color of the text with the [`Pfill`](/doc/Pfill) function. The text displays in relation to the [`PtextAlign`](/doc/PtextAlign) function, which gives the option to draw to the left, right, and center of the coordinates.\\n\\n\\n\\nThe **x2** and **y2** parameters define a rectangular area to display within and may only be used with string data. When these parameters are specified, they are interpreted based on the current [`PrectMode`](/doc/PrectMode) setting. Text that does not fit completely within the rectangle specified will not be drawn to the screen.\\n\\n\\n\\nNote that Processing now lets you call `Ptext` without first specifying a PFont with [`PtextFont`](/doc/PtextFont). In that case, a generic sans-serif font will be used instead.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/text_.html)\\n\\n@param `s` the string to be displayed\\n\\n@param `x` by default, x-coordinate of text\\n\\n@param `y` by default, y-coordinate of text\\n\\n@param `x1` by default, the x-coordinate of text, see PrectMode for more info\\n\\n@param `y1` by default, the y-coordinate of text, see PrectMode for more info\\n\\n@param `x2` by default, the width of the text box, see PrectMode for more info\\n\\n@param `y2` by default, the height of the text box, see PrectMode for more info\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptext\"},{\"name\":\"PtextAlign\",\"detail\":\"PtextAlign( pg:PGRAPHICS alignX:STRING ): pg:PGRAPHICS\\nPtextAlign( pg:PGRAPHICS alignX:STRING alignY:STRING ): pg:PGRAPHICS\",\"documentation\":\"Sets the current alignment for drawing text. The parameters LEFT, CENTER, and RIGHT set the display characteristics of the letters in relation to the values for the **x** and **y** parameters of the [`Ptext`](/doc/Ptext) function.\\n\\n\\n\\nAn optional second parameter can be used to vertically align the text. BASELINE is the default, and the vertical alignment will be reset to BASELINE if the second parameter is not used. The TOP and CENTER parameters are straightforward. The BOTTOM parameter offsets the line based on the current [`PtextDescent`](/doc/PtextDescent). For multiple lines, the final line will be aligned to the bottom, with the previous lines appearing above it.\\n\\n\\n\\nWhen using [`Ptext`](/doc/Ptext) with width and height parameters, BASELINE is ignored, and treated as TOP. (Otherwise, text would by default draw outside the box, since BASELINE is the default setting. BASELINE is not a useful drawing mode for text drawn in a rectangle.)\\n\\n\\n\\nThe vertical alignment is based on the value of [`PtextAscent`](/doc/PtextAscent), which many fonts do not specify correctly. It may be necessary to use a hack and offset by a few pixels by hand so that the offset looks correct. To do this as less of a hack, use some percentage of [`PtextAscent`](/doc/PtextAscent) or [`PtextDescent`](/doc/PtextDescent) so that the hack works even if you change the size of the font.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAlign_.html)\\n\\n@param `alignX` Horizontal alignment, either LEFT, CENTER, or RIGHT\\n\\n@param `alignY` Vertical alignment, either TOP, BOTTOM, CENTER, or BASELINE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAlign\"},{\"name\":\"PtextAscent\",\"detail\":\"PtextAscent( pg:PGRAPHICS ): pg:PGRAPHICS ascent:DOUBLE\",\"documentation\":\"Returns ascent of the current font at its current size. This information is useful for determining the height of the font above the baseline. For example, adding the `PtextAscent` and [`PtextDescent`](/doc/PtextDescent) values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAscent_.html)\\n\\n@param `ascent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAscent\"},{\"name\":\"PtextDescent\",\"detail\":\"PtextDescent( pg:PGRAPHICS ): pg:PGRAPHICS descent:DOUBLE\",\"documentation\":\"Returns descent of the current font at its current size. This information is useful for determining the height of the font below the baseline. For example, adding the [`PtextAscent`](/doc/PtextAscent) and `PtextDescent` values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textDescent_.html)\\n\\n@param `descent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextDescent\"},{\"name\":\"PtextFont\",\"detail\":\"PtextFont( pg:PGRAPHICS font:PFONT ): pg:PGRAPHICS\\nPtextFont( pg:PGRAPHICS font:PFONT size:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the current font that will be drawn with the [`Ptext`](/doc/Ptext) function. Fonts must be created for Processing with [`PcreateFont`](/doc/PcreateFont) before they can be used. The font set through `PtextFont` will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textFont_.html)\\n\\n@param `font` Any variable of the type PFont\\n\\n@param `size` the size of the letters in pixel.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextFont\"},{\"name\":\"PtextLeading\",\"detail\":\"PtextLeading( pg:PGRAPHICS leading:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the spacing between lines of text in units of pixels. This setting will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.  Note, however, that the leading is reset by [`PtextSize`](/doc/PtextSize). For example, if the leading is set to 20 with `20 PtextLeading`, then if `48 PtextSize` is run at a later point, the leading will be reset to the default for the text size of 48.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textLeading_.html)\\n\\n@param `leading` The size in pixels for spacing between lines\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextLeading\"},{\"name\":\"PtextMode\",\"detail\":\"PtextMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"documentation\":\"Sets the way text draws to the screen, either as texture maps or as vector geometry. The default **textMode(MODEL)**, uses textures to render the fonts. The **textMode(SHAPE)** mode draws text using the glyph outlines of individual characters rather than as textures. This mode is only supported with the **PDF** and **P3D** renderer settings. With the **PDF** renderer, you must call **textMode(SHAPE)** before any other drawing occurs. If the outlines are not available, then **textMode(SHAPE)** will be ignored and **textMode(MODEL)** will be used instead.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textMode_.html)\\n\\n@param `mode` int: either MODEL or SHAPE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextMode\"},{\"name\":\"PtextSize\",\"detail\":\"PtextSize( pg:PGRAPHICS size:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the current font size. This size will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function. Font size is measured in units of pixels.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textSize_.html)\\n\\n@param `size` float: the size of the letters in units of pixels\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextSize\"},{\"name\":\"PtextWidth\",\"detail\":\"PtextWidth( pg:PGRAPHICS str:STRING ): pg:PGRAPHICS w:DOUBLE\",\"documentation\":\"Calculates and returns the width of any character or text string.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textWidth_.html)\\n\\n@param `str` The String of characters to measure\\n\\n@param `w` The width of the input string\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextWidth\"},{\"name\":\"Ptint\",\"detail\":\"Ptint( pg:PGRAPHICS argb:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS gray:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS argb:NUMBER alpha:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Sets the fill value for displaying images. Images can be tinted to specified colors or made transparent by including an alpha value.\\n\\n\\n\\nTo apply transparency to an image without affecting its color, use white as the tint color and specify an alpha value. For instance, **tint(255, 128)** will make an image 50pc transparent (assuming the default alpha range of 0-255, which can be changed with [`PcolorMode`](/doc/PcolorMode)).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/tint_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `alpha` opacity of the image\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptint\"},{\"name\":\"PtoImage\",\"detail\":\"PtoImage( pg:PGRAPHICS ): img:PIMAGE\",\"documentation\":\"The `PtoImage` function transforms a `PGRAPHICS` to a `PIMAGE`.\\n\\nThe `PGRAPHICS` can still be used after the transformation as this function copies the pixel values. This is equivalent to `Pencode Pdecode` but it is a lot faster.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing Pimage object.\\n\\n\",\"tags\":[\"processing\"],\"since\":\"2.1.0\",\"OPB64name\":\"PtoImage\"},{\"name\":\"Ptranslate\",\"detail\":\"Ptranslate( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"Specifies an amount to displace objects within the display window. The **x** parameter specifies left/right translation, the **y** parameter specifies up/down translation.\\n\\n\\n\\nTransformations are cumulative and apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling **50 0 Ptranslate** and then **20 0 Ptranslate** is the same as **70 0 Ptranslate**. This function can be further controlled by using [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/translate_.html)\\n\\n@param `x` left/right translation\\n\\n@param `y` up/down translation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptranslate\"},{\"name\":\"Ptriangle\",\"detail\":\"Ptriangle( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE ): pg:PGRAPHICS\",\"documentation\":\"A triangle is a plane created by connecting three points. The first two arguments specify the first point, the middle two arguments specify the second point, and the last two arguments specify the third point. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/triangle_.html)\\n\\n@param `x1` float: x-coordinate of the first point\\n\\n@param `y1` float: y-coordinate of the first point\\n\\n@param `x2` float: x-coordinate of the second point\\n\\n@param `y2` float: y-coordinate of the second point\\n\\n@param `x3` float: x-coordinate of the third point\\n\\n@param `y3` float: y-coordinate of the third point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptriangle\"},{\"name\":\"PupdatePixels\",\"detail\":\"PupdatePixels( pg:PGRAPHICS pixels:LIST<LONG> ): pg:PGRAPHICS\\nPupdatePixels( img:PIMAGE pixels:LIST<LONG> ): img:PIMAGE\",\"documentation\":\"Updates the display window with the data in the **pixels[]** array. Use in conjunction with [`Ppixels`](/doc/Ppixels). If you are only reading pixels from the array, there's no need to call `PupdatePixels` - updating is only necessary to apply changes.\\n\\n[Link to original Processing doc](https://processing.org/reference/updatePixels_.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PupdatePixels\"},{\"name\":\"Pvertex\",\"detail\":\"Pvertex( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPvertex( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\\nPvertex( pg:PGRAPHICS x:NUMBER y:NUMBER u:NUMBER v:NUMBER ): pg:PGRAPHICS\\nPvertex( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER u:NUMBER v:NUMBER ): pg:PGRAPHICS\",\"documentation\":\"All shapes are constructed by connecting a series of vertices. `Pvertex` is used to specify the vertex coordinates for points, lines, triangles, quads, and polygons. It is used exclusively within the [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/vertex_.html)\\n\\n@param `x` x-coordinate of the vertex\\n\\n@param `y` y-coordinate of the vertex\\n\\n@param `z` float: z-coordinate of the vertex\\n\\n@param `u` float: horizontal coordinate for the texture mapping\\n\\n@param `v` float: vertical coordinate for the texture mapping\\n\\n@param `pg` Processing graphic object\\n\\n\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pvertex\"},{\"name\":\"Q->\",\"detail\":\"Q->( input:LONG ): w:DOUBLE x:DOUBLE y:DOUBLE z:DOUBLE\",\"documentation\":\"The `Q->` function consumes on the stack a [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long and push back the quaternion into\\n4 doubles (w, x, y, z, with z being on top).\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `input` Quaternion representation\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"JHoy\"},{\"name\":\"QCONJUGATE\",\"detail\":\"QCONJUGATE( quaternion:LONG ): result:LONG\",\"documentation\":\"The `QCONJUGATE` function performs a [conjugation](https://en.wikipedia.org/wiki/Quaternion#Conjugation,_the_norm,_and_reciprocal) of a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the quaternion conjugate into a long.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `result` The conjugated quaternion\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QCONJUGATE\"},{\"name\":\"QDIVIDE\",\"detail\":\"QDIVIDE( q:LONG r:LONG ): result:LONG\",\"documentation\":\"The `QDIVIDE` function divides a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of dividing them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from division *q* by *r*\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QDIVIDE\"},{\"name\":\"QMULTIPLY\",\"detail\":\"QMULTIPLY( q:LONG r:LONG ): result:LONG\",\"documentation\":\"The `QMULTIPLY` function multiplies a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of multiplying them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from multiplication *q* by *r*\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QMULTIPLY\"},{\"name\":\"QROTATE\",\"detail\":\"QROTATE( x:DOUBLE y:DOUBLE z:DOUBLE quaternion:LONG ): x:DOUBLE y:DOUBLE z:DOUBLE\",\"documentation\":\"Rotates a vector by a [quaternion](https://en.wikipedia.org/wiki/Quaternion).\\n\\nThe `QROTATE` function consumes on the top of the stack three doubles representing a vector(x, y, z) and a long representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the vector rotated into 3 doubles (x, y, z with z being on top).\\n\\n@param `quaternion` The quaternion used to rotate the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATE\"},{\"name\":\"QROTATION\",\"detail\":\"QROTATION( quaternion:LONG ): x:DOUBLE y:DOUBLE z:DOUBLE angle:DOUBLE\",\"documentation\":\"The `QROTATION` extracts the axis and angle of the rotation represented by the [quaternion](https://en.wikipedia.org/wiki/Quaternion) on the stack.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `angle` The angle of rotation\\n\\n@param `x` The X axis\\n\\n@param `y` The Y axis\\n\\n@param `z` The Z axis\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATION\"},{\"name\":\"QUANTIZE\",\"detail\":\"QUANTIZE( gts:GTS bounds:LIST<DOUBLE> values:LIST ): qgts:GTS\\nQUANTIZE( lgts:LIST<GTS> bounds:LIST<DOUBLE> values:LIST ): lqgts:LIST<GTS>\",\"documentation\":\"The `QUANTIZE` function produces a quantized version of a Geo Time Series™ by replacing each value with a value from a finite list according to the interval the original value falls in. This function only works on numeric Geo Time Series™.\\nThis function can help to \\\"discretify\\\" data before calling [`VALUEHISTOGRAM`](/doc/VALUEHISTOGRAM).\\nThe list of intervals is defined as: [-∞,bounds<sub>0</sub>], (bounds<sub>0</sub>,bounds_<sub>1</sub>], (bounds<sub>1</sub>,bounds<sub>2</sub>], ..., (bounds<sub>n-1</sub>,+∞]\\n\\n@param `values` List of `n+1` values, one for each interval defined by `bounds`. If empty, the list `[ `0` `1` ... `n+1` ]` will be used.\\n\\n@param `bounds` Sorted list of `n` finite bounds defining `n+1` intervals.\\n\\n@param `gts` Geo Time Series™ to quantize.\\n\\n@param `qgts` Quantized GTS.\\n\\n@param `lgts` List of Geo Time Series™ to quantize.\\n\\n@param `lqgts` List of quantized GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"QUANTIZE\"},{\"name\":\"RAND\",\"detail\":\"RAND(): num:DOUBLE\",\"documentation\":\"The `RAND` function pushes onto the stack a random floating point number between 0.0 (inclusive) and 1.0 (exlusive) generated by the default random generator.\\n\\nThis generation is cryptographically secure.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RAND\"},{\"name\":\"RANDOM\",\"detail\":\"RANDOM(): num:DOUBLE\",\"documentation\":\"The `RANDOM` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThis function is very similar to [SRAND](/doc/SRAND) except the seed is choosen pseudorandomly when the function is first called. Subsequent calls use the same generator.\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"RANDOM\"},{\"name\":\"RANDPDF\",\"detail\":\"RANDPDF( valueHistogram:MAP ): result:STRING\",\"documentation\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe result if a function pushed onto the stack. This function does not have any arguments.\\n\\nTo use the function pushed by `RANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.7\",\"OPB64name\":\"RANDPDF\"},{\"name\":\"RANGE\",\"detail\":\"RANGE( [ end:LONG ] ): output:LIST<LONG>\\nRANGE( [ start:LONG end:LONG ] ): output:LIST<LONG>\\nRANGE( [ start:LONG end:LONG step:LONG ] ): output:LIST<LONG>\",\"documentation\":\"`RANGE` pushes onto the stack a list of integers in the given range [start included, end excluded[. If start is not in the parameter list, start=0.\\n\\n`RANGE` also accepts a step parameter in the parameter list.\\n\\n\\n@param `start` The start of range, default is 0\\n\\n@param `end` The end of range\\n\\n@param `step` The step between integers, default is 1\\n\\n@param `output` The list of every integers in the range [start end[\\n\\n\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGE\"},{\"name\":\"RANGECOMPACT\",\"detail\":\"RANGECOMPACT( gts:GTS ): compacted:GTS\\nRANGECOMPACT( lgts:LIST<GTS> ): lcompacted:LIST<GTS>\",\"documentation\":\"The `RANGECOMPACT` simplifies a Geo Time Series™ by simplifying ranges of identical values (with identical latitude, longitude and elevation), retaining only the first and last ticks of each range.\\n\\n@param `gts` Geo Time Series™ to compact.\\n\\n@param `compacted` Compacted GTS.\\n\\n@param `lgts` List of Geo Time Series™ to compact.\\n\\n@param `lcompacted` List of compacted GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGECOMPACT\"},{\"name\":\"RAWDTW\",\"detail\":\"RAWDTW( gts1:GTS gts2:GTS threshold:DOUBLE ): dtw:DOUBLE\\nRAWDTW( gts1:GTS gts2:GTS threshold:DOUBLE characteristic:STRING ): dtw:DOUBLE\\nRAWDTW( gts1:GTS gts2:GTS threshold:DOUBLE distance:STRING characteristic:STRING ): dtw:DOUBLE\",\"documentation\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe computation is performed on the raw Geo Time Series™, no transformation is applied to them.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"RAWDTW\"},{\"name\":\"REDEFS\",\"detail\":\"REDEFS( flag:BOOLEAN ): \",\"documentation\":\"The `REDEFS` function allows or disallows execution of redefined functions.\\n\\n@param `flag` Shall we allow or disallow the execution of redefined functions.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REDEFS\"},{\"name\":\"REDUCE\",\"detail\":\"REDUCE( [ gts:LIST<GTS>+ labels:LIST<STRING> reducer:AGGREGATOR ] ): result:LIST<GTS>\\nREDUCE( [ gts:LIST<GTS>+ labels:LIST<STRING> reducer:AGGREGATOR overrideTick:BOOLEAN ] ): result:LIST<GTS>\",\"documentation\":\"The `REDUCE` framework groups Geo Time Series™ by equivalence classes based on label values and applies a function on each equivalence class of Geo Time Series™, considering the values of each tick and producing one GTS per equivalence class.\\n\\nAs the selected reducer function is applied tick by tick, it is usually wise to [`BUCKETIZE`](/doc/BUCKETIZE) the GTS first with a common value of `lastbucket`.\\n\\nThe labels whose values are common to all the GTS in an equivalence class will be retained.\\n\\nIf all the inputs are bucketized with the same bucket span and bucket end, the output of reduce will be bucketized too. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) if needed after `REDUCE`.\\n\\nSince 2.1 you can make REDUCE override the GTSs ticks. This usage in mainly to be used in conjuction with [`MACROREDUCER`](/doc/MACROREDUCER).\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` List of resulting Geo Time Series™.\\n\\n@param `overrideTick` Boolean, if true allows the reducer to modify the ticks of the GTSs. If not set, the reducer cannot modify the ticks.\\n\\n\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"REDUCE\"},{\"name\":\"RELABEL\",\"detail\":\"RELABEL( gts:GTS labels:MAP ): gts:GTS\\nRELABEL( lgts:LIST<GTS> labels:MAP ): lgts:LIST<GTS>\\nRELABEL( encoder:GTSENCODER labels:MAP ): encoder:GTSENCODER\\nRELABEL( lencoder:LIST<GTSENCODER> labels:MAP ): lencoder:LIST<GTSENCODER>\",\"documentation\":\"Modifies the labels of a Geo Time Series™. The `RELABEL` function expects a parameter MAP whose entries are labels to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `RELABEL` function will use the rest of the MAP as the actual labels to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing labels.\\n\\nAn entry with an empty STRING value or a NULL value will have the effect of removing the label from the GTS' labels.        \\n\\n@param `labels` Parameter map of label names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `encoder` Encoder to relabel\\n\\n@param `lencoder` List of encoders to relabel\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RELABEL\"},{\"name\":\"REMOVE\",\"detail\":\"REMOVE( inputlist:LIST index:LONG ): outputlist:LIST removeditem:ANY\\nREMOVE( inputmap:MAP key:ANY ): outputmap:MAP removeditem:ANY\\nREMOVE( inputgts:GTS pointindex:LONG ): outputgts:GTS removedpoint:LIST\",\"documentation\":\"Removes an entry from a MAP or from a LIST.\\n\\nThe `REMOVE` function consumes a list (or a map) and a index (or a key), then remove the entry.\\nIt lets the input on the stack and puts the removed item on top of the stack. \\nAs a result, the input map or list is modified and the map or list left on top of the stack is *not* a copy. \\n\\nIf the index is out of bound, the returned value is `NULL` and the list or array is unmodified.\\nIf the key does not exist in the map, it returns null as the removed entry.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **GTS**.\\n\\nSince 2.7, `REMOVE` can be called on a **GTS**.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `inputmap` The reference to the map to be modified\\n\\n@param `index` The index of the list, 0 for the first item\\n\\n@param `inputlist` The reference to the list to be modified\\n\\n@param `removeditem` Depending on map or list content, could be any type\\n\\n@param `outputmap` The input map modified\\n\\n@param `outputlist` The input list modified\\n\\n@param `pointindex` Index of the point in the GTS, 0-indexed, handles negative indexing.\\n\\n@param `inputgts` The GTS to remove the point from.\\n\\n@param `removedpoint` The removed point. List of timestamp, latitude, longitude, elevation and value.\\n\\n@param `outputgts` The acopy of the original GTS with the requested point removed.\\n\\n\",\"tags\":[\"maps\",\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"REMOVE\"},{\"name\":\"REMOVETICK\",\"detail\":\"REMOVETICK( gts:GTS tick:LONG ): pruned:GTS\\nREMOVETICK( gts:GTS lticks:LIST<LONG> ): pruned:GTS\\nREMOVETICK( gts:GTS lticks:SET<LONG> ): pruned:GTS\",\"documentation\":\"The `REMOVETICK` function transforms a Geo Time Series™ by removing all occurrences of a tick or ticks.\\n\\n@param `tick` Tick (timestamp) to remove.\\n\\n@param `lticks` List or Set of ticks to remove.\\n\\n@param `gts` Geo Time Series™ to transform.\\n\\n@param `pruned` Tranformed Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.19\",\"OPB64name\":\"REMOVETICK\"},{\"name\":\"RENAME\",\"detail\":\"RENAME( gts:GTS name:STRING ): gts:GTS\\nRENAME( lgts:LIST<GTS> name:STRING ): lgts:LIST<GTS>\\nRENAME( encoder:GTSENCODER name:STRING ): encoder:GTSENCODER\\nRENAME( lencoder:LIST<GTSENCODER> name:STRING ): lencoder:LIST<GTSENCODER>\",\"documentation\":\"The `RENAME` function changes the name of a Geo Time Series™, an Encoder or a list thereof. This operation may be required prior to using some functions. If the name starts with '+', the specified name will be appended to the current name of the GTS or Encoder.\\n\\nIf you want to rename a Geo Time Series™ or an Encoder so its name starts with a '+', you must first set its name to the empty string then use rename with the desired name prefixed with an additional '+'.\\n\\n@param `gts` Geo Time Series™ instance to rename.\\n\\n@param `lgts` List of Geo Time Series™ instances to rename.\\n\\n@param `encoder` Encoder to rename.\\n\\n@param `lencoder` Encoder to rename.\\n\\n@param `name` New name to give to the GTS.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"RENAME\"},{\"name\":\"REOPTALT\",\"detail\":\"REOPTALT( alternatives:LIST<STRING> ): regexp:STRING\",\"documentation\":\"Produces a **R**egular **E**xpression **OPT**imized for **ALT**ernation from a list of STRINGs. Large alternations in regular expressions can lead to excessive backtracking and poor matching performance. In order to mitigate this, the `REOPTALT` function will produce a regular expression from a list of STRINGs which reduces the backtracking thus leading to better matching performance.\\n\\n@param `alternatives` List of STRINGs which should be used in the alternation.\\n\\n@param `regexp` Regular expression\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.2.16\",\"OPB64name\":\"REOPTALT\"},{\"name\":\"REPLACE\",\"detail\":\"REPLACE( original:ANY pattern:ANY replacement:ANY ): result:STRING\",\"documentation\":\"Replaces the first occurrence of a pattern by its substitution.\\n\\nThe `REPLACE` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with the replaced value if it was found\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACE\"},{\"name\":\"REPLACEALL\",\"detail\":\"REPLACEALL( original:ANY pattern:ANY replacement:ANY ): result:STRING\",\"documentation\":\"Replaces all occurrence of a pattern by its substitution.\\n\\nThe `REPLACEALL` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with all occurrences of pattern replaced by its value\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACEALL\"},{\"name\":\"REPORT\",\"detail\":\"REPORT( secret:STRING ): report:STRING\",\"documentation\":\"The `REPORT` function pushes onto the stack a STRING containing configuration and usage informations which can be useful when investigating issues.\\n\\n@param `secret` Secret configured for using the `REPORT` function.\\n\\n@param `report` Actual report.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"REPORT\"},{\"name\":\"RESET\",\"detail\":\"RESET( depth:LONG ): \",\"documentation\":\"The `RESET` function resets the stack to the given depth, discarding any items above those 'depth' items.\\n\\n@param `depth` Depth at which the stack should be reset.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESET\"},{\"name\":\"RESETS\",\"detail\":\"RESETS( gts:GTS decreasingGTS:BOOLEAN ): result:GTS\\nRESETS( lgts:LIST<GTS> decreasingGTS:BOOLEAN ): lresult:LIST<GTS>\",\"documentation\":\"The `RESETS` functions transforms a numerical Geo Time Series™, shifting values so no offset (*i.e.* a decrease or increase of values) appears after the operation.\\n\\nThe parameter to `RESETS` determines if the Geo Time Series should be considered as decreasing instead of increasing.\\n\\n@param `decreasingGTS` Flag set to `true` to indicate the GTS is decreasing.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `lgts` List of Geo Time Series™ or list thereof to transform.\\n\\n@param `result` GTS with resets compensated.\\n\\n@param `lresult` List of GTS with resets compensated.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESETS\"},{\"name\":\"RESHAPE\",\"detail\":\"RESHAPE( input:LIST shape:LIST<LONG> ): output:LIST\",\"documentation\":\"The `RESHAPE` function modifies the shape of a list.\\n\\nThe new shape is specified using a list of dimensions, the first being the outer dimension. Such a shape can be produced by `SHAPE`.\\n\\nNote that the number of elements in the array must be compatible with the requested shape, i.e. the product of the dimensions must match the number of elements in the input list.\\n\\n@param `input` List to reshape.\\n\\n@param `shape` Shape specification, list of dimensions, the first element being the outer list.\\n\\n@param `output` Reshaped list.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"RESHAPE\"},{\"name\":\"RESTORE\",\"detail\":\"RESTORE( context:CONTEXT ): \",\"documentation\":\"The `RESTORE` function resets the stack's symbol table to the state recorded in the context passed as parameter.\\n\\n@param `context` Stack context produced by [`SAVE`](doc/SAVE).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESTORE\"},{\"name\":\"RETHROW\",\"detail\":\"RETHROW(): \",\"documentation\":\"Inside the *catch* or *finally* macro of a [`TRY`](/doc/TRY), rethrows the last thrown error. If no error was previously thrown, `RETHROW` does nothing.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"RETHROW\"},{\"name\":\"RETURN\",\"detail\":\"RETURN(): \",\"documentation\":\"Returns immediately from the currently executing macro. If called outside a macro, `RETURN` will stop the execution of the current script, behaving like [`STOP`](/doc/STOP).\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"RETURN\"},{\"name\":\"REV\",\"detail\":\"REV(): revision:STRING\",\"documentation\":\"The `REV` function pushes onto the stack the revision of the Warp 10 instance.`\\n\\n@param `revision` Revision of the Warp 10 platform.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"REV\"},{\"name\":\"REVBITS\",\"detail\":\"REVBITS( long:LONG ): gnol:LONG\",\"documentation\":\"Reverses the order of the bits of a LONG value.\\n\\n@param `long` LONG value from which to revert the bits.\\n\\n@param `gnol` LONG value whose bits are in reverse order compared to those of `long`.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVBITS\"},{\"name\":\"REVERSE\",\"detail\":\"REVERSE( originalList:LIST ): reversedObj:LIST\\nREVERSE( originalString:STRING ): reversedObj:STRING\\nREVERSE( originalString:BYTES ): reversedObj:BYTES\",\"documentation\":\"Reverses the order of the elements of the list or the string.\\n\\nThe `REVERSE` function inverts the order of the elements of the list or the string on the top of the stack.\\nBeware, `REVERSE` do not create a new object. Use [`CLONEREVERSE`](/doc/CLONEREVERSE) if you want to keep input.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n\\n@param `originalList` The list to reverse\\n\\n@param `originalString` The string to reverse\\n\\n@param `reversedObj` The original object with the elements in reverse order\\n\\n\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVERSE\"},{\"name\":\"REXEC\",\"detail\":\"REXEC( warpscript:STRING endpoint:STRING ): stack:ANY*\",\"documentation\":\"The `REXEC` function executes some WarpScript code on a remote Warp 10 instance. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.0.8\",\"OPB64name\":\"REXEC\"},{\"name\":\"REXECZ\",\"detail\":\"REXECZ( warpscript:STRING endpoint:STRING ): stack:ANY*\",\"documentation\":\"The `REXECZ` function executes some WarpScript code on a remote Warp 10 instance just like [`REXEC`](/doc/REXEC) does, but compresses the WarpScript code prior to sending it. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REXECZ\"},{\"name\":\"RINT\",\"detail\":\"RINT( value:NUMBER ): result:DOUBLE\\nRINT( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nRINT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `RINT` function consumes a numeric parameter from the top of the stack and pushes back the DOUBLE the closest to the parameter and equal to a mathematical integer.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `result` Closest floating-point value to a that is equal to a mathematical integer.\\n\\n@param `lvalue` List of Numeric values.\\n\\n@param `lresult` List of closest floating-point values to a that is equal to a mathematical integer.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are closest floating-point values of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RINT\"},{\"name\":\"RIPEMD128\",\"detail\":\"RIPEMD128( input:BYTES ): result:BYTES\",\"documentation\":\"The `RIPEMD128` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-128](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD128\"},{\"name\":\"RIPEMD160\",\"detail\":\"RIPEMD160( input:BYTES ): result:BYTES\",\"documentation\":\"The `RIPEMD160` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-160](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD160\"},{\"name\":\"RIPEMD256\",\"detail\":\"RIPEMD256( input:BYTES ): result:BYTES\",\"documentation\":\"The `RIPEMD256` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-256](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD256\"},{\"name\":\"RIPEMD320\",\"detail\":\"RIPEMD320( input:BYTES ): result:BYTES\",\"documentation\":\"The `RIPEMD320` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-320](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD320\"},{\"name\":\"RLOWESS\",\"detail\":\"RLOWESS( gts:GTS q:LONG r:LONG d:LONG p:LONG ): result:GTS\\nRLOWESS( gtsList:LIST<GTS> q:LONG r:LONG d:LONG p:LONG ): resultList:LIST<GTS>\",\"documentation\":\"The `RLOWESS` function applies an iterative smoothing program on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is done via locally weighted regression, and is robust to outliers.\\n\\n> ### REFERENCE\\n>\\n> **Cleveland, W. S.** (1979) Robust locally weighted regression and smoothing scatter plots. J. American Statistical Association 74, 829–836.\\n>\\n> **Cleveland, W. S.** (1981) LOWESS: A program for smoothing scatter plots by robust locally weighted regression. The American Statistician 35, 54.\\n\\n@param `p` The degree for the polynomial fit of the regression\\n\\n@param `d` The delta radius (in time units) within which the local regression is computed only once (other points are interpolated). For very large datasets, it can be wise to set `d` > 0 to speed up the computations.\\n\\n@param `r` The number of robustifying iterations. The higher the value of `r`, the better the program is robust to outliers.\\n\\n@param `q` The bandwidth of the local regression. To obtain a good smoothing, it is advised to choose an odd number of at least 5.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RLOWESS\"},{\"name\":\"RLP->\",\"detail\":\"RLP->( encoded:BYTES ): decoded:ANY\",\"documentation\":\"The `RLP->` function decodes a byte array containing [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoded content.\\n\\nNote that numbers are decoded as their byte representation, not actual `LONG`s.\\n\\n@param `encoded` RLP encoded content to decode.\\n\\n@param `decoded` Result of decoding.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"JZlFAIs\"},{\"name\":\"ROLL\",\"detail\":\"ROLL( eltN:ANY elt2:ANY elt1:ANY N:LONG ): elt2:ANY elt1:ANY eltN:ANY\",\"documentation\":\"`ROLL` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element at level *N* to the top of the stack and moving the other elements up one level.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLL\"},{\"name\":\"ROLLD\",\"detail\":\"ROLLD( eltN:ANY elt2:ANY elt1:ANY N:LONG ): elt1:ANY eltN:ANY elt2:ANY\",\"documentation\":\"`ROLLD` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element on top of the stack to level *N* and moving the other *N-1* elements down the stack.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLLD\"},{\"name\":\"ROT\",\"detail\":\"ROT( level3:ANY level2:ANY top:ANY ): level2:ANY top:ANY level3:ANY\",\"documentation\":\"`ROT` cycles through the 3 topmost elements of the stack by moving the element at level 3 to the top of the stack and pushing the other 2 elements up the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n@param `level3` The element at the third level of the stack prior to the function execution\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROT\"},{\"name\":\"ROTATIONQ\",\"detail\":\"ROTATIONQ( x:DOUBLE y:DOUBLE z:DOUBLE angle:DOUBLE ): quaternion:QUATERNION\",\"documentation\":\"The `ROTATIONQ` function consumes on the stack 4 doubles representing a rotation vector and pushes back [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long.\\n\\n@param `quaternion` The quaternion representation\\n\\n@param `angle` The angle of the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROTATIONQ\"},{\"name\":\"ROUND\",\"detail\":\"ROUND( input:NUMBER ): output:LONG\",\"documentation\":\"The `ROUND` function consumes a numeric parameter from the top of the stack and pushes back the long number the closest to the parameter.\\n\\n@param `input` Input to round.\\n\\n@param `output` Input rounded to the nearest Long.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROUND\"},{\"name\":\"RSADECRYPT\",\"detail\":\"RSADECRYPT( cipher:BYTES key:KEY ): data:BYTES\",\"documentation\":\"Decrypts content encrypted with an RSA key.\\n\\n@param `key` RSA key to use for decryption (a public key if content was encrypted with a private key, a private key otherwise).\\n\\n@param `cipher` Encrypted data.\\n\\n@param `data` Cleartext data.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSADECRYPT\"},{\"name\":\"RSAENCRYPT\",\"detail\":\"RSAENCRYPT( data:BYTES key:KEY ): encrypted:BYTES\",\"documentation\":\"Encrypts a byte array using an RSA key (either public or private).\\n\\n@param `key` Instance of the RSA private or public key to use for encryption.\\n\\n@param `data` Data to encrypt.\\n\\n@param `encrypted` Ciphered version of `data`.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAENCRYPT\"},{\"name\":\"RSAGEN\",\"detail\":\"RSAGEN( publicExponent:LONG keylen:LONG ): privkeyparams:MAP pubkeyparams:MAP\",\"documentation\":\"Generates an RSA public key pair.\\n\\n@param `keylen` Key length in bits.\\n\\n@param `publicExponent` RSA public exponent, typically 65537.\\n\\n@param `pubkeyparams` Parameters of the generated RSA public key. Can be converted to a public key using [`RSAPUBLIC`](/doc/RSAPUBLIC).\\n\\n@param `privkeyparams` Parameters of the generated RSA privsate key. Can be converted to a private key using [`RSAPRIVATE`](/doc/RSAPRIVATE)\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAGEN\"},{\"name\":\"RSAPRIVATE\",\"detail\":\"RSAPRIVATE( privkeyparams:MAP ): privkey:KEY\",\"documentation\":\"Creates an RSA private key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `privkeyparams` Map of private key parameters.\\n\\n@param `privkey` RSA private key instance.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPRIVATE\"},{\"name\":\"RSAPUBLIC\",\"detail\":\"RSAPUBLIC( pubkeyparams:MAP ): pubkey:KEY\",\"documentation\":\"Creates an RSA public key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `pubkeyparams` Map of public key parameters.\\n\\n@param `pubkey` RSA public key instance.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPUBLIC\"},{\"name\":\"RSASIGN\",\"detail\":\"RSASIGN( data:BYTES alg:STRING privkey:KEY ): signature:BYTES\",\"documentation\":\"Signs a byte array with an RSA private key.\\n\\n@param `privkey` RSA private key to use for signing.\\n\\n@param `alg` Name of algorithm to use for computing the data fingerprint. Supported algorithms are those provided by [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `data` Data to sign.\\n\\n@param `signature` Computed signature.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSASIGN\"},{\"name\":\"RSAVERIFY\",\"detail\":\"RSAVERIFY( content:BYTES signature:BYTES alg:STRING pubkey:KEY ): verified:BOOLEAN\",\"documentation\":\"The `RSAVERIFY` function verify a signature generated with [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) cryptosystem and a hash algorithm.\\n\\nAlgorithms are those supported by [BouncyCastle](http://stackoverflow.com/questions/8778531/bouncycastle-does-not-find-algorithms-that-it-provides).\\n\\n@param `pubkey` RSA public key to use for verifying the signature.\\n\\n@param `alg` Algorithm used for generating the signature. See [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content.\\n\\n@param `verified` Status of the signature verification.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAVERIFY\"},{\"name\":\"RSORT\",\"detail\":\"RSORT( gts:GTS ): result:GTS\\nRSORT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"Sort Geo Time Series™ values (and associated locations/elevations) by reverse order of their ticks (i.e. most recent ticks first).\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RSORT\"},{\"name\":\"RTFM\",\"detail\":\"RTFM(): url:STRING\",\"documentation\":\"The `RTFM` function pushes onto the stack the URL of the Warp 10 documentation, so whenever you are lost you can rapidly retrieve the URL you need to get back on track!\\n\\n@param `url` URL of the Warp 10 documentation.\\n\\n\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.0.7\",\"OPB64name\":\"RTFM\"},{\"name\":\"RUN\",\"detail\":\"RUN( macroName:STRING ): \\nRUN( macroRegister:LONG ): \",\"documentation\":\"The `RUN` function attempts to execute the macro whose name is on top of the stack. It is equivalent to `@macro` if called with `macro` on top of the stack.\\n\\n@param `macroName` Name of macro to execute, without a leading '@'\\n\\n@param `macroRegister` Register number in which the macro is stored, without a leading '@'\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"RUN\"},{\"name\":\"RUNNERAT\",\"detail\":\"RUNNERAT( t:LONG ): \",\"documentation\":\"`RUNNERAT` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds, starting at the Warp 10 instance start. \\n`RUNNERAT` allow to dynamically schedule the next run to an absolute timestamp before the period defined in the path. Combined with `RUNNERIN`, `RUNNERAT` can be used to schedule the next run to an absolute timestamp whatever the period defined in the path. See examples below.\\n\\n`RUNNERAT` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERAT to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond offset to now allowed for `RUNNERAT`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `t` reschedule timestamp in platform time unit. Next iteration will be at scheduled at t.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERAT\"},{\"name\":\"RUNNERIN\",\"detail\":\"RUNNERIN( p:LONG ): \",\"documentation\":\"`RUNNERIN` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds. \\n`RUNNERIN` allow to dynamically schedule the next run, overriding the period defined in the path. See also `RUNNERAT` to schedule next run at an absolute time.\\n\\n`RUNNERIN` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERIN to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond allowed for `RUNNERIN`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `p` reschedule period in platform time unit. Next iteration will be at scheduled at runnerstart + p\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERIN\"},{\"name\":\"RUNNERNONCE\",\"detail\":\"RUNNERNONCE( nonce:STRING ): time:LONG\",\"documentation\":\"The `RUNNERNONCE` function decrypts the content of a runner *nonce* as generated when a script is executed by a Warp 10 runner instance.\\n\\nWhen a script is executed by a runner instance, the following symbols are defined when the script is invoked:\\n\\n| Symbol | Description |\\n| --- | --- |\\n| `runner.periodicity` | Periodicity at which the script is supposed to run, in ms. |\\n| `runner.path` | Path of the script. |\\n| `runner.scheduledat` | Time at which the current execution was scheduled, in ms since the [UNIX Epoch](). |\\n| `runner.nonce` | Encrypted time of execution, in time units since the [UNIX Epoch](). |\\n\\nNote that if the runner pre-shared key is not configured via `runner.psk`, the `RUNNERNONCE` function will push `NULL` onto the stack. Note that in this case, the `runner.nonce` symbol will not be defined.\\n\\n@param `nonce` Runner *nonce* as stored in `runner.nonce`.\\n\\n@param `time` Time retrieved from the *nonce*.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.7\",\"OPB64name\":\"RUNNERNONCE\"},{\"name\":\"RUNR\",\"detail\":\"RUNR(): \",\"documentation\":\"Run the macro currently contained in the designated register.\\n\\nThe `RUNR` function is really a family of functions named `RUNRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"RUNR\"},{\"name\":\"RVALUESORT\",\"detail\":\"RVALUESORT( gts:GTS ): result:GTS\\nRVALUESORT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"Sort Geo Time Series™ values (and associated locations/elevations) by by reverse order of their values.\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RVALUESORT\"},{\"name\":\"SAVE\",\"detail\":\"SAVE(): context:CONTEXT\",\"documentation\":\"The `SAVE` function pushes onto the stack a *context* object which contains all the symbols currently defined in the current stack. This context can be passed as a parameter to the [`RESTORE`](doc/RESTORE) function to later reset the symbol table to the state store in the context. Any symbol created after the context was saved and before it is restored will be discarded when `RESTORE` is called.\\n\\n@param `context` Stack context, suitable as a parameter to [`RESTORE`](doc/RESTORE).\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SAVE\"},{\"name\":\"SCALB\",\"detail\":\"SCALB( d:NUMBER scaleFactor:LONG ): result:TYPE\",\"documentation\":\"The `SCALB` function consumes a scale factor *scaleFactor* and a numeric parameter *d* and pushes back <math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>d</mi><mo>&#xD7;</mo><msup><mn>2</mn><mi>scaleFactor</mi></msup></math>. The scale factor must fit into an INT.\\n\\n@param `scaleFactor` The scaling factor, must fit into an INT\\n\\n@param `d` The value to be scaled\\n\\n@param `result` The scaled value\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SCALB\"},{\"name\":\"SECTION\",\"detail\":\"SECTION( section:STRING ): \",\"documentation\":\"The `SECTION` function modifies the value of the *section* attribute of the stack. This value appears in the error messages and can therefore help you debug your WarpScript code. Typically, the `SECTION` function is used to separate your code in different logical units.\\n\\n@param `section` Name to assign to the *section* attribute.\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"SECTION\"},{\"name\":\"SECURE\",\"detail\":\"SECURE( script:STRING ): encrypted:STRING\",\"documentation\":\"The `SECURE` function encrypts a STRING representing a WarpScript code fragment using the platform's secure script cryptographic key and the current secret set via [`SECUREKEY`](doc/SECUREKEY).\\n\\nSecure scripts can also be created using the `<S .... S>` syntax.\\n\\n@param `script` Cleartext version of the WarpScript fragment to encrypt.\\n\\n@param `encrypted` Encrypted secure script.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"SECURE\"},{\"name\":\"SECUREKEY\",\"detail\":\"SECUREKEY( key:STRING ): \",\"documentation\":\"The `SECUREKEY` function sets the secret which will be used to decrypt further secure scripts.\\n\\nSecure scripts are WarpScript fragments which are encrypted with a cryptographic key specific to the platform they were created on. They can be executed on a platform configured with the same cryptographic key.\\n\\n@param `key` Secret to use for unlocking the cleartext versions of future secure scripts.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SECUREKEY\"},{\"name\":\"SENSISION.DUMP\",\"detail\":\"SENSISION.DUMP( valueTimestamp:BOOLEAN ): dump:STRING\",\"documentation\":\"The `SENSISION.DUMP` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) metrics in the JVM.\\n\\nThe STRING produced by `SENSISION.DUMP` can be parsed using `PARSE`.\\n\\n@param `valueTimestamp` Flag indicating whether to dump the Geo Time Series™ with the timestamp of last updates or the timestamp at which the value is read.\\n\\n@param `dump` Latest values of all Geo Time Series™ known to Sensision in Geo Time Series™ output input.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMP\"},{\"name\":\"SENSISION.DUMPEVENTS\",\"detail\":\"SENSISION.DUMPEVENTS(): dump:STRING\",\"documentation\":\"The `SENSISION.DUMPEVENTS` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) events in the events history.\\n\\nThe STRING produced by `SENSISION.DUMPEVENTS` can be parsed using `PARSE`.\\n\\nNote that if the system property `sensision.events.history` is not set to a value greater than 0, the function will always return an empty STRING.\\n\\nThe Sensision event history is a circular buffer.\\n\\n@param `dump` Latest values of all events in the Sensision event history.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMPEVENTS\"},{\"name\":\"SENSISION.EVENT\",\"detail\":\"SENSISION.EVENT( [ class:STRING labels:MAP value:LONG ] ): \\nSENSISION.EVENT( [ class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.EVENT( [ class:STRING labels:MAP value:STRING ] ): \\nSENSISION.EVENT( [ class:STRING labels:MAP value:BOOLEAN ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:LONG ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:STRING ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:BOOLEAN ] ): \",\"documentation\":\"The `SENSISION.EVENT` function creates a [Sensision](https://github.com/senx/sensision) event.\\n\\n@param `class` Name of the class of the Sensision event to emit.\\n\\n@param `labels` Map of label names to values, both STRINGs of the Sensision event.\\n\\n@param `value` Value associated with the event.\\n\\n@param `ts` Optional timestamp for the event (in Sensision time units), if omitted, the current timestamp will be used.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.EVENT\"},{\"name\":\"SENSISION.GET\",\"detail\":\"SENSISION.GET( selector:STRING ): gts:GTS\\nSENSISION.GET( class:STRING labels:MAP ): gts:GTS\",\"documentation\":\"The `SENSISION.GET` function reads the current value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to read.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to read.\\n\\n@param `selector` Geo Time Series™ selector (`class{labels}`) of the Sensision metric to read.\\n\\n@param `gts` A Geo Time Series™ containing the current value of the Sensision metric. If the metric does not exist, the resulting GTS will be empty.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.GET\"},{\"name\":\"SENSISION.SET\",\"detail\":\"SENSISION.SET( [ class:STRING labels:MAP value:LONG ] ): \\nSENSISION.SET( [ class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.SET( [ class:STRING labels:MAP value:STRING ] ): \\nSENSISION.SET( [ class:STRING labels:MAP value:BOOLEAN ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:LONG ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:STRING ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:BOOLEAN ] ): \",\"documentation\":\"The `SENSISION.SET` function sets a value for a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `value` Value to assign to the Sensision metric.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.SET\"},{\"name\":\"SENSISION.UPDATE\",\"detail\":\"SENSISION.UPDATE( [ class:STRING labels:MAP delta:LONG ] ): \\nSENSISION.UPDATE( [ class:STRING labels:MAP delta:DOUBLE ] ): \\nSENSISION.UPDATE( [ class:STRING labels:MAP delta:LONG ttl:LONG ] ): \\nSENSISION.UPDATE( [ class:STRING labels:MAP delta:DOUBLE ttl:LONG ] ): \",\"documentation\":\"The `SENSISION.UPDATE` function updates the numerical value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `delta` Delta to add to the current value of the Sensision metric. If the metric does not exist it will be created with this value.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.UPDATE\"},{\"name\":\"SET\",\"detail\":\"SET( inputlist:LIST item:ANY index:LONG ): outputlist:LIST\\nSET( inputlist:LIST item:ANY index:LIST ): outputlist:LIST\\nSET( array:BYTES bytevalue:LONG index:LONG ): outputarray:LIST\",\"documentation\":\"The `SET` function replaces item at specified index in a list.\\nIf the index is greater than the size of the list, it will raise an error.\\n\\nWhen used on a **BYTE ARRAY**, SET replaces the byte by the byte value. The byte value, signed or not, must be in the range of [-128,255].\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, SET can set an element in a nested list. In this case, the index is a list.\\n\\n@param `index` The index in the list, 0 for the first item.\\n\\n@param `inputlist` The input list to modified.\\n\\n@param `outputlist` The input list modified,  this is not a new list object.\\n\\n@param `item` The item to update in the inputlist at index, could be any type.\\n\\n@param `array` Byte array to which write a byte.\\n\\n@param `bytevalue` The value of the byte, signed or unsigned (from -128 to 255).\\n\\n@param `outputarray` The input byte array modified, this is not a new byte array.\\n\\n\",\"tags\":[\"lists\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SET\"},{\"name\":\"SET->\",\"detail\":\"SET->( input:SET ): output:LIST\",\"documentation\":\"The `SET->` function converts the set on top of the stack into a **LIST**.\\n\\n@param `input` Input set.\\n\\n@param `output` A list containing input elements.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"JoKJAIs\"},{\"name\":\"SETATTRIBUTES\",\"detail\":\"SETATTRIBUTES( gts:GTS attributes:MAP ): gts:GTS\\nSETATTRIBUTES( lgts:LIST<GTS> attributes:MAP ): lgts:LIST<GTS>\\nSETATTRIBUTES( encoder:GTSENCODER attributes:MAP ): encoder:GTSENCODER\\nSETATTRIBUTES( lencoder:LIST<GTS> attributes:MAP ): lencoder:LIST<GTS>\",\"documentation\":\"Modifies the attributes of a Geo Time Series™, an encoder or a list thereof. The `SETATTRIBUTES` function expects a parameter MAP whose entries are attributes to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `SETATTRIBUTES` function will use the rest of the MAP as the actual attributes to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing attributes.\\n\\nAn entry with an empty STRING value will have the effect of removing the attribute from the attributes of the GTSs or encoders.   \\n\\n@param `attributes` Parameter map of attributes names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lencoder` List of Encoders.\\n\\n@param `encoder` Encoder to relabel\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETATTRIBUTES\"},{\"name\":\"SETMACROCONFIG\",\"detail\":\"SETMACROCONFIG( value:STRING key:STRING secret:STRING ): \",\"documentation\":\"The `SETMACROCONFIG` function allows you to set or modify the value of a configuration key accessible via the [`MACROCONFIG`](/doc/MACROCONFIG) or [`MACROCONFIGDEFAULT`](/doc/MACROCONFIGDEFAULT) functions or via the runner script variable expansion.\\n\\nThis function can only be used if the `warpscript.macroconfig.secret` is set in the Warp 10™ configuration.\\n\\nThe configuration keys which can be set using `SETMACROCONFIG` must have the format `key@path/tomacro` or `key@/path/to/runner/script`.\\n\\nSetting the value of a configuration key to `NULL` has the effect of removing the configuration key altogether.\\n\\n@param `key` Configuration key to set.\\n\\n@param `secret` Macro config secret.\\n\\n@param `value` String value to set for the key or `NULL`.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"SETMACROCONFIG\"},{\"name\":\"SETVALUE\",\"detail\":\"SETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:STRING ): result:GTS\\nSETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:BOOLEAN ): result:GTS\\nSETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:DOUBLE ): result:GTS\\nSETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:LONG ): result:GTS\",\"documentation\":\"The `SETVALUE` function adds a value to a GTS or override an existing value. If the tick already exists, this function will overwrite the first one it encounters in the GTS. If the tick does not exist, it is appended. \\nThe [`ADDVALUE`](/doc/ADDVALUE) function adds a value to a GTS but do not override an existing value.\\n\\nThe `SETVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `SETVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, using [`GET`](/doc/GET) for instance.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Serie\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `elevation` Elevation or NaN\\n\\n@param `result` modified Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETVALUE\"},{\"name\":\"SHA1\",\"detail\":\"SHA1( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA1` function digests a byte array on the stack with the cryptographic hash function [SHA-1](https://en.wikipedia.org/wiki/SHA-1).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1\"},{\"name\":\"SHA1HMAC\",\"detail\":\"SHA1HMAC( message:BYTES secret:BYTES ): result:BYTES\",\"documentation\":\"The `SHA1HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-1](https://en.wikipedia.org/wiki/SHA-1) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1HMAC\"},{\"name\":\"SHA224\",\"detail\":\"SHA224( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA224` function digests a byte array on the stack with the cryptographic hash function [SHA-224](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA224\"},{\"name\":\"SHA256\",\"detail\":\"SHA256( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA256` function digests a byte array on the stack with the cryptographic hash function [SHA-256](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256\"},{\"name\":\"SHA256HMAC\",\"detail\":\"SHA256HMAC( message:BYTES secret:BYTES ): result:BYTES\",\"documentation\":\"The `SHA256HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-256](https://en.wikipedia.org/wiki/SHA-2) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256HMAC\"},{\"name\":\"SHA3.224\",\"detail\":\"SHA3.224( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA3.224` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.224\"},{\"name\":\"SHA3.256\",\"detail\":\"SHA3.256( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA3.256` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.256\"},{\"name\":\"SHA3.384\",\"detail\":\"SHA3.384( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA3.384` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.384\"},{\"name\":\"SHA3.512\",\"detail\":\"SHA3.512( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA3.512` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.512\"},{\"name\":\"SHA384\",\"detail\":\"SHA384( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA384` function digests a byte array on the stack with the cryptographic hash function [SHA-384](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA384\"},{\"name\":\"SHA512\",\"detail\":\"SHA512( input:BYTES ): result:BYTES\",\"documentation\":\"The `SHA512` function digests a byte array on the stack with the cryptographic hash function [SHA-512](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA512\"},{\"name\":\"SHAPE\",\"detail\":\"SHAPE( list:LIST ): shape:LIST\\nSHAPE( list:LIST fast:BOOLEAN ): shape:LIST\",\"documentation\":\"Return the shape of an input list if it could be a tensor (or multidimensional array), or raise an Exception.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent and it returns a shape based on the first nested lists at each level. Default to false.\\n\\n@param `list` The input list.\\n\\n@param `shape` The shape of the input list.\\n\\n\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHAPE\"},{\"name\":\"SHMDEFINED\",\"detail\":\"SHMDEFINED( symbol:STRING ): exists:BOOLEAN\",\"documentation\":\"The `SHMDEFINED` function checks whether a shared symbol exists in shared memory, *i.e.* in a memory location independent of a given execution context. It return true if it exists, false otherwise.\\n\\nAs unused symbols can be removed from shared memory because of the `shm.ttl` configuration, a call to `SHMDEFINED` ensures that, within the same [`MUTEX`](/doc/MUTEX) call, a call to [`SHMLOAD`](/doc/SHMLOAD) on the same symbol name will not fail.\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `exists` Whether `symbol` exists or not.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"SHMDEFINED\"},{\"name\":\"SHMLOAD\",\"detail\":\"SHMLOAD( symbol:STRING ): object:ANY\",\"documentation\":\"The `SHMLOAD` function loads data previously stored by [`SHMSTORE`](/doc/SHMSTORE) in shared memory, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the requested shared symbol is not known or if the calling script does not currently hold the mutex associated with the symbol.\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `object` Object currently stored under `symbol`.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMLOAD\"},{\"name\":\"SHMSTORE\",\"detail\":\"SHMSTORE( object:ANY symbol:STRING ): \",\"documentation\":\"The `SHMSTORE` function stores an object in a named shared memory location, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the calling script is not currently holding a mutex (in a call to [`MUTEX`](/doc/MUTEX)). The call will have no effect if the named memory location was already set by a previous call to `SHMSTORE`.\\n\\nIn order to overwrite a shared memory location, its content must first be cleared by storing [`NULL`](/doc/NULL).\\n\\nIf the calling script currently holds a mutex, this mutex will be associated with the shared memory location, the same mutex will have to be held when retrieving the content of the memory location via [`SHMLOAD`](/doc/SHMLOAD).\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to store.\\n\\n@param `object` Object to store under `symbol` or `NULL` to clear its content.\\n\\n\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMSTORE\"},{\"name\":\"SHOW\",\"detail\":\"SHOW( levels:LONG ): \",\"documentation\":\"The `SHOW` function makes visible some levels of the stack which were previously hidden by a call to [`HIDE`](/doc/HIDE).\\n\\nThe levels made visible are the ones closest to the top of the stack. Depending on the `levels` parameter to the call to `SHOW`, the revealed levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there are at most a certain number ((*abs(`levels`)*) with `levels` < 0) of visible levels after the call.\\n\\nWhen called with `NULL` as parameter, `SHOW` wil reveal all levels currently hidden.\\n\\n@param `levels` Number of levels to reveal, or `NULL` to reveal them all.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"SHOW\"},{\"name\":\"SHRINK\",\"detail\":\"SHRINK( gts:GTS size:LONG ): result:GTS\",\"documentation\":\"Shrink the number of values of a Geo Time Series™ to `size`. The oldest values are kept if `size` is non negative. The earliest ones are kept in the other case.\\n\\nThis function has the side effect of sorting the Geo Time Series™. If the Geo Time Series™ has fewer than `size` values the function raises an error.\\n\\n@param `size` Size used to shrink the Geo Time Series™\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `result` A shrinked Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SHRINK\"},{\"name\":\"SHUFFLE\",\"detail\":\"SHUFFLE( input:LIST ): shuffled:LIST\",\"documentation\":\"The `SHUFFLE` function shuffles a list.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `input` The reference of the list to shuffle\\n\\n@param `shuffled` The original list shuffled, this is not a new list object\\n\\n\",\"tags\":[\"lists\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHUFFLE\"},{\"name\":\"SIGNUM\",\"detail\":\"SIGNUM( value:NUMBER ): result:DOUBLE\\nSIGNUM( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSIGNUM( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `SIGNUM` function consumes a numeric parameter from the top of the stack and pushes back its signum.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Signum, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of signum for each given value, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are signum of the given GTS values, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIGNUM\"},{\"name\":\"SIN\",\"detail\":\"SIN( value:NUMBER ): result:DOUBLE\\nSIN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSIN( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `SIN` function consumes a floating point number from the top of the stack and pushes back its sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Sine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the sine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIN\"},{\"name\":\"SINGLEEXPONENTIALSMOOTHING\",\"detail\":\"SINGLEEXPONENTIALSMOOTHING( gts:GTS alpha:DOUBLE ): result:GTS\",\"documentation\":\"The `SINGLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Simple Exponential Smoothing](https://www.otexts.org/fpp/7/1) formula.\\n\\nIt consumes two parameters from the top of the stack:\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** is pushed onto the stack.\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The smoothed Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINGLEEXPONENTIALSMOOTHING\"},{\"name\":\"SINH\",\"detail\":\"SINH( value:NUMBER ): result:DOUBLE\\nSINH( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSINH( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `SINH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic sine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic sine of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINH\"},{\"name\":\"SIZE\",\"detail\":\"SIZE( input:LIST ): size:LONG\\nSIZE( input:MAP ): size:LONG\\nSIZE( input:GTS ): size:LONG\\nSIZE( input:STRING ): size:LONG\\nSIZE( input:BYTES ): size:LONG\\nSIZE( input:GEOSHAPE ): size:LONG\\nSIZE( input:GTSENCODER ): size:LONG\\nSIZE( input:SET ): size:LONG\\nSIZE( input:MACRO ): size:LONG\",\"documentation\":\"Returns the size of the input parameter.\\n\\nThe `SIZE` function computes the size of a LIST, MAP, GTS or ENCODER (number of values), STRING, byte array MACRO (number of statements)  or GEOSHAPE (number of cells).\\n\\n@param `input` The input parameter\\n\\n@param `size` The size of the input parameter\\n\\n\",\"tags\":[\"strings\",\"lists\",\"maps\",\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIZE\"},{\"name\":\"SKEWNESS\",\"detail\":\"SKEWNESS( gts:GTS bessel:BOOLEAN ): skewness:DOUBLE\\nSKEWNESS( lgts:LIST<GTS> bessel:BOOLEAN ): lskewness:LIST<DOUBLE>\",\"documentation\":\"The `SKEWNESS` function computes the [skewness](https://en.wikipedia.org/wiki/Skewness) of a Geo Time Series™.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the skewness.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `skewness` Computed skewness of the Geo Time Series™ instance.\\n\\n@param `lskewness` List of computed skewness of the Geo Time Series™ instances.\\n\\n\",\"tags\":[\"statistics\",\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"SKEWNESS\"},{\"name\":\"SMARTPARSE\",\"detail\":\"SMARTPARSE( string:STRING regexp:STRING ): results:LIST<GTS>\\nSMARTPARSE( gts:GTS regexp:STRING ): results:LIST<GTS>\\nSMARTPARSE( lgts:LIST<GTS> regexp:STRING ): lresults:LIST<LIST<GTS>>\",\"documentation\":\"The `SMARTPARSE` function parses STRING values, either from a single STRING parameter or from STRING Geo Time Series™, and produces a number of GTS from the parsed data.\\n\\nThe parsing is done according to a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) which contains [named capturing groups](https://www.regular-expressions.info/named.html) with the Java/.NET syntax, *i.e.* `(?<name>...)`.\\n\\nThe captured group is interpreted differently based on the syntax of the name.\\n\\n| Syntax | Interpretation |\\n| --- | --- |\\n| Lxxx | Captured content is used as the value of label `xxx` |\\n| TU | Captured group is interpreted as a timestamp in unit `U` from the [UNIX Epoch](https://en.wikipedia.org/wiki/Unix_time) origin. Valid values for U are `s`, `ms`, `us`, `ns` |\\n| lat | Captured group is interpreted as the latitude if another group named `lon` is also present |\\n| lon | Captured group is interpreted as the longitude if another group named `lat` is also present |\\n| elevU | Captured group is interpreted as the elevation in unit `U`, where `U` can be `m`, `cm`, `mm`, `ft`, `km`, `mi`, `nm` (Nautical Mile). The value is parsed as a DOUBLE and converted to a LONG in `mm` |\\n| VTxxx | Captured group is interpreted as a value for a GTS with class `xxx`. The type of the value is determined by the value of `T` which can be `B`(oolean) `S`(tring) `L`(ong) or `D`(ouble) |\\n\\nThis function is ideally suited for parsing log messages and producing Geo Time Series™ from their content.\\n\\n@param `regexp` Regular expression to use for parsing. See the function description for the syntax to use.\\n\\n@param `string` String to parse\\n\\n@param `results` List of Geo Time Series™ created from the parsed data.\\n\\n@param `lresults` List of list of GTS created from the parsed data.\\n\\n@param `gts` STRING valued Geo Time Series™ whose values are to be parsed.\\n\\n@param `lgts` List of STRING valued GTS whose values are to be parsed.\\n\\n\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.2.13\",\"OPB64name\":\"SMARTPARSE\"},{\"name\":\"SNAPSHOT\",\"detail\":\"SNAPSHOT( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOT` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOT` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.6\",\"OPB64name\":\"SNAPSHOT\"},{\"name\":\"SNAPSHOTALL\",\"detail\":\"SNAPSHOTALL( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTALL` functions acts similarly as [`SNAPSHOT`](/doc/SNAPSHOT) and produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTALL` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALL\"},{\"name\":\"SNAPSHOTALLTOMARK\",\"detail\":\"SNAPSHOTALLTOMARK( mark:MARK stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTALLTOMARK` functions acts similarly as [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) and produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTALLTOMARK` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALLTOMARK\"},{\"name\":\"SNAPSHOTCOPY\",\"detail\":\"SNAPSHOTCOPY( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTCOPY` function behaves like [`SNAPSHOT`](/doc/SNAPSHOT) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPY` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPY\"},{\"name\":\"SNAPSHOTCOPYALL\",\"detail\":\"SNAPSHOTCOPYALL( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTCOPYALL` function behaves like [`SNAPSHOTALL`](/doc/SNAPSHOTALL) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALL\"},{\"name\":\"SNAPSHOTCOPYALLTOMARK\",\"detail\":\"SNAPSHOTCOPYALLTOMARK( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTCOPYALLTOMARK` function behaves like [`SNAPSHOTALLTOMARK`](/doc/SNAPSHOTALLTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALLTOMARK\"},{\"name\":\"SNAPSHOTCOPYN\",\"detail\":\"SNAPSHOTCOPYN( stack:ANY* n:LONG ): snapshot:STRING\",\"documentation\":\"Performs a [`SNAPSHOTCOPY`](/doc/SNAPSHOTCOPY) on the top *N* elements of the stack.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTCOPYN\"},{\"name\":\"SNAPSHOTCOPYTOMARK\",\"detail\":\"SNAPSHOTCOPYTOMARK( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTCOPYTOMARK` function behaves like [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYTOMARK\"},{\"name\":\"SNAPSHOTN\",\"detail\":\"SNAPSHOTN( stack:ANY* n:LONG ): snapshot:STRING\",\"documentation\":\"Produces a WarpScript code fragment which will regenerate the *N* top levels of the stack. The content of those levels is consumed off the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTN\"},{\"name\":\"SNAPSHOTREADABLE\",\"detail\":\"SNAPSHOTREADABLE( stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTREADABLE` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTREADABLE` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTREADABLE` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\nThis is similar to the [`SNAPSHOT`](/doc/SNAPSHOT) function but the output is easier to read for a human.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"SNAPSHOTREADABLE\"},{\"name\":\"SNAPSHOTTOMARK\",\"detail\":\"SNAPSHOTTOMARK( mark:MARK stack:ANY* ): snapshot:STRING\",\"documentation\":\"The `SNAPSHOTTOMARK` functions produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTTOMARK` was called.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTTOMARK\"},{\"name\":\"SORT\",\"detail\":\"SORT( gts:GTS ): sgts:GTS\\nSORT( lgts:LIST<GTS> ): slist:LIST<GTS>\",\"documentation\":\"Sorts a Geo Time Series™ or each GTS of a list of GTS in ascending tick order.\\n\\n@param `gts` Single Geo Time Series™ instance to sort.\\n\\n@param `sgts` Sorted Geo Time Series™, this is the same instance as `gts`.\\n\\n@param `lgts` List of Geo Time Series™ instances to sort.\\n\\n@param `slist` List of sorted Geo Time Series™. Each instance is the same as the input one.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SORT\"},{\"name\":\"SORTBY\",\"detail\":\"SORTBY( list:LIST macro:MACRO ): lsorted:LIST\\nSORTBY( map:MAP macro:MACRO ): msorted:MAP\",\"documentation\":\"The `SORTBY` function sorts a **LIST** or a **MAP** according to a value returned by a macro. The macro must return a value of the same type (LONG, DOUBLE or STRING) for each element.\\n\\nOnly **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nBefore release `1.2.22`, the `SORTBY` function could only sort lists of Geo Time Series™.\\n\\nBefore release `2.7.0`, the `SORTBY` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for sorting, consumes a list element off the stack and produces a LONG, DOUBLE or STRING value.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"tags\":[\"lists\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"SORTBY\"},{\"name\":\"SORTWITH\",\"detail\":\"SORTWITH( list:LIST macro:MACRO ): lsorted:LIST\\nSORTWITH( map:MAP macro:MACRO ): msorted:MAP\",\"documentation\":\"The `SORTWITH` function sorts a **LIST** or a **MAP** according to a value returned by a comparison macro. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nIn used a on **LIST**, the comparison macro is given 2 elements of the **LIST** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest element in the stack is respectively strictly less than, equal to or strictly more than than the element on the stack.\\n\\nIn used a on **MAP**, the comparison macro is given 2 entries (key deepest, value shallowest) of the **MAP** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest entry in the stack is respectively strictly less than, equal to or strictly more than than the shallowest entry on the stack.\\n\\nBefore release `2.7.0`, the `SORTWITH` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for comparison, must consume two elements of the stack and produces a LONG.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"tags\":[\"lists\",\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"SORTWITH\"},{\"name\":\"SPLIT\",\"detail\":\"SPLIT( s:STRING delimiter:STRING ): result:LIST<STRING>\\nSPLIT( s:STRING delimiter:STRING limit:LONG ): result:LIST<STRING>\",\"documentation\":\"The SPLIT function split a string in segments given a delimiter.\\n\\n\\nIt consumes two parameters from the top of the stack: the delimiter and the string to test matching with. The delimiter must be a string of length 1, i.e. only one character.\\n\\n\\nThe function will return a list with all the segments. If delimiter is not found, the output list contains the input string.\\n\\n@param `delimiter` One character delimiter.\\n\\n@param `s` The string to split\\n\\n@param `limit` The maximum size of the resulting **LIST**, must be positive. The last entry will contain all input beyond the last matched delimiter\\n\\n@param `result` List of strings.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"SPLIT\"},{\"name\":\"SQRT\",\"detail\":\"SQRT( value:NUMBER ): result:DOUBLE\\nSQRT( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSQRT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `SQRT` function consumes a numeric parameter from the top of the stack and pushes back its square root.\\n\\nFor negative numbers, SQRT returns NaN.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Square root of the given value, NaN if it is negative.\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of square root of each given value, NaN if it is negative.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the square root of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SQRT\"},{\"name\":\"SRAND\",\"detail\":\"SRAND(): num:DOUBLE\",\"documentation\":\"The `SRAND` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThe seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"SRAND\"},{\"name\":\"SRANDPDF\",\"detail\":\"SRANDPDF( valueHistogram:MAP ): result:STRING\",\"documentation\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe randomization is seeded. The seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThe result is a function. This function does not have any arguments.\\n\\nTo use the function pushed by `SRANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"tags\":[\"math\",\"statistics\"],\"since\":\"2.2.1\",\"OPB64name\":\"SRANDPDF\"},{\"name\":\"SSSS->\",\"detail\":\"SSSS->( splits:LIST<BYTES> ): secret:BYTES\",\"documentation\":\"The `SSSS->` retrieves a secret from `K` splits generated using `->SSSS`.\\n\\nNote that no check is performed to ensure that the retrieved secret is the expected one.\\n\\n@param `secret` Reconstructed secret.\\n\\n@param `splits` List of splits to use for reconstruction.\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"JpCIJmoy\"},{\"name\":\"SSTFIND\",\"detail\":\"SSTFIND( [ secret:STRING largeskey:STRING smallestkey:STRING ] ): report:LIST\\nSSTFIND( [ secret:STRING largeskey:STRING smallestkey:STRING labelsSelectors:MAP classSelector:STRING token:STRING ] ): report:LIST\",\"documentation\":\"Identifies Geo Time Series™ which MAY have data within a given key range, assuming those keys are bounds of an SST file.\\n\\nThis function is key to identifying which SST files should be purged using `SSTPURGE`.\\n\\nIf no token and selectors are specified in the parameter list of `SSTFIND`, all Geo Time Series™ will be considered, otherwise, only those matching the entered criteria will be used.\\n\\nThe return value of the `SSTFIND` function is a list of lists, each inner list containing 3 fields, `gts`, `mints`, `maxts`.\\n\\nThe `gts` field is either an actual empty Geo Time Series™, but with all metadata set, or `null`. If `gts` is not null, it means that the Geo Time Series™ **may** have data in the file given because its internal id falls within the key range. If `gts` is `null`, it means there is a Geo Time Series™ that may exist in the file but whose metadata (class and labels) were not matched by the provided selectors. This is a helpful hint to indicate that there may be some data in the file which belong to series you were not initially interested in.\\n\\nThe values of `mints` and `maxts` indicate between which timestamps `gts` may have datapoints. If the id of `gts` is not matched by either the smallest or largest key of the range, both `mints` and `maxts` will have extreme values (respectively `MINLONG` and `MAXLONG`). If the `gts` id matches one of the bounds, the `mints` and/or `maxts` fields will have more meaningful values.\\n\\nKeys of datapoints start with `0x52' (`R`), keys for metadata start with `0x4d` (`M`).\\n\\nWhen `SSTFIND` is called with metadata keys, the fields `mints` and `maxts` will be set to `null`.\\n\\nIf `SSTFIND` is called with keys for both metadata and data, an error is raised indicating that `SSTFIND` cannot determine what lies inside *hydrid* files.\\n\\nKeys invalid for both metadata and data will also lead to an *invalid key range* error.\\n\\n@param `secret` LevelDB secret.\\n\\n@param `smallestkey` Hex encoded lower key of the range to check.\\n\\n@param `largeskey` Hex encoded higher key of the range to check.\\n\\n@param `token` Warp 10™ read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Selector to use for identifying classes of Geo Time Series™.\\n\\n@param `labelsSelectors` Map of label selectors for matching Geo Time Series™.\\n\\n@param `report` Report about the Geo Time Series™ which may have data or metadata within the provided key range.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTFIND\"},{\"name\":\"SSTINFO\",\"detail\":\"SSTINFO( id:LONG secret:STRING ): infos:MAP\",\"documentation\":\"Retrieves informations about a LevelDB SST file.\\n\\nThe `infos` map returned by `SSTINFO` contains the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| size | Size of SST file in bytes |\\n| creationTime | Creation time of the SST file in platform's time units. Note that on some architectures this information might be inaccurate due to limitations of the filesystem interaction by the JVM. |\\n\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `id` LevelDB SST file id.\\n\\n@param `infos` Map of retrieved informations.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTINFO\"},{\"name\":\"SSTPURGE\",\"detail\":\"SSTPURGE( ids:LIST<LONG> secret:STRING ): ldeleted:LIST<LONG>\",\"documentation\":\"Attempts to purge a set of SST Files. A `.sst` file will be deleted only if it is at the deepest level of the LevelDB file organization.\\n\\nDuring file deletion, the underlying LevelDB database is closed and therefore all operations which interact with the DB will be blocked until the deletion has finished.\\n\\nEven though the LevelDB database is closed for updates and reads, it is not safe to manipulate its files as the deletion process actually modifies some of them.\\n\\nThe maximum number of SST files which can be deleted in a single call to `SSTPURGE` is set using the `leveldb.maxpurge` configuration key, it defaults to 1000.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `ids` List of file ids to delete.\\n\\n@param `ldeleted` List of ids of files which were deleted from the LevelDB database.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTPURGE\"},{\"name\":\"SSTREPORT\",\"detail\":\"SSTREPORT( secret:STRING ): report:MAP\",\"documentation\":\"Builds a report on the content of the various SST (Sorted String Table) files of the LevelDB database backing the Warp 10™ storage engine.\\n\\nThe function returns a map containing the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `maxlevel` | Deepest level of SST files |\\n| `manifest` | Name of `MANIFEST` file used for building the report |\\n| `sst` | List of SST file descriptors |\\n\\nEach SST file descriptor is a list containing the following elements:\\n\\n* Level of the file\\n* Number (id) of the file\\n* Hex encoded smallest key found in the file\\n* Hex encoded largest key found in the file\\n\\n\\n@param `secret` LevelDB secret.\\n\\n@param `report` Report about the SST files of the LevelDB database.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTREPORT\"},{\"name\":\"SSTTIMESTAMP\",\"detail\":\"SSTTIMESTAMP( key:STRING ): ts:LONG\\nSSTTIMESTAMP( bkey:BYTES ): ts:LONG\",\"documentation\":\"Given a key from an SST File, for example as returned by `SSTREPORT`, extracts the timestamp encoded in the key (in the platform time units).\\n\\n@param `key` Hex encoded SST File key from which to extract the timestamp.\\n\\n@param `bkey` Byte array containing an SST File key from which to extract the timestamp.\\n\\n@param `ts` Extracted timestamp.\\n\\n\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTTIMESTAMP\"},{\"name\":\"STACKATTRIBUTE\",\"detail\":\"STACKATTRIBUTE( name:STRING ): value:ANY\",\"documentation\":\"Retrieves the value of a stack attribute.\\n\\n@param `name` Name of the stack attribute to retrieve.\\n\\n@param `value` Associated value or null if attribute is not set.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STACKATTRIBUTE\"},{\"name\":\"STACKPSSECRET\",\"detail\":\"STACKPSSECRET( newsecret:STRING secret:STRING ): \",\"documentation\":\"Modifies the secret needed for using functions such as `WSPS`, `WSSTOP` and `WSKILL`.\\n\\nThis function is only usable if a secret was configured using `stackps.secret`.\\n\\n@param `secret` Current secret for process status operations, initially the value configured via `stackps.secret`.\\n\\n@param `newsecret` New secret to set for process status operations.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"STACKPSSECRET\"},{\"name\":\"STACKTOLIST\",\"detail\":\"STACKTOLIST( stack:ANY* ): list:LIST\",\"documentation\":\"Converts the whole stack into a list and pushes this list on top of the stack. The elements are consumed off the stack in the way [`->LIST`](/doc/AItBHKCJ) does it.\\n\\n@param `stack` Content of the stack.\\n\\n@param `list` List containing the elements of the stack.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"STACKTOLIST\"},{\"name\":\"STANDARDIZE\",\"detail\":\"STANDARDIZE( gts:GTS ): result:GTS\\nSTANDARDIZE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"documentation\":\"Standardizes a single (or a list of) numeric Geo Time Series™ (i.e. it replaces X by (X-mu)/sd).\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STANDARDIZE\"},{\"name\":\"STDERR\",\"detail\":\"STDERR( msg:STRING ): \",\"documentation\":\"The `STDERR` function prints text to the standard error stream.\\n\\nThe `STDERR` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDERR\"},{\"name\":\"STDIN\",\"detail\":\"STDIN(): iterable:OBJECT\",\"documentation\":\"The `STDIN` function outputs an iterable which allows to iterate over the lines present in the standard input.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `iterable` An iterable containing the lines from standard input.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"STDIN\"},{\"name\":\"STDOUT\",\"detail\":\"STDOUT( obj:ANY ): \",\"documentation\":\"The `STDOUT` function prints text to the standard output stream.\\n\\nThe `STDOUT` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `obj` The object to print. Its `.toString()` method is used to generate the outputed String.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDOUT\"},{\"name\":\"STL\",\"detail\":\"STL( gts:GTS { p:LONG  } ): result:GTS\\nSTL( gtsList:LIST<GTS> { p:LONG  } ): resultList:LIST<GTS>\",\"documentation\":\"The `STL` function applies a Seasonal Trend decomposition on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is based on multiple calls of [`RLOWESS`](/doc/RLOWESS).\\n\\nThese Geo Time Series™ are the seasonal part and the trend part of the input Geo Time Series™. Their classnames are suffixed with \\\"_seasonal\\\" and \\\"_trend\\\".\\n\\nThis function can only be applied to [bucketized](/doc/BUCKETIZE) Geo Time Series™ of numeric type.\\n\\nThe **MAP** parameter must have at least the field `PERIOD`. You can provide additional optional parameters:\\n\\n## Optional parameters\\n### Global\\n- `ROBUST` if TRUE, set defaults of number of inner and outer loops to 1 and 15 instead of 2 and 0. Default is FALSE\\n- `PRECISION` number of inner loops (a LONG). Default is 2 or 1\\n- `ROBUSTNESS` number of outer loops (a LONG). Default is 0 or 15\\n\\n### Seasonal extract\\n- `BANDWIDTH_S` the bandwidth (a LONG) of the local regression. Default is 7\\n- `DEGREE_S` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_S` the number of values interpolated instead of estimated. Default is BANDWIDTH_S/10\\n\\n### Low frequency filtering\\n- `BANDWIDTH_L` the bandwidth (a LONG) of the local regression. Default is nextOdd(PERIOD)\\n- `DEGREE_L` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_L` the number of values interpolated instead of estimated. Default is BANDWIDTH_L/10\\n\\n### Trend extract\\n- `BANDWIDTH_T` the bandwidth (a LONG) of the local regression. Default is nextOdd(ceiling(1.5*PERIOD/(1-(1.5/BANDWIDTH_S))))\\n- `DEGREE_T` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_T` the number of values interpolated instead of estimated. Default is BANDWIDTH_T/10\\n\\n### Post seasonal smoothing\\n- `BANDWIDTH_P` the bandwidth (a LONG) of the local regression. Default is 0 (i.e. no post smoothing)\\n- `DEGREE_P` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_P` the number of values interpolated instead of estimated. Default is BANDWIDTH_P/10\\n\\n### Additional fields\\n- `BANDWIDT` value of all BANDWIDTH_X fields that are not set\\n- `DEGREE` value of all DEGREE_X fields that are not set\\n- `SPEED` value of all SPEED_X fields that are not set\\n\\n> ### REFERENCE\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"tags\":[\"gts\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"STL\"},{\"name\":\"STLESDTEST\",\"detail\":\"STLESDTEST( gts:GTS p:LONG k:LONG alpha:DOUBLE STLOption:MAP ): result:LIST<LONG>\\nSTLESDTEST( gts:GTS p:LONG k:LONG alpha:DOUBLE ): result:LIST<LONG>\\nSTLESDTEST( gts:GTS p:LONG k:LONG STLOption:MAP ): result:LIST<LONG>\\nSTLESDTEST( gts:GTS p:LONG k:LONG ): result:LIST<LONG>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG alpha:DOUBLE STLOption:MAP ): resultList:LIST<LIST<LONG>>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG alpha:DOUBLE ): resultList:LIST<LIST<LONG>>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG STLOption:MAP ): resultList:LIST<LIST<LONG>>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG ): resultList:LIST<LIST<LONG>>\",\"documentation\":\"The 'STLESDTEST' function detects outliers in a Geo Time Series™ (or a **LIST** of Geo Time Series™) which has a seasonal part.\\n\\nThe seasonal part and the trend part of the Geo Time Series™ are extracted using [`STL`](/doc/STL) decomposition, then an [`ESDTEST`](/doc/ESDTEST) is performed on the remainder.\\n\\nThis function only applies to [bucketized](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ### References\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n> **Rosner, Bernard (May 1983)**, \\\"Percentage Points for a Generalized ESD Many-Outlier Procedure\\\",Technometrics, 25(2), pp. 165-172.\\n\\n@param `STLOption` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `resultList` A **LIST** of ticks corresponding to the outliers\\n\\n@param `result` A **LIST** of LIST of ticks corresponding to the outliers\\n\\n\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STLESDTEST\"},{\"name\":\"STOP\",\"detail\":\"\",\"documentation\":\"The `STOP` function stops the current execution by throwing a `WarpScriptStopException`. This means that the current script execution will be aborted unless the call to `STOP` was in a macro invoked via [`TRY`](/doc/TRY).\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"STOP\"},{\"name\":\"STORE\",\"detail\":\"STORE( value:ANY symbol:STRING ): \\nSTORE( value:ANY register:LONG ): \\nSTORE( values:ANY* symbols:LIST<STRING> ): \",\"documentation\":\"The `STORE` function stores a value in a symbol.\\n\\nSince 2.7, when the list of symbols contains duplicates only the last occurence in the list is assigned to its corresponding value.\\n\\n@param `symbol` Name of the symbol to modify.\\n\\n@param `register` Index of the register to modify.\\n\\n@param `symbols` List of symbols or registers to modify. The last element of the list will contain the top of the stack.\\n\\n@param `value` Value to store under `symbol`.\\n\\n@param `values` Multiple values to store in `symbols`.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STORE\"},{\"name\":\"STRICTMAPPER\",\"detail\":\"STRICTMAPPER( mapper:AGGREGATOR min:NUMBER max:NUMBER ): wrapped:AGGREGATOR\\nSTRICTMAPPER( macro:MACRO min:NUMBER max:NUMBER ): wrappedMacro:MACRO\",\"documentation\":\"Wraps a *mapper* or a *macro* in such a way that MAP will only call it if the number of ticks in the window is in the specified range.\\n\\nSince 2.1 STRICTMAPPER can also take a timespan definition by inputing negative numbers. Number of ticks and timespan can also be mixed to specify, for instance, more than 2 points but less than 5 seconds.\\n\\nPrior to 2.8 STRICTMAPPER could only wrap a mapper, now it can also wrap a macro if this macro is expected to be used as a mapper.\\n\\n@param `max` If positive, maximum number of ticks in the window. If negative, maximum timespan of the window.\\n\\n@param `min` If positive, minimum number of ticks in the window. If negative, minimum timespan of the window.\\n\\n@param `mapper` Mapper to wrap.\\n\\n@param `wrapped` Wrapped mapper.\\n\\n@param `macro` Macro to wrap\\n\\n@param `wrappedMacro` Wrapped macro\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTMAPPER\"},{\"name\":\"STRICTPARTITION\",\"detail\":\"STRICTPARTITION( lgts:LIST<GTS> labels:LIST<STRING> ): result:MAP\",\"documentation\":\"The `STRICTPARTITION` splits a Geo Time Series™ list in equivalence classes based on label values just like [`PARTITION`](/doc/PARTITION) but only retains in each equivalence class key the labels on which the partitioning was done.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels`.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTPARTITION\"},{\"name\":\"STRICTREDUCER\",\"detail\":\"STRICTREDUCER( reducer:AGGREGATOR ): wrapped:AGGREGATOR\",\"documentation\":\"Wraps a *reducer* so it is only applied if there are values for all the Geo Time Series™ being reduced.\\n\\n@param `reducer` Reducer to wrap.\\n\\n@param `wrapped` Wrapped version of the reducer.\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.6\",\"OPB64name\":\"STRICTREDUCER\"},{\"name\":\"STRINGFORMAT\",\"detail\":\"STRINGFORMAT( format:STRING args:LIST ): formattedString:STRING\\nSTRINGFORMAT( format:STRING args:LIST locale:STRING ): formattedString:STRING\",\"documentation\":\"The STRINGFORMAT function format a String in the same ways as Java [String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.util.Locale-java.lang.String-java.lang.Object...-) does.\\n\\nThis function consumes an optional locale in [ISO 639](http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry), a list of Objects to be used in the format string and a [format string](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax).\\n\\nIf no locale is specified, it defaults to the default JVM locale.\\n\\n@param `format` A format string.\\n\\n@param `args` Arguments referenced by the format specifiers in the format string.\\n\\n@param `locale` The locale to apply during formatting.\\n\\n@param `formattedString` A formatted string.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"2.2.0\",\"OPB64name\":\"STRINGFORMAT\"},{\"name\":\"STU\",\"detail\":\"STU(): numberTimeUnits:LONG\",\"documentation\":\"The `STU` function pushes onto the stack the number of platform time units in one second. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one second.\\n\\n\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"STU\"},{\"name\":\"SUBLIST\",\"detail\":\"SUBLIST( base:LIST<ANY> arguments:LIST<LONG> ): result:LIST<ANY>\\nSUBLIST( base:LIST<ANY> start:NUMBER ): result:LIST<ANY>\\nSUBLIST( base:LIST<ANY> start:NUMBER end:NUMBER ): result:LIST<ANY>\\nSUBLIST( base:LIST<ANY> start:NUMBER end:NUMBER step:NUMBER ): result:LIST<ANY>\",\"documentation\":\"It creates a new list with the elements of the base list whose indices are in the argument list.\\n\\nIf the argument list contains two indices [a,b] then `SUBLIST` returns the list of elements from index a to index b (included). If the argument list contains more than two indices, the result of `SUBLIST` contains all the elements at the specified indices, with possible duplicates.\\n\\nNegative indexing is allowed, with negative index effectively referring to index + size.\\n\\nSince 2.1 a new signature allowing the step to be defined has been introduced. Instead of specifying a list has range, you can put the start, end (optional) and step (optional) as **LONG** values.\\n\\n@param `arguments` List of indices. Negative indices are considered to be calculated from the end of the list.\\n\\n@param `base` Base list\\n\\n@param `result` Filtred list\\n\\n@param `start` The first index to consider, will be included.\\n\\n@param `end` The last index to consider, will be included. If not specified, defaults to -1.\\n\\n@param `step` The delta between two consecutive indexes to consider. If end is after start in the list, step must be strictly positive. If start is after end in the list, step must be strictly negative. If not specified, defaults to 1 or -1 depending on start and end.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBLIST\"},{\"name\":\"SUBMAP\",\"detail\":\"SUBMAP( base:MAP arguments:LIST<STRING> ): result:MAP\",\"documentation\":\"It creates a new map with the key-value pairs from the base map whose keys are in the argument list.\\n\\n@param `arguments` List of indices.\\n\\n@param `base` Base map\\n\\n@param `result` Filtred map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBMAP\"},{\"name\":\"SUBSTRING\",\"detail\":\"SUBSTRING( str:STRING start:LONG len:LONG ): substr:STRING\\nSUBSTRING( str:STRING start:LONG ): substr:STRING\\nSUBSTRING( array:BYTES start:LONG len:LONG ): subarray:BYTES\\nSUBSTRING( array:BYTES start:LONG ): subarray:BYTES\",\"documentation\":\"Extract a substring from a **STRING** input, or a subarray from a **BYTE ARRAY** input.  \\nIf the length is ommitted, it extracts until the end of the string or byte array. If length is greater than max length, extract stops at the input end.\\n\\nIf the start is greater than the input size, `SUBSTRING` raises an error.\\n\\nSince 2.1, the start index can be negative. In this case the effective index is index + size of the **STRING**.\\n\\n@param `len` Length of substring to extract.\\n\\n@param `start` First character to include in the substring (0 based).\\n\\n@param `str` String from which to extract a substring.\\n\\n@param `substr` Extracted substring.\\n\\n@param `array` Byte array from which to extract a sub array.\\n\\n@param `subarray` Extracted sub array.\\n\\n\",\"tags\":[\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBSTRING\"},{\"name\":\"SUBTRACTEXACT\",\"detail\":\"SUBTRACTEXACT( x:NUMBER y:NUMBER ): diff:LONG\\nSUBTRACTEXACT( list:LIST<NUMBER> ): sdiff:LONG\\nSUBTRACTEXACT( lx:LIST<NUMBER> y:NUMBER ): ldiff:LIST<LONG>\\nSUBTRACTEXACT( gts:GTS ): gdiff:LONG\\nSUBTRACTEXACT( gtsx:GTS y:NUMBER ): gtsdiff:LIST<LONG>\",\"documentation\":\"The `SUBTRACTEXACT` function consumes two LONGs from the top of the stack and puts back the difference between them. If the difference overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `diff` The difference of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sdiff` The first element of the list minus all the others\\n\\n@param `gdiff` The first value of the gts minus all the others\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `ldiff` List of **LONG** where each value is the difference of y and an element in lx\\n\\n@param `gtsdiff` GTS of **LONG** values where each value is the difference of y and an element in gtsx\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SUBTRACTEXACT\"},{\"name\":\"SWAP\",\"detail\":\"SWAP( level2:ANY top:ANY ): top:ANY level2:ANY\",\"documentation\":\"Exchanges the positions of the top two elements of the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWAP\"},{\"name\":\"SWITCH\",\"detail\":\"SWITCH( cond1:MACRO exec1:MACRO condn:MACRO execn:MACRO default:MACRO n:LONG ): \",\"documentation\":\"Performs a [switch statement](https://en.wikipedia.org/wiki/Switch_statement) allowing to select a macro execution based on a series of condition macros or to fallback on to the execution of a default macro.\\n\\n@param `n` Number of cases to consider. The `SWITCH` function will expect `n` pairs of condition/execution macros plus a default macro on the stack.\\n\\n@param `default` Macro which will be executed if all condition macros returned false.\\n\\n@param `cond1` First condition macro. All condition macros are expected to push a boolean on the stack.\\n\\n@param `condn` `n`th condition macro.\\n\\n@param `exec1` First execution macro, this macro will be executed if `cond1` left `true` on the stack.\\n\\n@param `execn` `n`th execution macro.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWITCH\"},{\"name\":\"SYMBOLS\",\"detail\":\"SYMBOLS(): symbols:LIST\",\"documentation\":\"The `SYMBOLS` function outputs the list of all defined symbols.\\n\\n@param `symbols` The list of the names of all defined symbols.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.2.1\",\"OPB64name\":\"SYMBOLS\"},{\"name\":\"SYNC\",\"detail\":\"SYNC( macro:MACRO ): \",\"documentation\":\"Executes a macro in a synchronized way while in a parallel execution triggered by a call to [`CEVAL`](/doc/CEVAL). If `SYNC` is called outside of a parallel execution, it simply executes the macro.\\n\\nWhen called within a `CEVAL` execution, the use of `SYNC` guarantees that only one of the concurrently executing threads will execute the specified macro at any given time.\\n\\n@param `macro` Macro to execute in a synchronized way.\\n\\n\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"SYNC\"},{\"name\":\"T\",\"detail\":\"T(): b:BOOLEAN\",\"documentation\":\"`T` stand for `true`. It is a boolean constant.\\n\\n\\n@param `b` true\\n\\n\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"T\"},{\"name\":\"TAN\",\"detail\":\"TAN( value:NUMBER ): result:DOUBLE\\nTAN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTAN( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `TAN` function consumes a floating point number from the top of the stack and pushes back its tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Tangent of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the tangent of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TAN\"},{\"name\":\"TANH\",\"detail\":\"TANH( value:NUMBER ): result:DOUBLE\\nTANH( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTANH( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `TANH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic tangent of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic tangent of the given GTS values\\n\\n\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TANH\"},{\"name\":\"TDESCRIBE\",\"detail\":\"TDESCRIBE( object:ANY ): description:STRING\",\"documentation\":\"The `TDESCRIBE` function is a recursive [`TYPEOF`](/doc/TYPEOF).\\n\\nWhen `TDESCRIBE` finds a LIST, it takes the first element of the list to look for his type. When `TDESCRIBE` finds a MAP, it takes a random key in the map to look for the type of the key and the type of the value.\\n\\n**By design, TDESCRIBE cannot describe heterogeneous lists or maps.**\\n\\nTDESCRIBE output is subject to change in the future. Do not try to parse it. This function is here to help you during Warpscript development.\\n\\n\\nThe `TDESCRIBE` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `object` Any kind of reference\\n\\n@param `description` The description of the object\\n\\n\",\"tags\":[\"extensions\",\"debug\"],\"since\":\"1.2.19\",\"OPB64name\":\"TDESCRIBE\"},{\"name\":\"TEMPLATE\",\"detail\":\"TEMPLATE( template:STRING dictionnary:MAP ): output:STRING\\nTEMPLATE( template:STRING listofmaps:LIST<MAP> ): output:STRING\",\"documentation\":\"`TEMPLATE` fills a template with values contained in a map. See example for syntax help.\\n\\nThe `TEMPLATE` function expects the map of values on top of the stack and will operate on the string template below it.\\n\\nValues speficied with `{{key}}` will be html-escaped. If you do not want that behavior, use `{{{key}}}`.\\n\\n@param `dictionnary` Each key will be replaced in a {{key}} template. Value could be string long, double, boolean, or a list of maps. If Value is a list of maps, each subkey/value will be replaced in a {{#key}}{{subkey}}{{/key}} template. \\n\\n@param `listofmaps` Contains a list of subkey/value map. Will be replaced in a {{#key}}{{subkey}}{{/key}} template.\\n\\n@param `template` Input template.\\n\\n@param `output` Result of substitution.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TEMPLATE\"},{\"name\":\"THRESHOLDTEST\",\"detail\":\"THRESHOLDTEST( gts:GTS threshold:DOUBLE ): ticks:LIST<LONG>\\nTHRESHOLDTEST( lgts:LIST<GTS> threshold:DOUBLE ): lticks:LIST<LIST<LONG>>\",\"documentation\":\"Analyzes Geo Time Series™, identifying ticks where values are outliers above the given threshold.\\n\\n@param `threshold` Threshold above which values are considered outliers.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `ticks` List of ticks where outliers were found.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lticks` List of lists of ticks where outliers were found.\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"THRESHOLDTEST\"},{\"name\":\"TICKINDEX\",\"detail\":\"TICKINDEX( gts:GTS ): indexed:GTS\\nTICKINDEX( lgts:LIST<GTS> ): lindexed:LIST<GTS>\\nTICKINDEX( encoder:GTSENCODER ): indexedenc:GTSENCODER\\nTICKINDEX( lencoder:LIST<GTSENCODER> ): lindexedenc:LIST<GTSENCODER>\",\"documentation\":\"Creates a clone of a Geo Time Series™, replacing each tick with the index (0 based) at which it appears at the moment of the call.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `encoder` Geo Time Series™ Encoder instance to transform.\\n\\n@param `indexed` Transformed GTS.\\n\\n@param `indexedenc` Transformed GTS Encoder.\\n\\n@param `lgts` List of Geo Time Series™ instances to transform.\\n\\n@param `lencoder` List of Geo Time Series™ Encoder instances to transform.\\n\\n@param `lindexed` List of indexed Geo Time Series™.\\n\\n@param `lindexedenc` List of indexed Geo Time Series™ Encoder.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKINDEX\"},{\"name\":\"TICKLIST\",\"detail\":\"TICKLIST( gts:GTS ): ticks:LIST<LONG>\\nTICKLIST( lgts:LIST<GTS> ): lticks:LIST<LIST<LONG>>\\nTICKLIST( encoder:GTSENCODER ): ticks:LIST<LONG>\\nTICKLIST( lencoder:LIST<GTSENCODER> ): lticks:LIST<LIST<LONG>>\",\"documentation\":\"Pushes onto the stack the list of ticks of a Geo Time Series™ or encoder. The ticks appear in the order in which they are found.\\n`TICKLIST` is consistent with [`VALUES`](/doc/VALUES).\\n\\n\\nIf a list of Geo Time Series™ is given, the result is a list of list of ticks as if the TICKLIST function was applied to each Geo Time Series™ separately.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n@param `encoder` Instance of encoder from which to extract the ticks.\\n\\n@param `lencoder` List of encoders.\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `lticks` List of lists of ticks.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKLIST\"},{\"name\":\"TICKS\",\"detail\":\"TICKS( gts:GTS ): ticks:LIST<LONG>\\nTICKS( lgts:LIST<GTS> ): ticks:LIST<LONG>\",\"documentation\":\"Pushes onto the stack the sorted list of **distinct** ticks of a Geo Time Series™. If a list of Geo Time Series™ is given, all the **distinct** ticks are returned in a single sorted list as if all Geo Time Series™ were merged.\\n\\nThis function is not to be confused with [`TICKLIST`](/doc/TICKLIST) as this function returns **distinct** ticks and acts as it merges Geo Time Series™.\\n\\n** Warning:** To be consistent with [`VALUES`](/doc/VALUES), use [`TICKLIST`](/doc/TICKLIST).\\n\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKS\"},{\"name\":\"TIGER\",\"detail\":\"TIGER( input:BYTES ): result:BYTES\",\"documentation\":\"The `TIGER` function digests a byte array on the stack with the cryptographic hash function [Tiger](https://en.wikipedia.org/wiki/Tiger_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"TIGER\"},{\"name\":\"TIMEBOX\",\"detail\":\"TIMEBOX( macro:MACRO maxtime:LONG ): \",\"documentation\":\"The `TIMEBOX` executes a macro with a maximum execution time. If the maximum time is reached, an exception will be thrown which can be caught using [`TRY`](/doc/TRY).\\n\\n@param `maxtime` Maximum execution time, in platform time units.\\n\\n@param `macro` Macro to execute.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TIMEBOX\"},{\"name\":\"TIMECLIP\",\"detail\":\"TIMECLIP( gts:GTS end:LONG duration:LONG ): clipped:GTS\\nTIMECLIP( lgts:LIST<GTS> end:LONG duration:LONG ): lclipped:LIST<GTS>\\nTIMECLIP( gts:GTS stop:STRING start:STRING ): clipped:GTS\\nTIMECLIP( lgts:LIST<GTS> stop:STRING start:STRING ): lclipped:LIST<GTS>\\nTIMECLIP( encoder:GTSENCODER end:LONG duration:LONG ): clippedEncoder:GTSENCODER\\nTIMECLIP( lencoder:LIST<GTSENCODER> end:LONG duration:LONG ): lclippedEncoders:LIST<GTSENCODER>\\nTIMECLIP( encoder:GTSENCODER stop:STRING start:STRING ): clippedEncoder:GTSENCODER\\nTIMECLIP( lencoder:LIST<GTSENCODER> stop:STRING start:STRING ): lclippedEncoders:LIST<GTSENCODER>\",\"documentation\":\"Clips Geo Time Series™ instances by restricting their ticks to those within a time interval.      \\n\\n@param `duration` Width of the time interval to retain, in time units.\\n\\n@param `end` Most recent timestamp to retain.\\n\\n@param `start` Start timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `stop` End timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `clipped` Clipped Geo Time Series™.\\n\\n@param `lclipped` List of clipped GTS.\\n\\n@param `encoder` Single GTS Encoder instance.\\n\\n@param `lencoder` List of GTS Encoder instances.\\n\\n@param `clippedEncoder` Clipped GST encoder.\\n\\n@param `lclippedEncoders` List of clipped GTS encoders.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMECLIP\"},{\"name\":\"TIMED\",\"detail\":\"TIMED( macro:MACRO name:STRING ): timedMacro:MACRO\",\"documentation\":\"The `TIMED` function converts a macro to a timed macro, recording its execution time and its number of calls.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\n@param `name` A name identifying the macro.\\n\\n@param `macro` The macro you want to monitor.\\n\\n@param `timedMacro` A macro which, when called, will update the statitics associated with the given name.\\n\\n\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"TIMED\"},{\"name\":\"TIMEMODULO\",\"detail\":\"TIMEMODULO( gts:GTS modulus:LONG label:STRING ): splits:LIST<GTS>\\nTIMEMODULO( lgts:LIST<GTS> modulus:LONG label:STRING ): lsplits:LIST<LIST<GTS>>\",\"documentation\":\"Splits Geo Time Series™ into sub-GTS whose timestamps are the original timestamp modulo a given modulus value. Each sub-GTS will bear a label with the quotient of the original timestamps divided by the modulus. The output list order is not guaranteed, use [`SORTBY`](/doc/SORTBY) if you want to order the output by label.\\n\\nThis function can be used to generate for example one Geo Time Series™ per day with ticks from 0 to 86400 s (excluded).\\n\\n@param `label` Name of the label which will have the quotient value.\\n\\n@param `modulus` Value by which to divide the original timestamps.\\n\\n@param `gts` Geo Time Series™ to split.\\n\\n@param `splits` Resulting splits.\\n\\n@param `lgts` List of GTS to split.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMEMODULO\"},{\"name\":\"TIMEOFF\",\"detail\":\"TIMEOFF(): \",\"documentation\":\"Turns off the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEOFF\"},{\"name\":\"TIMEON\",\"detail\":\"TIMEON(): \",\"documentation\":\"Turns on the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEON\"},{\"name\":\"TIMESCALE\",\"detail\":\"TIMESCALE( gts:GTS scale:DOUBLE ): scaled:GTS\\nTIMESCALE( gts:GTS scale:LONG ): scaled:GTS\\nTIMESCALE( lgts:LIST<GTS> scale:DOUBLE ): lscaled:LIST<GTS>\\nTIMESCALE( lgts:LIST<GTS> scale:LONG ): lscaled:LIST<GTS>\",\"documentation\":\"Modifies the ticks of Geo Time Series™ instances by multiplying each tick by a provided scale.      \\n\\nThe resulting tick will be converted to a LONG after multiplication by the scale.\\n\\nIf the Geo Time Series™ instance is bucketized, the `lastbucket` and `bucketspan` parameters will also be scaled. If the scale would incur a `bucketspan` of 0, the call will end with an error.\\n\\n@param `scale` Scale by which to multiply each tick.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `scaled` Geo Time Series™ result.\\n\\n@param `lscaled` List of Geo Time Series™ result.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESCALE\"},{\"name\":\"TIMESHIFT\",\"detail\":\"TIMESHIFT( gts:GTS offset:LONG ): shifted:GTS\\nTIMESHIFT( lgts:LIST<GTS> offset:LONG ): lshifted:LIST<GTS>\",\"documentation\":\"Shifts the ticks of Geo Time Series™ instances by a given amount.\\n\\n@param `offset` Offset to apply to the ticks, in time units.\\n\\n@param `gts` Single Geo Time Series™ instance to shift.\\n\\n@param `lgts` List of GTS to shift.\\n\\n@param `shifted` Shifted Geo Time Series™.\\n\\n@param `lshifted` List of shifted Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESHIFT\"},{\"name\":\"TIMESPLIT\",\"detail\":\"TIMESPLIT( gts:GTS quietperiod:LONG minvalues:LONG label:STRING ): splits:LIST<GTS>\\nTIMESPLIT( lgts:LIST<GTS> quietperiod:LONG minvalues:LONG label:STRING ): lsplits:LIST<LIST<GTS>>\",\"documentation\":\"The `TIMESPLIT` functions splits Geo Time Series™ instances based on *quiet periods*, *i.e.* periods during which the GTS has no values.\\n\\nWhenever a quiet period longer than a minimum duration is encountered, the Geo Time Series™ is split.\\n\\nIf input gts has no values or if 'label' is already part of the labels of 'gts', then the resulting list of GTS will only contain a clone of 'gts'. **Make sure to test your GTS split size if needed.**\\n\\n@param `label` Name of label in which to store the sequence number.\\n\\n@param `minvalues` Minimum number of values a split should contain. Splits with less than that many values will be discarded.\\n\\n@param `quietperiod` Minimum duration of the silent period (*i.e.* with no values) between splits.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESPLIT\"},{\"name\":\"TIMINGS\",\"detail\":\"\",\"documentation\":\"Turns on the collection of timing information for each line of the script. The collected timings can be put onto the stack by using [`ELAPSED`](/doc/ELAPSED).\\n\\nTo measure executions of named tasks (several lines of WarpScript, possibly nested inside macros), prefer [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND), with [`CHRONOSTATS`](/doc/CHRONOSTATS) to display results.\\n\\n\\n\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMINGS\"},{\"name\":\"TLTTB\",\"detail\":\"TLTTB( gts:GTS samples:LONG ): downsampled:GTS\\nTLTTB( lgts:LIST<GTS> samples:LONG ): ldownsampled:LIST<GTS>\",\"documentation\":\"The `TLTTB` function performs downsampling of Geo Time Series™ by applying the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data. It differs from the [`LTTB`](doc/LTTB) function by the fact that it considers time based buckets instead of buckets based on a number of values.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"TLTTB\"},{\"name\":\"TOBIN\",\"detail\":\"TOBIN( input:STRING ): output:STRING\\nTOBIN( input:BYTES ): output:STRING\\nTOBIN( input:LONG ): output:STRING\\nTOBIN( input:BITSET ): output:STRING\",\"documentation\":\"Converts the long on top of the stack to its 64 bits binary representation.\\n\\nSince the 2.8.0 version, this function also converts the byte array or the string on top of the stack to its binary representation. Thus, this function and [\\\\->BIN](/doc/AIt1HJs) are equivalent.\\n\\n@param `input` value to convert\\n\\n@param `output` String converted binary representation of param\\n\\n\",\"tags\":[\"conversion\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBIN\"},{\"name\":\"TOBITS\",\"detail\":\"TOBITS( number:NUMBER ): bits:LONG\\nTOBITS( gts:GTS ): longgts:GTS\",\"documentation\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n**Deprecation notice** the `TOBITS` function will be removed, please use `->DOUBLEBITS` or `->FLOATBITS`.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBITS\"},{\"name\":\"TOBOOLEAN\",\"detail\":\"TOBOOLEAN( value:BOOLEAN ): result:BOOLEAN\\nTOBOOLEAN( value:NUMBER ): result:BOOLEAN\\nTOBOOLEAN( value:STRING ): result:BOOLEAN\",\"documentation\":\"Converts a value of primitive type into a boolean value.\\n\\nThe `TOBOOLEAN` function consumes a parameter from the top of the stack and pushes back its conversion to boolean.\\nNumbers will be false if they are equal to 0 and true otherwise.\\nStrings will be false if they are equals to '' and true otherwise.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The boolean conversion of the value\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.5\",\"OPB64name\":\"TOBOOLEAN\"},{\"name\":\"TODEGREES\",\"detail\":\"TODEGREES( angle:NUMBER ): result:DOUBLE\\nTODEGREES( langle:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTODEGREES( gts:GTS ): gtsresult:GTS\",\"documentation\":\"Converts an angle measured in radians to its equivalent in degrees.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from radians to degrees.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in radian to convert in degree\\n\\n@param `result` Result of the conversion from radians to degrees\\n\\n@param `langle` List of angles in radian to convert in degree\\n\\n@param `lresult` List of results of the conversion from radians to degrees\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from radians to degrees of the given GTS values\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODEGREES\"},{\"name\":\"TODOUBLE\",\"detail\":\"TODOUBLE( value:BOOLEAN ): result:DOUBLE\\nTODOUBLE( value:NUMBER ): result:DOUBLE\\nTODOUBLE( value:STRING ): result:DOUBLE\",\"documentation\":\"Converts a value of primitive type into a double value.\\n\\nThe `TODOUBLE` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to double.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The double conversion of the value\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODOUBLE\"},{\"name\":\"TOHEX\",\"detail\":\"TOHEX( input:STRING ): output:STRING\\nTOHEX( input:BYTES ): output:STRING\\nTOHEX( input:LONG ): output:STRING\",\"documentation\":\"Converts a long to its 64 bits hexadecimal representation.\\n\\nSince the 2.8.0 version this function also decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV). Thus, this function is equivalent to [`->HEX`](/doc/AIt7GKV).\\n\\n@param `input` Signed long integer.\\n\\n@param `output` Hexadecimal string representation of input.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOHEX\"},{\"name\":\"TOINTEXACT\",\"detail\":\"TOINTEXACT( value:NUMBER ): result:LONG\\nTOINTEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nTOINTEXACT( gts:GTS ): gtsresult:GTS\",\"documentation\":\"The `TOINTEXACT` function consumes one NUMBER from the top of the stack and puts back the value. If the result overflows an INT, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be checked not to overflow an INT\\n\\n@param `result` The given value\\n\\n@param `lvalue` List of values to be checked not to overflow an INT\\n\\n@param `lresult` List of given values\\n\\n@param `gts` Numerical GTS whose values are to be checked not to overflow an INT\\n\\n@param `gtsresult` A copy of the given GTS\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"TOINTEXACT\"},{\"name\":\"TOKENDUMP\",\"detail\":\"TOKENDUMP( token:STRING ): map:MAP\\nTOKENDUMP( token:STRING secret:STRING ): map:MAP\\nTOKENDUMP( token:STRING aes:BYTES hash:BYTES ): map:MAP\",\"documentation\":\"Deciphers a token and outputs a map describing the various elements of the token.\\n\\nThe map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Original token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| params | MAP | Map of token parameters, can be used as input to [`TOKENGEN`](/doc/TOKENGEN) |\\n\\nThe `params` map contains the following entries for both `READ` and `WRITE` tokens:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| type  | STRING | `READ` or `WRITE` depending on the type of token |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application asociated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in ms since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in ms since the Unix Epoch |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nAdditionally, for `READ` tokens, the map contains those entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, those will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nNote that the `TOKENDUMP` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration key was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to decode the token.\\n\\n@param `token` Token to decode.\\n\\n@param `map` Map with the extracted parameters, the original token and its *ident*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENDUMP` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENDUMP\"},{\"name\":\"TOKENGEN\",\"detail\":\"TOKENGEN( params:MAP ): result:MAP\\nTOKENGEN( params:MAP secret:STRING ): result:MAP\\nTOKENGEN( params:MAP aes:BYTES hash:BYTES ): result:MAP\",\"documentation\":\"Generates a token given a map of parameters. The `TOKENGEN` function outputs a map.\\n\\nThe input parameter map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| id | STRING | Optional identifier that will be put verbatim in the result map |\\n| type  | STRING | `READ` or `WRITE` depending on the type of token to generate |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application associated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| ttl | LONG | If `expiry` is not specified, a time to live can be set with this key. The TTL is expressed in **milliseconds**, the computed expiry timestamp will be the issuance timestamp plus the ttl |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nWhen generating a `READ` token, the following parameters are needed to ensure data isolation:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, they will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nIf one of these parameter key is not set or set to an empty list, then the generated `READ` token will be granted access to all the scope associated with the parameter key. For example, if `owners` is not set, data from all owners will be accessible to this token.\\n\\nThe `TOKENGEN` function outputs a map with the following keys:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Generated token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| id | STRING | Optional identifier if the `id` key was specified in the parameter map |\\n\\nNote that the `TOKENGEN` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to create the token.\\n\\n@param `params` Map of parameters used to generate the token.\\n\\n@param `result` Map containing the token, its *ident* and an optional *id*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENGEN` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENGEN\"},{\"name\":\"TOKENINFO\",\"detail\":\"TOKENINFO( token:STRING ): infos:MAP\",\"documentation\":\"Retrieves information from token.\\n\\nThe `TOKENINFO` function consumes a token from the top of the stack and pushes back a map containing the token information:\\n* type: type of token 'Read' or 'Write'\\n* issuance: timestamp of token creation, in **milliseconds** since the Unix Epoch \\n* expiry: timestamp of token expiration, in **milliseconds** since the Unix Epoch \\n* application: name of the application accessing the data\\n* apps: list of applications whose data can be accessed (usually limited to a single application)\\n\\n@param `token` Token to extract information\\n\\n@param `infos` Token information extract from the tokens\\n\\n\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOKENINFO\"},{\"name\":\"TOKENSECRET\",\"detail\":\"TOKENSECRET( newsecret:STRING secret:STRING ): \",\"documentation\":\"Modifies the secret needed for using `TOKENGEN` or `TOKENDUMP`.\\n\\nThis function is only usable if a secret was configured using `token.secret`.\\n\\n@param `secret` Current secret for token operations, initially the value configured via `token.secret`.\\n\\n@param `newsecret` New secret to set for token operations.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TOKENSECRET\"},{\"name\":\"TOLONG\",\"detail\":\"TOLONG( value:BOOLEAN ): result:LONG\\nTOLONG( value:NUMBER ): result:LONG\\nTOLONG( value:STRING ): result:LONG\\nTOLONG( array:BYTES ): result:LONG\",\"documentation\":\"Converts a value of primitive type or a **BYTE ARRAY** into a long value.\\n\\nThe `TOLONG` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to long.\\n\\nBeware of string inputs with leading zeros: it could be considered as octal. See examples below.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The long conversion of the value\\n\\n@param `array` Maximum 8 bytes to convert to a LONG. Sign is kept.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLONG\"},{\"name\":\"TOLOWER\",\"detail\":\"TOLOWER( input:STRING ): output:STRING\",\"documentation\":\"Converts the **STRING** on top of the stack to lower case.\\n\\n@param `input` input string\\n\\n@param `output` Lower case string\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLOWER\"},{\"name\":\"TORADIANS\",\"detail\":\"TORADIANS( angle:NUMBER ): result:DOUBLE\\nTORADIANS( langle:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTORADIANS( gts:GTS ): gtsresult:GTS\",\"documentation\":\"Converts an angle measured in degrees to its equivalent in radians.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from degrees to radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in degree to convert in radian\\n\\n@param `result` Result of the conversion from degree to radian\\n\\n@param `langle` List of angles in degree to convert in radian\\n\\n@param `lresult` List of results of the conversion from degree to radian\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from degree to radian of the given GTS values\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TORADIANS\"},{\"name\":\"TOSELECTOR\",\"detail\":\"TOSELECTOR( gts:GTS ): selector:STRING\\nTOSELECTOR( gtslist:LIST<GTS> ): selectorlist:LIST<STRING>\\nTOSELECTOR( encoder:GTSENCODER ): selector:STRING\\nTOSELECTOR( encoderlist:LIST<GTSENCODER> ): selectorlist:LIST<STRING>\",\"documentation\":\"The `TOSELECTOR` function takes a Geo Time Series™ or Geo Time Series™ LIST from the top of the stack and, for each encountered GTS, replace it with a selector which would select it.\\n\\nThis selector can be used as input of [`PARSESELECTOR`](/doc/PARSESELECTOR) for a [`FETCH`](/doc/FETCH).\\n\\n@param `gts` The input Geo Time Series™.\\n\\n@param `gtslist` The input list of Geo Time Series™.\\n\\n@param `encoder` The input encoder.\\n\\n@param `encoderlist` The input list of encoders.\\n\\n@param `selector` The selector string.\\n\\n@param `selectorlist` The list of selector strings, one per GTS in gtslist.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSELECTOR\"},{\"name\":\"TOSTRING\",\"detail\":\"TOSTRING( value:NUMBER ): result:STRING\\nTOSTRING( value:BOOLEAN ): result:STRING\\nTOSTRING( value:STRING ): result:STRING\\nTOSTRING( value:GTS ): result:STRING\",\"documentation\":\"Converts a value of primitive type into a string value.\\n\\nThe `TOSTRING` function consumes a parameter from the top of the stack and pushes back its conversion to string.\\n\\nNote that GTS are converted to input format and that the string ends with CRLF to follow HTTP recommendations.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The string conversion of the value\\n\\n\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSTRING\"},{\"name\":\"TOTIMESTAMP\",\"detail\":\"TOTIMESTAMP( input:STRING ): result:LONG\",\"documentation\":\"Converts a date in format ISO8601 into a timestamp in the platform's time unit.\\n\\nThe `TOTIMESTAMP` function consumes a string parameter (date + time + time zone) from the top of the stack and pushes back its conversion to a number of time units since the Unix Epoch.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nThe supported format is ISO8601 and are:\\n* yyyy-mm-dddThh:mm:ss.ssssssZ\\n* yyyy-mm-dddThh:mm:ss+hh:mm\\n\\nAs the string are URL encoded, the symbol + have to be replaced by %2B, otherwise a space will replace the + in the string.\\n\\n@param `input` ISO8601 string.\\n\\n@param `result` timestamp in the platform unit.\\n\\n\",\"tags\":[\"conversion\",\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOTIMESTAMP\"},{\"name\":\"TOUPPER\",\"detail\":\"TOUPPER( input:STRING ): output:STRING\",\"documentation\":\"Converts the **STRING** on top of the stack to upper case.\\n\\n@param `input` input string\\n\\n@param `output` Upper case string\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOUPPER\"},{\"name\":\"TR\",\"detail\":\"TR( matrix:MATRIX ): trace:DOUBLE\",\"documentation\":\"Computes the [trace](https://en.wikipedia.org/wiki/Trace_(linear_algebra)) of a square matrix. If the input matrix is not square, an error is raised.\\n\\n@param `matrix` The square matrix for which to compute the trace.\\n\\n@param `trace` The computed trace.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TR\"},{\"name\":\"TRANSPOSE\",\"detail\":\"TRANSPOSE( matrix:MATRIX ): transpose:MATRIX\",\"documentation\":\"Computes the [transpose](https://en.wikipedia.org/wiki/Transpose) of a matrix.\\n\\n@param `matrix` Matrix to transpose.\\n\\n@param `transpose` The transpose of the original matrix.\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TRANSPOSE\"},{\"name\":\"TRIM\",\"detail\":\"TRIM( str:STRING ): trimmedstr:STRING\",\"documentation\":\"Trims whitespaces from both ends of the string on top of the stack.\\n\\n@param `str` String to trim\\n\\n@param `trimmedstr` String trimmed\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TRIM\"},{\"name\":\"TRY\",\"detail\":\"TRY( try:MACRO catch:MACRO finally:MACRO ): \",\"documentation\":\"The `TRY` function provides a way to execute a macro in a safety harness with [Exception handling](https://en.wikipedia.org/wiki/Exception_handling).\\n\\nIf an error is thrown, it is recorded and will be available via [`ERROR`](/doc/ERROR).\\n\\n@param `try` Macro whose execution is *attempted*.\\n\\n@param `catch` Macro which will be executed if an error is encountered while executing the `try` macro.\\n\\n@param `finally` Macro which will be executed unconditionally after either the `try` or `try`/`catch` execution.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"TRY\"},{\"name\":\"TSELEMENTS\",\"detail\":\"TSELEMENTS( timestamp:LONG ): dateAndTimeElements:LIST<LONG>\\nTSELEMENTS( timestamp:LONG timezone:STRING ): dateAndTimeElements:LIST<LONG>\",\"documentation\":\"Alias of [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nThe `TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"TSELEMENTS\"},{\"name\":\"TSELEMENTS->\",\"detail\":\"TSELEMENTS->( dateAndTimeElements:LIST<LONG> ): timestamp:LONG\\nTSELEMENTS->( dateAndTimeElements:LIST<LONG> timezone:STRING ): timestamp:LONG\",\"documentation\":\"The `TSELEMENTS->` function consumes an optional **STRING** timezone and a **LIST** of **LONG** describing a time and date and pushes back the **LONG** timestamp. The **LIST** of **LONG** follows the format given by [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"K4C4I3KCGJtJJmoy\"},{\"name\":\"TYPEOF\",\"detail\":\"TYPEOF( object:ANY ): type:STRING\",\"documentation\":\"Gets the type of an element.\\n\\nThe `TYPEOF` function consumes the top element on the stack and pushes back a string containing the type. The output could be:\\n+ AGGREGATOR\\n+ BITSET\\n+ BOOLEAN\\n+ BYTES\\n+ CONTEXT\\n+ COUNTER\\n+ DOUBLE\\n+ FILLER\\n+ FILTER\\n+ FUNCTION\\n+ GEOSHAPE\\n+ GTS\\n+ GTSENCODER\\n+ KEY\\n+ LIST\\n+ LONG\\n+ MACRO\\n+ MAP\\n+ MARK\\n+ MATCHER\\n+ MATRIX\\n+ NULL\\n+ OPERATOR\\n+ PFONT\\n+ PGRAPHICS\\n+ PIMAGE\\n+ PSHAPE\\n+ SET\\n+ STRING\\n+ VECTOR\\n+ VLIST\\n\\nFor any object introduced by a WarpScript extension whose output of TYPEOF is not in the list thereof, the output would be preceded by \\\"X-\\\".\\n\\nNote: since revision 2.5.0, the TYPEOF output of bucketizers, mappers, reducers is changed from 'MAPPER' to 'AGGREGATOR'.\\n\\n\\n@param `object` Any kind of reference\\n\\n@param `type` The type of the object\\n\\n\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"TYPEOF\"},{\"name\":\"UDF\",\"detail\":\"UDF( class:STRING ): \",\"documentation\":\"The `UDF` function invokes a User Defined Function from a Jar. A new function instance is loaded at each invocation.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UDF\"},{\"name\":\"ULP\",\"detail\":\"ULP( value:NUMBER ): ulp:DOUBLE\\nULP( lvalue:LIST<NUMBER> ): lulp:LIST<DOUBLE>\\nULP( gts:GTS ): gtsresult:GTS\",\"documentation\":\"Returns the size of the [ULP (Unit in the Last Place)](https://en.wikipedia.org/wiki/Unit_in_the_last_place) for the argument. The ulp for a DOUBLE is the positive distance between this floating-point value and the DOUBLE value next larger in magnitude.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `ulp` Computed ULP.\\n\\n@param `lvalue` List of numeric values.\\n\\n@param `lulp` List of computed ULPs.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the ULP of the given GTS values\\n\\n\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ULP\"},{\"name\":\"UNBUCKETIZE\",\"detail\":\"UNBUCKETIZE( gts:GTS ): gts:GTS\\nUNBUCKETIZE( lgts:LIST<GTS> ): lgts:LIST<GTS>\",\"documentation\":\"Transforms a bucketized Geo Time Series™ into a non bucketized one. Note that this function transforms the original GTS, it does not clone it.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™ instances.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNBUCKETIZE\"},{\"name\":\"UNBUCKETIZE.CALENDAR\",\"detail\":\"UNBUCKETIZE.CALENDAR( gts:GTS ): gts:GTS\\nUNBUCKETIZE.CALENDAR( lgts:LIST<GTS> ): lgts:LIST<GTS>\",\"documentation\":\"On a GTS that is calendar-bucketized, this function replaces the ticks with the timestamp end boundaries of each bucket, and unbucketize it.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `lgts` One or more lists of Geo Time Series™\\n\\n\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"UNBUCKETIZE.CALENDAR\"},{\"name\":\"UNGZIP\",\"detail\":\"UNGZIP( compressed:BYTES ): uncompressed:BYTES\",\"documentation\":\"Decompresses a byte array containing data compressed by [`GZIP`](doc/GZIP).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNGZIP\"},{\"name\":\"UNION\",\"detail\":\"UNION( setA:SET setB:SET ): output:SET\",\"documentation\":\"Computes the union &#x222a; of two sets.\\n\\nThe `UNION` function consumes two sets from the top of the stack and pushes back its mathematical union.\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x222a; *B*\\n\\n\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNION\"},{\"name\":\"UNIQUE\",\"detail\":\"UNIQUE( input:LIST ): output:LIST\",\"documentation\":\"The `UNIQUE` function eliminates duplicate elements on the LIST on the top of the stack.\\nThe order of the resulting LIST is not the same than the original one.\\n\\nIt makes elements of a list unique by converting it to a set temporarily. See [()](/doc/91Z) for more informations.\\n\\n@param `input` The list to parse\\n\\n@param `output` The new list object, without any duplicates\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNIQUE\"},{\"name\":\"UNLIST\",\"detail\":\"UNLIST( list:LIST ): mark:MARK elts:ANY*\",\"documentation\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`]`](/doc/MF).\\n\\n@param `list` List to expand.\\n\\n@param `elts` Elements of `list`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNLIST\"},{\"name\":\"UNMAP\",\"detail\":\"UNMAP( map:MAP ): mark:MARK k1:ANY v1:ANY kN:ANY vN:ANY\",\"documentation\":\"Unpacks a map, pushing its keys and values onto the stack along a mark as the deepest stack element such that one can use [`}`](/doc/UF) to rebuild the map.\\n\\n@param `k1` First map key.\\n\\n@param `v1` First map value.\\n\\n@param `kN` Nth map key.\\n\\n@param `vN` Nth map value.\\n\\n@param `map` Map to unpack.\\n\\n@param `mark` Mark indicating the deepest level to consider when building the map.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNMAP\"},{\"name\":\"UNPACK\",\"detail\":\"UNPACK( list:BYTES format:STRING ): result:LIST<ANY>\",\"documentation\":\"The `UNPACK` function unpacks a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n* **<**: No bigendian\\n* **>**: Bigendian\\n* **L**: Long\\n* **B**: Boolean\\n* **D**: Double length always equals 64.\\n* **<L32**: No bigendian 32 bits Long\\n\\n@param `list` Pqcked list to unpack\\n\\n@param `format` Format used to unpack\\n\\n@param `result` Unpacked list\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"UNPACK\"},{\"name\":\"UNSECURE\",\"detail\":\"UNSECURE( secure:STRING ): script:STRING\",\"documentation\":\"The `UNSECURE` function decrypts a secure script. The correct secret MUST have been set using [`SECUREKEY`](doc/SECUREKEY) prior to calling this function.\\n\\n@param `secure` STRING with the secure script to decode.\\n\\n@param `script` Decoded scripted.\\n\\n\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNSECURE\"},{\"name\":\"UNSET\",\"detail\":\"UNSET( set:SET ): mark:MARK elts:ANY*\",\"documentation\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`)`](/doc/9F).\\n\\n@param `set` Set to expand.\\n\\n@param `elts` Elements of `set`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"tags\":[\"sets\"],\"since\":\"2.6.0\",\"OPB64name\":\"UNSET\"},{\"name\":\"UNTIL\",\"detail\":\"UNTIL( code:MACRO condition:MACRO ): \\nUNTIL( code:MACRO condition:MACRO index:BOOLEAN ): \",\"documentation\":\"The `UNTIL` function implements an until loop. It takes two macros as arguments from the stack: the code to execute until the condition is true and the condition to evaluate after every iteration.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force UNTIL to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `code` Macro executed on each loop\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNTIL\"},{\"name\":\"UNWRAP\",\"detail\":\"UNWRAP( wrapped:STRING ): gts:GTS\\nUNWRAP( wrappedbytes:BYTES ): gts:GTS\\nUNWRAP( lwrapped:LIST<STRING> ): lgts:LIST<GTS>\\nUNWRAP( lwrapped:LIST<BYTES> ): lgts:LIST<GTS>\",\"documentation\":\"Unwraps packed Geo Time Series™ instances.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNWRAP\"},{\"name\":\"UNWRAPEMPTY\",\"detail\":\"UNWRAPEMPTY( wrapped:STRING ): gts:GTS\\nUNWRAPEMPTY( wrappedbytes:BYTES ): gts:GTS\\nUNWRAPEMPTY( lwrapped:LIST<STRING> ): lgts:LIST<GTS>\\nUNWRAPEMPTY( lwrapped:LIST<BYTES> ): lgts:LIST<GTS>\",\"documentation\":\"Unwraps wrapped Geo Time Series™ instances without unpacking the actual datapoints. This is handy to extract the metadata (class, labels, attributes) from a set of wrapped GTS.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPEMPTY\"},{\"name\":\"UNWRAPENCODER\",\"detail\":\"UNWRAPENCODER( wrapped:STRING ): encoder:GTSENCODER\\nUNWRAPENCODER( wrappedbytes:BYTES ): encoder:GTSENCODER\\nUNWRAPENCODER( lwrapped:LIST<STRING> ): lencoder:LIST<GTSENCODER>\\nUNWRAPENCODER( lwrapped:LIST<BYTES> ): lencoder:LIST<GTSENCODER>\",\"documentation\":\"Unwraps packed Geo Time Series™ into encoders.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `encoder` Encoder with decoded Geo Time Series™ datapoints.\\n\\n@param `lencoder` List of encoders with decoded Geo Time Series™.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"UNWRAPENCODER\"},{\"name\":\"UNWRAPSIZE\",\"detail\":\"UNWRAPSIZE( wrapped:STRING ): size:LONG\\nUNWRAPSIZE( wrappedbytes:BYTES ): size:LONG\\nUNWRAPSIZE( lwrapped:LIST<STRING> ): lsize:LIST<LONG>\\nUNWRAPSIZE( lwrapped:LIST<BYTES> ): lsize:LIST<LONG>\",\"documentation\":\"Extracts the size (number of datapoints) of wrapped Geo Time Series™ instances.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `size` Decoded Geo Time Series™ size.\\n\\n@param `lsize` List of decoded Geo Time Series™ sizes.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPSIZE\"},{\"name\":\"UPDATE\",\"detail\":\"UPDATE( gts:GTS token:STRING ): \\nUPDATE( encoder:GTSENCODER token:STRING ): \\nUPDATE( list:LIST<GTS> token:STRING ): \\nUPDATE( list:LIST<GTSENCODER> token:STRING ): \",\"documentation\":\"Pushes Geo Time Series™ data to the Warp 10 instance.\\n\\nThe `UPDATE` function allows you to push data directly from your WarpScript code without having to retrieve the data and use the `/update` endpoint.\\n\\nThe GTS or Encoder instances to push *MUST* have a non empty name and in the case of Geo Time Series™ *MUST* have been renamed (to avoid pushing data by mistake which could override existing data you just retrieved).\\n\\n@param `token` Write token to use for pushing the data.\\n\\n@param `gts` Geo Time Series™ to push.\\n\\n@param `encoder` GTS Encoder to push.\\n\\n@param `list` List containing Geo Time Series™ and/or GTS Encoder instances to push.\\n\\n\",\"tags\":[\"gts\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"UPDATE\"},{\"name\":\"UPDATEOFF\",\"detail\":\"UPDATEOFF( message:STRING secret:STRING ): \",\"documentation\":\"Disables update operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when an update operation is attempted.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEOFF\"},{\"name\":\"UPDATEON\",\"detail\":\"UPDATEON( secret:STRING ): \",\"documentation\":\"Enables update operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEON\"},{\"name\":\"URLDECODE\",\"detail\":\"URLDECODE( encoded:STRING ): decoded:STRING\",\"documentation\":\"Decodes a [URL encoded](https://en.wikipedia.org/wiki/Percent-encoding) STRING.\\n\\n@param `encoded` Encoded STRING to decode.\\n\\n@param `decoded` Decoded STRING.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLDECODE\"},{\"name\":\"URLENCODE\",\"detail\":\"URLENCODE( string:STRING ): encoded:STRING\",\"documentation\":\"Encodes a STRING using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and replacing occurrences of '+' with '%20'.\\n\\nThe character set used is [UTF-8](https://en.wikipedia.org/wiki/UTF-8).\\n\\n@param `string` Input STRING to encode.\\n\\n@param `encoded` Encoded version of 'string' using the UTF-8 character set.\\n\\n\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLENCODE\"},{\"name\":\"URLFETCH\",\"detail\":\"URLFETCH( url:STRING ): result:LIST<LIST>\\nURLFETCH( url:STRING headers:MAP ): result:LIST<LIST>\\nURLFETCH( urls:LIST<STRING> ): result:LIST<LIST>\\nURLFETCH( urls:LIST<STRING> headers:MAP ): result:LIST<LIST>\",\"documentation\":\"The `URLFETCH` function sends HTTP(S) GET requests, waits for the responses and puts them on the stack.\\n\\nFor security reasons, the stack must be authenticated for this function to work, see [`AUTHENTICATE`](/doc/AUTHENTICATE).\\n\\nSince 2.7.0, this function also accepts a MAP of headers.\\n\\n@param `url` The URL to send the GET request to. Must begin with `http://` or `https://`.\\n\\n@param `urls` The list of URLs to send the GET requests to. Each URL must begin with `http://` or `https://`. \\n\\n@param `result` A list containing, for each URL, a 4-element list. These 4-element lists contain, in this order, a LONG status code, a STRING status message or an empty STRING if not available, a MAP of headers and a STRING representing a bytes array encoded as base 64.\\n\\n@param `headers` \\n\\n\",\"tags\":[\"extensions\",\"web\"],\"since\":\"1.0.2\",\"OPB64name\":\"URLFETCH\"},{\"name\":\"UUID\",\"detail\":\"UUID(): uuid:STRING\",\"documentation\":\"Pushes onto the stack a randomly generated [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).\\n\\n@param `uuid` Generated UUID string\\n\\n\",\"tags\":[\"misc\"],\"since\":\"1.0.0\",\"OPB64name\":\"UUID\"},{\"name\":\"V->\",\"detail\":\"V->( list:VLIST ): result:LIST\",\"documentation\":\"The `V->` function converts a Vector (VLIST) on top of the stack into a list.\\n\\n@param `list` Input Vector.\\n\\n@param `result` Result list.\\n\\n\",\"tags\":[\"lists\",\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"KXoy\"},{\"name\":\"VALUEDEDUP\",\"detail\":\"VALUEDEDUP( gts:GTS order:BOOLEAN ): dedupgts:GTS\\nVALUEDEDUP( lgts:LIST<GTS> order:BOOLEAN ): ldedupgts:LIST<GTS>\",\"documentation\":\"Deletes duplicated values of the Geo Time Series™.\\n\\nThe `VALUEDEDUP` function takes as parameter a **GTS** or a **LIST** of **GTS** and it removes its duplicate values.\\n\\nExpects a boolean indicating whether we keep the oldest or most recent datapoint for a given value.\\n\\n@param `order` Boolean value, true for keeping the oldest datapoint for a given value, false otherwise.\\n\\n@param `gts` Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `lgts` List of Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `dedupgts` Geo Time Series™ with unique values.\\n\\n@param `ldedupgts` List of Geo Time Series™ with unique values.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEDEDUP\"},{\"name\":\"VALUEHISTOGRAM\",\"detail\":\"VALUEHISTOGRAM( gts:GTS ): histogram:MAP\\nVALUEHISTOGRAM( encoder:GTSENCODER ): histogram:MAP\\nVALUEHISTOGRAM( list:LIST<GTS> ): lhistogram:LIST<MAP>\",\"documentation\":\"Produces the value histogram of a Geo Time Series™ or (since 2.2.0) of a GTS Encoder.\\n\\nThe histogram is a map with an entry for each value (used as the map key), with an associated value equal to the number of occurrences of the value in the series.\\n\\nIf the input is a bucketized Geo Time Series™, the `NULL` key will have an associated value which is the number of buckets without values (assuming no datapoints were added at timestamps other than those of buckets).\\n\\nWhen the input is a GTS Encoder, keys may be BigDecimal, LONG, DOUBLE, BOOLEAN or STRING, binary values are not used as keys, their STRING representation (in ISO-8859-1) is used.\\n\\n@param `gts` Geo Time Series™ for which to compute the histogram\\n\\n@param `encoder` GTS Encoder for which to compute the histogram\\n\\n@param `histogram` The value histogram for the input Geo Time Series™ or GTS Encoder\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders\\n\\n@param `lhistogram` The list of value histogram maps\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEHISTOGRAM\"},{\"name\":\"VALUELIST\",\"detail\":\"VALUELIST( map:MAP ): values:LIST\",\"documentation\":\"Gets values from a **MAP**.\\n\\nThe function `VALUELIST` extracts the values of a **MAP** on the top of the stack and pushes on the stack a list with those values. The **MAP** is consumed.\\n\\n\\n@param `map` Map for which to get the values.\\n\\n@param `values` List of values for the input MAP.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUELIST\"},{\"name\":\"VALUES\",\"detail\":\"VALUES( gts:GTS ): values:LIST\\nVALUES( lgts:LIST<GTS> ): lvalues:LIST<LIST>\\nVALUES( encoder:GTSENCODER ): values:LIST\\nVALUES( lencoder:LIST<GTSENCODER> ): lvalues:LIST<LIST>\",\"documentation\":\"Gets the values of Geo Time Series™ or encoders.\\n\\nThe `VALUES` function consumes a Geo Time Series™, an encoder or a list thereof from the stack, and it replaces each instance of Geo Time Series™ or encoder by a list of its values.\\n\\n\\n** Warning:** To be consistent with `VALUES`, use [`TICKLIST`](/doc/TICKLIST), not `TICKS`.\\n\\n\\n@param `gts` Geo Time Series™ for which to get the values.\\n\\n@param `lgts` List of Geo Time Series™ for which to get the values.\\n\\n@param `encoder` Encoder for which to get the values.\\n\\n@param `lencoder` List of encoders for which to get the values.\\n\\n@param `values` List of values from the input Geo Time Series™.\\n\\n@param `lvalues` List of list of values from the input Geo Time Series™ list.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUES\"},{\"name\":\"VALUESORT\",\"detail\":\"VALUESORT( gts:GTS ): sortedgts:GTS\\nVALUESORT( lgts:LIST<GTS> ): lsortedgts:LIST<GTS>\",\"documentation\":\"Sorts values of the Geo Time Series™ in ascending order.\\n\\nThe function `VALUESORT` takes the **GTS** on top of the stack and sort its values (and associated locations/elevations) in ascending order.\\n\\n@param `gts` Geo Time Series™ for which to sort the values.\\n\\n@param `sortedgts` Geo Time Series™ with sorted values.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lsortedgts` List of Geo Time Series™ with sorted values.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESORT\"},{\"name\":\"VALUESPLIT\",\"detail\":\"VALUESPLIT( gts:GTS label:STRING ): splitedgts:LIST<GTS>\\nVALUESPLIT( lgts:LIST<GTS> label:STRING ): lsplitedgts:LIST<LIST<GTS>>\",\"documentation\":\"Splits Geo Time Series™ by values.\\n\\nThe function `VALUESPLIT` takes one **STRING** on top of the stack plus one **GTS** or a list of **GTS**. It splits **GTS** by values and creates a **GTS** for each different value. For each new **GTS**, the label specified in parameter will be added.\\n\\nThe new **GTS** will be sorted by value with `VALUESORT`.\\n\\n@param `label` Label to add to the new Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ to split by value.\\n\\n@param `splitedgts` List of Geo Time Series™ splited by value.\\n\\n@param `lgts` List of Geo Time Series™ to split by value.\\n\\n@param `lsplitedgts` List of Geo Time Series™ splited by value.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESPLIT\"},{\"name\":\"VARINT->\",\"detail\":\"VARINT->( encoded:BYTES ): numbers:LIST<LONG>\\nVARINT->( encoded:BYTES count:LONG ): numbers:LIST<LONG> processed:LONG\",\"documentation\":\"The `VARINT` function decodes [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoded numbers.\\n\\n@param `numbers` List of decoded numbers.\\n\\n@param `encoded` Byte array containing the encoded number(s) to decode.\\n\\n@param `count` Maximum number of `LONG`s to decode.\\n\\n@param `processed` Number of bytes which were processed to decode the numbers.\\n\\n\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"KZ4HHJtJAIs\"},{\"name\":\"VARS\",\"detail\":\"VARS( macro:MACRO ): vars:LIST<STRING>\\nVARS( macro:MACRO onlyPoprAndStore:BOOLEAN ): vars:LIST<STRING>\",\"documentation\":\"Extracts all variables used in a macro. The `VARS` function scans the macro for occurrences of `LOAD`, `STORE` or `CSTORE` functions and inspects the associated variable name. If such a name is not an explicit STRING, the call to `VARS` will fail with an error.\\n\\nThe list of symbols is sorted according to the number of occurrences encountered, decreasing.\\n\\n@param `macro` Macro to inspect.\\n\\n@param `vars` List of encountered symbols.\\n\\n@param `onlyPoprAndStore` Returns only variables used by POPR, CPOPR and STORE. Defaults to false.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"VARS\"},{\"name\":\"VEC->\",\"detail\":\"VEC->( input:VECTOR ): result:LIST\",\"documentation\":\"The `VEC->` function converts a Vector into a list.\\n\\n\\n@param `input` Vector to convert\\n\\n@param `result` list\\n\\n\",\"tags\":[\"lists\",\"conversion\",\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"KZK2AIs\"},{\"name\":\"WEBCALL\",\"detail\":\"WEBCALL( token:STRING method:STRING url:STRING headers:MAP body:STRING ): uuid:STRING\",\"documentation\":\"Makes an outbound HTTP call.\\n\\nNote that the hosts which may be reached via `WEBCALL` might have been restricted through the use of the `webcall.host.patterns` Warp&nbsp;10 configuration parameter.\\n\\nThe write token is here to check you have the right to send a webcall. If the write token is valid, then the request is sent. It will never be sent in the request.\\n\\nThe call to `WEBCALL` returns a UUID on the stack. The actual request is performed asynchronously, the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`.\\n\\n@param `body` body of the request.\\n\\n@param `headers` map of additionnal http headers.\\n\\n@param `url` supported schemes are http and https.\\n\\n@param `method` `GET` or `POST` string.\\n\\n@param `token` valid write token\\n\\n@param `uuid` the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`\\n\\n\",\"tags\":[\"web\"],\"since\":\"1.0.0\",\"OPB64name\":\"WEBCALL\"},{\"name\":\"WF.ADDREPO\",\"detail\":\"WF.ADDREPO( url:STRING ): \",\"documentation\":\"The `WF.ADDREPO` function allows you to add a repository to the list of repositories taken into account by the WarpFleet™ macro resolver.\\n\\nIf the URL is valid (syntactically), then it will be added at the end of the current list of repositories scanned by the resolver. All repository URLs will then be validated by the `validator` macro defined in the configuration (`warpfleet.macros.validator`). Those URLs for which the `validator` macro returned true will be retained.\\n\\nNote that the repository is only added in the scope of the current stack.\\n\\n@param `url` URL to add to the list of repositories.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.ADDREPO\"},{\"name\":\"WF.GETREPOS\",\"detail\":\"WF.GETREPOS(): repos:LIST<STRING>\",\"documentation\":\"Retrieves the current list of repositories used by the WarpFleet™ resolver.\\n\\nNote that if the configuration disabled the use of this function (via `warpfleet.getrepos.disable`), the returned list will be empty even though it contains repositories.\\n\\n@param `repos` Current list of repository URLs.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.GETREPOS\"},{\"name\":\"WF.SETREPOS\",\"detail\":\"WF.SETREPOS( repos:LIST<STRING> ): \",\"documentation\":\"Sets the list of repositories used by the WarpFleet™ resolver to the given value (list of valid URLs).\\n\\nEach URL is tested against WarpFleet™ validator macro to check if it is allowed. Non-valid ones are discarded.\\n\\nNote that this changes the list only for the scope of the current WarpScript execution.\\n\\n@param `repos` List of URLs to use for the WarpFleet™ resolver.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.SETREPOS\"},{\"name\":\"WFOFF\",\"detail\":\"WFOFF(): \",\"documentation\":\"The `WFOFF` function disables the WarpFleet™ Resolver. It can be re-enabled using `WFON`.\\n\\nThis is useful when you want to ensure that a macro call only looks it up locally.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFOFF\"},{\"name\":\"WFON\",\"detail\":\"WFON(): \",\"documentation\":\"The `WFON` function enables the WarpFleet™ Resolver after it has been disabled by `WFOFF`.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFON\"},{\"name\":\"WHILE\",\"detail\":\"WHILE( condition:MACRO code:MACRO ): \\nWHILE( condition:MACRO code:MACRO index:BOOLEAN ): \",\"documentation\":\"The `WHILE` function implements a while loop. It takes two macros as arguments from the stack: the condition macro to evaluate and the macro to execute while the condition is true.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force WHILE to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `code` Macro executed on each loop\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"WHILE\"},{\"name\":\"WHIRLPOOL\",\"detail\":\"WHIRLPOOL( input:BYTES ): result:BYTES\",\"documentation\":\"The `WHIRLPOOL` function digests a byte array on the stack with the cryptographic hash function [Whirlpool](https://en.wikipedia.org/wiki/Whirlpool_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"WHIRLPOOL\"},{\"name\":\"WRAP\",\"detail\":\"WRAP( encoder:GTSENCODER ): wrapped:STRING\\nWRAP( lencoder:GTSENCODER ): lwrapped:LIST<STRING>\\nWRAP( gts:GTS ): wrapped:STRING\\nWRAP( lgts:LIST<GTS> ): lwrapped:LIST<STRING>\",\"documentation\":\"The `WRAP` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a STRING.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"WRAP\"},{\"name\":\"WRAPFAST\",\"detail\":\"WRAPFAST( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPFAST( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPFAST( gts:GTS ): wrapped:BYTES\\nWRAPFAST( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"documentation\":\"The `WRAPFAST` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a byte array. For fast execution, the content of the GTS is not compressed, so the resulting byte array will be larger than that produced by `WRAPRAW`.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPFAST\"},{\"name\":\"WRAPMV\",\"detail\":\"WRAPMV( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPMV( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPMV( gts:GTS ): wrapped:BYTES\\nWRAPMV( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPRAWOPT`, `WRAPMV` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPMV\"},{\"name\":\"WRAPMV!\",\"detail\":\"WRAPMV!( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPMV!( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPMV!( gts:GTS ): wrapped:BYTES\\nWRAPMV!( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPMV`, `WRAPMV!` attempts to optimize the representation of DOUBLE values for Geo Time Series™ but unlike `WRAPMV`, it does not increase the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.        \\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.6.0\",\"OPB64name\":\"Kp80J3pL7F\"},{\"name\":\"WRAPOPT\",\"detail\":\"WRAPOPT( encoder:GTSENCODER ): wrapped:STRING\\nWRAPOPT( lencoder:GTSENCODER ): lwrapped:LIST<STRING>\\nWRAPOPT( gts:GTS ): wrapped:STRING\\nWRAPOPT( lgts:LIST<GTS> ): lwrapped:LIST<STRING>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a STRING. The packing performed by `WRAPOPT` differs from that of [`WRAP`](/doc/WRAP) only by the fact that `WRAPOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPOPT\"},{\"name\":\"WRAPRAW\",\"detail\":\"WRAPRAW( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPRAW( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPRAW( gts:GTS ): wrapped:BYTES\\nWRAPRAW( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"documentation\":\"The `WRAPRAW` function packs a Geo Time Series™ into a byte array.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.7\",\"OPB64name\":\"WRAPRAW\"},{\"name\":\"WRAPRAWOPT\",\"detail\":\"WRAPRAWOPT( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPRAWOPT( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPRAWOPT( gts:GTS ): wrapped:BYTES\\nWRAPRAWOPT( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"documentation\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES. The packing performed by `WRAPRAWOPT` differs from that of [`WRAPRAW`](/doc/WRAPRAW) only by the fact that `WRAPRAWOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPRAWOPT\"},{\"name\":\"WSINFO\",\"detail\":\"WSINFO( session:STRING ): infos:LIST<MAP>\",\"documentation\":\"Displays information about WarpScript environments with a given session id. The information are returned as a map identical to that returned by [`WSPS`](/doc/WSPS):\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `session` Session of the environments to inspect.\\n\\n@param `infos` List of information about each WarpScript execution environment with 'session' as their session name.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSINFO\"},{\"name\":\"WSKILL\",\"detail\":\"WSKILL( uuid:STRING secret:STRING ): status:BOOLEAN\",\"documentation\":\"Kills the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP) and marking the environment as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to kill.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILL\"},{\"name\":\"WSKILLSESSION\",\"detail\":\"WSKILLSESSION( session:STRING ): count:LONG\",\"documentation\":\"Kills the execution WarpScript programs by forcing a call to [`STOP`](/doc/STOP) and marking the environments as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `session` Session id of the WarpScript execution environments to kill.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILLSESSION\"},{\"name\":\"WSNAME\",\"detail\":\"WSNAME( name:STRING ): current:STRING\",\"documentation\":\"Modifies the name associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stack.name` in the attributes map.\\n\\nName size is limited to 128 characters.\\n\\n@param `name` Name to assign to the calling execution environment, or `NULL` to simply read the current name.\\n\\n@param `current` Name assigned to the execution environment.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSNAME\"},{\"name\":\"WSPS\",\"detail\":\"WSPS( secret:STRING ): procs:LIST<MAP>\",\"documentation\":\"Lists all the registers WarpScript execution environments. For each environment a map is returned with the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `procs` List of information about each registered WarpScript execution environment.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSPS\"},{\"name\":\"WSSESSION\",\"detail\":\"WSSESSION( session:STRING ): current:STRING\",\"documentation\":\"Modifies the session id associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stackps.session` in the attributes map.\\n\\nSession id size is limited to 128 characters.\\n\\nSession can also be set by setting the `X-Warp10-WarpScriptSession` header.\\n\\nOnce the session has been set it cannot be modified.\\n\\n@param `session` Session id to assign to the calling execution environment, or NULL to simply read the current session id.\\n\\n@param `current` The session id assigned to the execution environment.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSESSION\"},{\"name\":\"WSSTACK\",\"detail\":\"WSSTACK(): \",\"documentation\":\"Select the WarpScript™ (*i.e.* SNAPSHOT) format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"WSSTACK\"},{\"name\":\"WSSTOP\",\"detail\":\"WSSTOP( uuid:STRING secret:STRING ): status:BOOLEAN\",\"documentation\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to stop.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOP\"},{\"name\":\"WSSTOPSESSION\",\"detail\":\"WSSTOPSESSION( session:STRING ): count:LONG\",\"documentation\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\nThe environments to stop are identified by a session id.\\n\\n@param `session` Session of the WarpScript execution environments to stop.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOPSESSION\"},{\"name\":\"Z->\",\"detail\":\"Z->( z:BYTES n:LONG bitwidth:LONG ): longs:LIST<LONG>\",\"documentation\":\"Unpacks LONG values from a [Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) stored in a byte array.\\n\\n@param `bitwidth` Size in bits of the LONG values to extract, from 1 to 63.\\n\\n@param `n` Number of LONG values to extract.\\n\\n@param `z` Byte array containing the Morton Code to unpack.\\n\\n@param `longs` List of extracted LONG values.\\n\\n\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"LXoy\"},{\"name\":\"ZDISCORDS\",\"detail\":\"ZDISCORDS( window_size:LONG maximum:LONG overlapping:BOOLEAN distance:DOUBLE ): result:GTS\",\"documentation\":\"The `ZDISCORDS` function detects discords in a standardized ([`STANDARDIZE`](/doc/STANDARDIZE) Geo Time Series™. The discord detection\\n algorithm is based on identifying outlier patterns in the Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `ZDISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\nGiven the `ZDISCORDS` expects the Geo Time Series™ it operates on to be standardized ([`STANDARDIZE`](/doc/STANDARDIZE), the discord detection \\nalgorithm is more sensitive than that of [`DISCORDS`](/doc/DISCORDS).\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0.\\n\\n@param `overlapping` Flag indicating whether or not the `ZDISCORDS` function should report overlapping discords.\\n\\n@param `maximum` The maximum number of discords to identify.\\n\\n@param `window_size` Window size which is the width of each interval on which the pattern extraction should be performed, a pattern length which will determine how the window is segmented, and lastly a quantization scale which will determine how many different buckets will be used to ventilate the series values. (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `result` Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™.\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZDISCORDS\"},{\"name\":\"ZDTW\",\"detail\":\"ZDTW( gts1:GTS gts2:GTS threshold:DOUBLE ): dtw:DOUBLE\\nZDTW( gts1:GTS gts2:GTS threshold:DOUBLE characteristic:STRING ): dtw:DOUBLE\\nZDTW( gts1:GTS gts2:GTS threshold:DOUBLE distance:STRING characteristic:STRING ): dtw:DOUBLE\",\"documentation\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be Z-normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"ZDTW\"},{\"name\":\"ZIP\",\"detail\":\"ZIP( input:LIST<LIST> ): output:LIST<LIST>\",\"documentation\":\"The function ZIP takes a list of lists as parameters. Each list which are not singletons must be of same size.\\n\\nIt returns a list of lists where the i-th list contains the i-th elements of each input list in the same order.\\n\\nAlso, it considers singletons as a list of the same size with a duplicated value.\\n\\n@param `input` List of lists\\n\\n@param `output` List of lists\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZIP\"},{\"name\":\"ZPATTERNDETECTION\",\"detail\":\"ZPATTERNDETECTION( gts:GTS patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nZPATTERNDETECTION( lgts:LIST<GTS> patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"documentation\":\"The `ZPATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`ZPATTERNS`](/doc/ZPATTERNS) or [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe `ZPATTERNDETECTION` does not standardize the datapoints in the sliding window, assuming (wrongly) they already are.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `ZPATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform.\\n\\n@param `gts` The single GTS to transform.\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it.\\n\\n@param `lresult` The list of result GTS.\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNDETECTION\"},{\"name\":\"ZPATTERNS\",\"detail\":\"ZPATTERNS( gts:GTS wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nZPATTERNS( lgts:LIST<GTS> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"documentation\":\"Extracts symbolic patterns from Geo Time Series™ as [`PATTERNS`](/doc/PATTERNS) does, but does not standardize each window, assuming (wrongly) the GTS windows are already standardized.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNS\"},{\"name\":\"ZSCORE\",\"detail\":\"ZSCORE( gts:GTS flag:BOOLEAN ): result:GTS\\nZSCORE( gtsList:LIST<GTS> flag:BOOLEAN ): resultList:LIST<GTS>\",\"documentation\":\"The 'ZSCORE' function consumes a flag, then normalizes a Geo Time Series™ or a **LIST** of Geo Time Series™ that are below by replacing their values by their [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe flag indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median).\\n\\nIf the GTS isn’t of type **DOUBLE** or if the deviation equals 0, an exception is raised.\\n\\n@param `flag` Indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORE\"},{\"name\":\"ZSCORETEST\",\"detail\":\"ZSCORETEST( gts:GTS mad:BOOLEAN ): result:LIST<LONG>\\nZSCORETEST( lgts:LIST<GTS> mad:BOOLEAN ): lresult:LIST<LIST<LONG>>\\nZSCORETEST( gts:GTS mad:BOOLEAN trigger:DOUBLE ): result:LIST<LONG>\\nZSCORETEST( lgts:LIST<GTS> mad:BOOLEAN trigger:DOUBLE ): lresult:LIST<LIST<LONG>>\",\"documentation\":\"The ZSCORETEST function detects outliers in a GTS by comparing the Z-score of its values with a given threshold.\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median). If this value is greater than the given threshold, it is flagged as an outlier.\\n\\nA LIST of ticks, corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n@param `gts` The Geo Time Series™ to test\\n\\n@param `result` List of the detected outliers timestamps\\n\\n@param `lgts` The list of Geo Time Series™ to test\\n\\n@param `lresult` List of list of the detected outliers timestamps\\n\\n@param `mad` False: use the mean/sigma, true: use the median/mad to calculate the Z-score\\n\\n@param `trigger` Optional threshold. Default value is 3.5\\n\\n\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORETEST\"},{\"name\":\"[\",\"detail\":\"[(): mark:MARK\",\"documentation\":\"Starts a list creation.\\n\\nThe `[` function creates a list by pushing a mark onto the stack. This is a syntactic help to better present list constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"tags\":[\"lists\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lk\"},{\"name\":\"[[\",\"detail\":\"[[(): mark:MARK\",\"documentation\":\"Pushes a MARK on the stack. This is a syntactic help to better present Vector (VLIST) constructions.\\n \\n\\n@param `mark` A MARK instance.\\n\\n\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"Lpg\"},{\"name\":\"[[]]\",\"detail\":\"[[]](): vector:VLIST\",\"documentation\":\"Pushes an empty Vector onto the stack.\\n\\n@param `vector` Empty Vector.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.2.13\",\"OPB64name\":\"LphSMF\"},{\"name\":\"[]\",\"detail\":\"[]( content:ANY ): newlist:LIST\",\"documentation\":\"The [] function creates an empty LIST on the top of the stack.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newlist` list instance, initialized with content.\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lpo\"},{\"name\":\"]\",\"detail\":\"]( mark:MARK v1:ANY vN:ANY ): list:LIST\",\"documentation\":\"Closes a currently open list and pushes it onto the stack.\\n\\n  The `]` function pops from the stack the elements of the list up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"MF\"},{\"name\":\"]]\",\"detail\":\"]]( mark:MARK v1:ANY vN:ANY ): list:VLIST\",\"documentation\":\"Closes a currently open Vector (VLIST) and pushes it onto the stack. The elements on the stack are those up to the first mark encountered. The mark is discarded.\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"MKo\"},{\"name\":\"^\",\"detail\":\"^( p1:LONG p2:LONG ): result:LONG\\n^( inputgts:GTS mask:LONG ): maskedgts:GTS\\n^( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Performs a bitwise **XOR** operation.\\n\\nThe `^` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **XOR**.\\n\\nSince Warp 10™ 2.1, `^` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be XOR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with XOR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts XOR with mask\\n\\n\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"MV\"},{\"name\":\"babbage\",\"detail\":\"babbage(): value:LONG\",\"documentation\":\"The `babbage` function returns 1000.\\n\\nThe unit is named after [Charles Babbage](https://en.wikipedia.org/wiki/Charles_Babbage).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"babbage\"},{\"name\":\"bucketizer.and\",\"detail\":\"bucketizer.and(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.and` function applies the logical operator **AND** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.and\"},{\"name\":\"bucketizer.count\",\"detail\":\"bucketizer.count(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.count` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count\"},{\"name\":\"bucketizer.count.exclude-nulls\",\"detail\":\"bucketizer.count.exclude-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.count.exclude-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.exclude-nulls` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.exclude-nulls\"},{\"name\":\"bucketizer.count.include-nulls\",\"detail\":\"bucketizer.count.include-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.count.include-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.include-nulls function computes the number of values, including null values, found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.include-nulls\"},{\"name\":\"bucketizer.count.nonnull\",\"detail\":\"bucketizer.count.nonnull(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.count.nonnull` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.nonnull\"},{\"name\":\"bucketizer.first\",\"detail\":\"bucketizer.first(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.first` function returns the first value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.first` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.first\"},{\"name\":\"bucketizer.join\",\"detail\":\"bucketizer.join( separator:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.join` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join\"},{\"name\":\"bucketizer.join.forbid-nulls\",\"detail\":\"bucketizer.join.forbid-nulls( separator:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.join.forbid-nulls` has the same behavior as `bucketizer.join`, use `bucketizer.join` instead.\\n\\nThe `bucketizer.join.forbid-nulls` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join.forbid-nulls\"},{\"name\":\"bucketizer.last\",\"detail\":\"bucketizer.last(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.last` function returns the last value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.last` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.last\"},{\"name\":\"bucketizer.mad\",\"detail\":\"bucketizer.mad(): bucketizer:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) of each bucket.\\n\\nThe returned location is the median of all the locations in the bucket, and the returned elevation is the median of all the elevations in the bucket.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.0\",\"OPB64name\":\"bucketizer.mad\"},{\"name\":\"bucketizer.max\",\"detail\":\"bucketizer.max(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.max` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max\"},{\"name\":\"bucketizer.max.forbid-nulls\",\"detail\":\"bucketizer.max.forbid-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.max.forbid-nulls` has the same behavior as `bucketizer.max`, use `bucketizer.max` instead.\\n\\nThe `bucketizer.max.forbid-nulls` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\nThe `bucketizer.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max.forbid-nulls\"},{\"name\":\"bucketizer.mean\",\"detail\":\"bucketizer.mean(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.mean` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean\"},{\"name\":\"bucketizer.mean.circular\",\"detail\":\"bucketizer.mean.circular( modulo:NUMBER ): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.mean.circular` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`bucketizer.mean.circular.exclude-nulls`](/doc/bucketizer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `bucketizer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular\"},{\"name\":\"bucketizer.mean.circular.exclude-nulls\",\"detail\":\"bucketizer.mean.circular.exclude-nulls( modulo:NUMBER ): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.mean.circular.exclude-nulls` has the same behavior as `bucketizer.mean.circular`, use `bucketizer.mean.circular` instead.\\n        \\nThe `bucketizer.mean.circular.exclude-nulls` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular.exclude-nulls\"},{\"name\":\"bucketizer.mean.exclude-nulls\",\"detail\":\"bucketizer.mean.exclude-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.mean.exclude-nulls` has the same behavior as `bucketizer.mean`, use `bucketizer.mean` instead.\\n \\nThe `bucketizer.mean.exclude-nulls` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.exclude-nulls\"},{\"name\":\"bucketizer.median\",\"detail\":\"bucketizer.median(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.median` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.median\"},{\"name\":\"bucketizer.median.forbid-nulls\",\"detail\":\"bucketizer.median.forbid-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.median.forbid-nulls` has the same behavior as `bucketizer.median`, use `bucketizer.median` instead.\\n\\nThe `bucketizer.median.forbid-nulls` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.4.0\",\"OPB64name\":\"bucketizer.median.forbid-nulls\"},{\"name\":\"bucketizer.min\",\"detail\":\"bucketizer.min(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.min` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min\"},{\"name\":\"bucketizer.min.forbid-nulls\",\"detail\":\"bucketizer.min.forbid-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.min.forbid-nulls` has the same behavior as `bucketizer.min`, use `bucketizer.min` instead.\\n\\nThe `bucketizer.min.forbid-nulls` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min.forbid-nulls\"},{\"name\":\"bucketizer.or\",\"detail\":\"bucketizer.or(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.or` function applies the logical operator **OR** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.or\"},{\"name\":\"bucketizer.percentile\",\"detail\":\"bucketizer.percentile( percentile:NUMBER ): bucketizer:AGGREGATOR\\nbucketizer.percentile( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile\"},{\"name\":\"bucketizer.percentile.forbid-nulls\",\"detail\":\"bucketizer.percentile.forbid-nulls( percentile:NUMBER ): bucketizer:AGGREGATOR\\nbucketizer.percentile.forbid-nulls( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.percentile.forbid-nulls` has the same behavior as `bucketizer.percentile`, use `bucketizer.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile.forbid-nulls\"},{\"name\":\"bucketizer.rms\",\"detail\":\"bucketizer.rms(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.rms` function returns the root mean square of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are the last one encountered for each bucket.\\n\\nThe `bucketizer.rms` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.18\",\"OPB64name\":\"bucketizer.rms\"},{\"name\":\"bucketizer.sd\",\"detail\":\"bucketizer.sd( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd\"},{\"name\":\"bucketizer.sd.forbid-nulls\",\"detail\":\"bucketizer.sd.forbid-nulls( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.sd.forbid-nulls` has the same behavior as `bucketizer.sd`, use `bucketizer.sd` instead.\\n\\nThis bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd.forbid-nulls\"},{\"name\":\"bucketizer.sd.welford\",\"detail\":\"bucketizer.sd.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.sd`](/doc/bucketizer.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.sd.welford\"},{\"name\":\"bucketizer.sum\",\"detail\":\"bucketizer.sum(): bucketizer:AGGREGATOR\",\"documentation\":\"The `bucketizer.sum` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum\"},{\"name\":\"bucketizer.sum.forbid-nulls\",\"detail\":\"bucketizer.sum.forbid-nulls(): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `bucketizer.sum.forbid-nulls` has the same behavior as `bucketizer.sum`, use `bucketizer.sum` instead.\\n\\nThe `bucketizer.sum.forbid-nulls` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum.forbid-nulls\"},{\"name\":\"bucketizer.var\",\"detail\":\"bucketizer.var( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe `bucketizer.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var\"},{\"name\":\"bucketizer.var.welford\",\"detail\":\"bucketizer.var.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.var`](/doc/bucketizer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe `bucketizer.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var.welford\"},{\"name\":\"buterin\",\"detail\":\"buterin(): value:LONG\",\"documentation\":\"The `buterin` function returns 1,000,000,000,000,000,000.\\n\\nThe unit is named after [Vitalik Buterin](https://en.wikipedia.org/wiki/Vitalik_Buterin).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"buterin\"},{\"name\":\"d\",\"detail\":\"d( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of days (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of days from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of days to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of days\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"d\"},{\"name\":\"e\",\"detail\":\"e(): eValue:DOUBLE\",\"documentation\":\"Alias of [E](/doc/GF).\\n\\nThe `e` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"OF\"},{\"name\":\"eth\",\"detail\":\"eth(): value:LONG\",\"documentation\":\"The `eth` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"eth\"},{\"name\":\"ether\",\"detail\":\"ether(): value:LONG\",\"documentation\":\"The `ether` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"ether\"},{\"name\":\"filler.interpolate\",\"detail\":\"filler.interpolate(): filler:FILLER\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with a linear interpolation of enclosing values in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading or trailing ticks as there is no possible interpolation.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.interpolate\"},{\"name\":\"filler.next\",\"detail\":\"filler.next(): filler:FILLER\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with the next value in a Geo Time Series™.\\n\\nNote that this function will not fill missing trailing ticks as there is no next value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.next\"},{\"name\":\"filler.previous\",\"detail\":\"filler.previous(): filler:FILLER\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with the previous value in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading ticks as there is no previous value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.previous\"},{\"name\":\"filler.trend\",\"detail\":\"filler.trend(): filler:FILLER\",\"documentation\":\"Pushes onto the stack a *filler* function which fills missing values with the centroid of the points computed by projecting trends from both sides of the missing point.\\n\\nNote that this function will fill all missing points.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.trend\"},{\"name\":\"filter.all.eq\",\"detail\":\"filter.all.eq( filter-value:LONG ): result:FILTER\\nfilter.all.eq( filter-value:DOUBLE ): result:FILTER\\nfilter.all.eq( filter-value:BOOLEAN ): result:FILTER\\nfilter.all.eq( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.eq\"},{\"name\":\"filter.all.ge\",\"detail\":\"filter.all.ge( filter-value:LONG ): result:FILTER\\nfilter.all.ge( filter-value:DOUBLE ): result:FILTER\\nfilter.all.ge( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ge\"},{\"name\":\"filter.all.gt\",\"detail\":\"filter.all.gt( filter-value:LONG ): result:FILTER\\nfilter.all.gt( filter-value:DOUBLE ): result:FILTER\\nfilter.all.gt( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.gt\"},{\"name\":\"filter.all.le\",\"detail\":\"filter.all.le( filter-value:LONG ): result:FILTER\\nfilter.all.le( filter-value:DOUBLE ): result:FILTER\\nfilter.all.le( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.le\"},{\"name\":\"filter.all.lt\",\"detail\":\"filter.all.lt( filter-value:LONG ): result:FILTER\\nfilter.all.lt( filter-value:DOUBLE ): result:FILTER\\nfilter.all.lt( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.lt\"},{\"name\":\"filter.all.ne\",\"detail\":\"filter.all.ne( filter-value:LONG ): result:FILTER\\nfilter.all.ne( filter-value:DOUBLE ): result:FILTER\\nfilter.all.ne( filter-value:BOOLEAN ): result:FILTER\\nfilter.all.ne( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose every value does not equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ne\"},{\"name\":\"filter.any.eq\",\"detail\":\"filter.any.eq( filter-value:LONG ): result:FILTER\\nfilter.any.eq( filter-value:DOUBLE ): result:FILTER\\nfilter.any.eq( filter-value:BOOLEAN ): result:FILTER\\nfilter.any.eq( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.eq\"},{\"name\":\"filter.any.ge\",\"detail\":\"filter.any.ge( filter-value:LONG ): result:FILTER\\nfilter.any.ge( filter-value:DOUBLE ): result:FILTER\\nfilter.any.ge( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ge\"},{\"name\":\"filter.any.gt\",\"detail\":\"filter.any.gt( filter-value:LONG ): result:FILTER\\nfilter.any.gt( filter-value:DOUBLE ): result:FILTER\\nfilter.any.gt( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.gt\"},{\"name\":\"filter.any.le\",\"detail\":\"filter.any.le( filter-value:LONG ): result:FILTER\\nfilter.any.le( filter-value:DOUBLE ): result:FILTER\\nfilter.any.le( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.le\"},{\"name\":\"filter.any.lt\",\"detail\":\"filter.any.lt( filter-value:LONG ): result:FILTER\\nfilter.any.lt( filter-value:DOUBLE ): result:FILTER\\nfilter.any.lt( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.lt\"},{\"name\":\"filter.any.ne\",\"detail\":\"filter.any.ne( filter-value:LONG ): result:FILTER\\nfilter.any.ne( filter-value:DOUBLE ): result:FILTER\\nfilter.any.ne( filter-value:BOOLEAN ): result:FILTER\\nfilter.any.ne( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose at least one value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ne\"},{\"name\":\"filter.byattr\",\"detail\":\"filter.byattr( filter:MAP ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose attributes match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.byattr\"},{\"name\":\"filter.byclass\",\"detail\":\"filter.byclass( filter:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose class name matches the filter parameter.\\n\\n@param `filter` The filter parameter is a **STRING**, if it starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.byclass\"},{\"name\":\"filter.bylabels\",\"detail\":\"filter.bylabels( filter:MAP ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bylabels\"},{\"name\":\"filter.bylabelsattr\",\"detail\":\"filter.bylabelsattr( filter:MAP ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose attributes or labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes or labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.bylabelsattr\"},{\"name\":\"filter.bymetadata\",\"detail\":\"filter.bymetadata( lgts:LIST<GTS> ): filter:FILTER\",\"documentation\":\"Filter GTSs by retaining those whose metadata **exactly** match at least one metadata from the given GTS list. \\n\\nThe metadata consists of the classname and labels.\\n\\n@param `lgts` List of GTSs to extract the metadata from.\\n\\n@param `filter` Filter to apply which will keep only GTSs with exact metadata matching.\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bymetadata\"},{\"name\":\"filter.byselector\",\"detail\":\"filter.byselector( selector:STRING ): result:FILTER\",\"documentation\":\"This filter allow to select GTS with a standard or an extended selector.\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.byselector\"},{\"name\":\"filter.bysize\",\"detail\":\"filter.bysize( min:LONG max:LONG ): result:FILTER\",\"documentation\":\"Filter GTSs by retaining those whose size is contained between specified bounds (inclusive).\\n\\n@param `min` The minimum size\\n\\n@param `max` The maximum size\\n\\n@param `result` The filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.bysize\"},{\"name\":\"filter.last.eq\",\"detail\":\"filter.last.eq( filter-value:LONG ): result:FILTER\\nfilter.last.eq( filter-value:DOUBLE ): result:FILTER\\nfilter.last.eq( filter-value:BOOLEAN ): result:FILTER\\nfilter.last.eq( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.eq\"},{\"name\":\"filter.last.ge\",\"detail\":\"filter.last.ge( filter-value:LONG ): result:FILTER\\nfilter.last.ge( filter-value:DOUBLE ): result:FILTER\\nfilter.last.ge( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ge\"},{\"name\":\"filter.last.gt\",\"detail\":\"filter.last.gt( filter-value:LONG ): result:FILTER\\nfilter.last.gt( filter-value:DOUBLE ): result:FILTER\\nfilter.last.gt( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.gt\"},{\"name\":\"filter.last.le\",\"detail\":\"filter.last.le( filter-value:LONG ): result:FILTER\\nfilter.last.le( filter-value:DOUBLE ): result:FILTER\\nfilter.last.le( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is less or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.le\"},{\"name\":\"filter.last.lt\",\"detail\":\"filter.last.lt( filter-value:LONG ): result:FILTER\\nfilter.last.lt( filter-value:DOUBLE ): result:FILTER\\nfilter.last.lt( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value is less than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.lt\"},{\"name\":\"filter.last.ne\",\"detail\":\"filter.last.ne( filter-value:LONG ): result:FILTER\\nfilter.last.ne( filter-value:DOUBLE ): result:FILTER\\nfilter.last.ne( filter-value:BOOLEAN ): result:FILTER\\nfilter.last.ne( filter-value:STRING ): result:FILTER\",\"documentation\":\"This filter function only selects the Geo Time Series™ whose last value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ne\"},{\"name\":\"filter.latencies\",\"detail\":\"filter.latencies( minLatency:LONG maxLatency:LONG options:LIST<STRING> ): filter:FILTER\",\"documentation\":\"Pushes onto the stack a *pseudo* FILTER which computes latencies in a network. It uses the [`FILTER`](/doc/FILTER) framework for conveniency but really returns new GTS.\\n\\nThe input Geo Time Series™ are assumed to have values which are fingerprints of packet payloads. The first GTS is assumed to be the *uplink* and all the other GTS the *downlinks*.\\n\\nThe ticks are the time at which a packet with the given fingerprint was observed.\\n\\nThe generated Geo Time Series™ will have the same ticks as the uplink one, except the values will be latencies instead of packet fingerprints.\\n\\nThe `filter.latencies` function accepts a number of options:\\n\\n| Option | Description |\\n|--------|-------------|\\n| uplink.latency.min | Compute minimum latency on the uplink. |\\n| uplink.latency.max | Compute maximum latency on the uplink. |\\n| downlink.latency.min | Compute minimum latency on each downlink. |\\n| downlink.latency.max | Compute maximum latency on each downlink. |\\n| downlink.matches | Compute the number of matches for each downlink. |\\n| downlinks.totalmatches | Computes the total number of matches across downlinks. |\\n| downlinks.bitsets | Computes a bitset of downlinks which saw the packet (limited to 64 downlinks). |\\n| downlinks.withmatches | Computes the number of downlinks with matches for the given packet. |\\n\\nThis pseudo FILTER is very specific to a networking use case, but it is a good demonstration of the power of WarpScript and its frameworks.\\n\\n@param `options` List of options, see above for their description.\\n\\n@param `maxLatency` Maximum allowable latency, packets with latency above this threshold are ignored.\\n\\n@param `minLatency` Minimum latency, packets with a latency below this threshold are ignored.\\n\\n@param `filter` Instance of `filter.latencies`.\\n\\n\",\"tags\":[\"filter\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.latencies\"},{\"name\":\"finney\",\"detail\":\"finney(): value:LONG\",\"documentation\":\"The `finney` function returns 1,000,000,000,000,000.\\n\\nThe unit is named after [Hal Finney](https://en.wikipedia.org/wiki/Hal_Finney_(computer_scientist)).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"finney\"},{\"name\":\"gwei\",\"detail\":\"gwei(): value:LONG\",\"documentation\":\"The `gwei` function returns 1,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"gwei\"},{\"name\":\"h\",\"detail\":\"h( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of hours (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of hours from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of hours to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of hours\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"h\"},{\"name\":\"kwei\",\"detail\":\"kwei(): value:LONG\",\"documentation\":\"The `kwei` function returns 1000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"kwei\"},{\"name\":\"lovelace\",\"detail\":\"lovelace(): value:LONG\",\"documentation\":\"The `lovelace` function returns 1,000,000.\\n\\nThe unit is named after [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"lovelace\"},{\"name\":\"m\",\"detail\":\"m( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of minutes (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of minutes from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of minutes to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of minutes\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"m\"},{\"name\":\"mapper.abs\",\"detail\":\"mapper.abs(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the absolute value of single value in a sliding window.\\n\\nThe `mapper.abs` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.abs\"},{\"name\":\"mapper.add\",\"detail\":\"mapper.add( constant:DOUBLE ): result:AGGREGATOR\\nmapper.add( constant:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function adds a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.add` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.add` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Value to add\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.add\"},{\"name\":\"mapper.and\",\"detail\":\"mapper.and(): result:AGGREGATOR\",\"documentation\":\"This mapper function applies the logical operator **AND** on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.and\"},{\"name\":\"mapper.ceil\",\"detail\":\"mapper.ceil(): result:AGGREGATOR\",\"documentation\":\"This mapper function rounds the single value in a sliding window to the closests greater **LONG**.\\n\\nThe `mapper.ceil` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.ceil\"},{\"name\":\"mapper.count\",\"detail\":\"mapper.count(): result:AGGREGATOR\",\"documentation\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count\"},{\"name\":\"mapper.count.exclude-nulls\",\"detail\":\"mapper.count.exclude-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.count.exclude-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.exclude-nulls\"},{\"name\":\"mapper.count.include-nulls\",\"detail\":\"mapper.count.include-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.count.include-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.include-nulls\"},{\"name\":\"mapper.count.nonnull\",\"detail\":\"mapper.count.nonnull(): result:AGGREGATOR\",\"documentation\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.nonnull\"},{\"name\":\"mapper.day\",\"detail\":\"mapper.day( timezone:STRING ): result:AGGREGATOR\\nmapper.day( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the day of the tick for which it is computed.\\n\\nThe `mapper.day` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n@param `timezone` Timezone to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.day\"},{\"name\":\"mapper.delta\",\"detail\":\"mapper.delta(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the delta between the last and first values (delta = last - first) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.delta` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does \\nnot return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.delta\"},{\"name\":\"mapper.dotproduct\",\"detail\":\"mapper.dotproduct( vector:LIST ): result:AGGREGATOR\",\"documentation\":\"The `mapper.dotproduct` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct\"},{\"name\":\"mapper.dotproduct.positive\",\"detail\":\"mapper.dotproduct.positive( vector:LIST ): result:AGGREGATOR\",\"documentation\":\"The `mapper.dotproduct.positive` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it sets all negative results to 0.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.positive\"},{\"name\":\"mapper.dotproduct.sigmoid\",\"detail\":\"mapper.dotproduct.sigmoid( vector:LIST ): result:AGGREGATOR\",\"documentation\":\"The `mapper.dotproduct.sigmoid` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the sigmoid of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.sigmoid\"},{\"name\":\"mapper.dotproduct.tanh\",\"detail\":\"mapper.dotproduct.tanh( vector:LIST ): result:AGGREGATOR\",\"documentation\":\"The `mapper.dotproduct.tanh` function consumes a vector as parameter (a **LIST* of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the \\n[hyperbolic tangent](https://en.wikipedia.org/wiki/Hyperbolic_function) of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.tanh\"},{\"name\":\"mapper.eq\",\"detail\":\"mapper.eq( parameter:LONG ): result:AGGREGATOR\\nmapper.eq( parameter:DOUBLE ): result:AGGREGATOR\\nmapper.eq( parameter:BOOLEAN ): result:AGGREGATOR\\nmapper.eq( parameter:STRING ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value in a sliding window which is equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.eq` function can be applied to data of any type.\\n\\nThe `mapper.eq` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.eq\"},{\"name\":\"mapper.eq.elev\",\"detail\":\"mapper.eq.elev( parameter:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is equal to a given value.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.eq.elev` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.elev\"},{\"name\":\"mapper.eq.hhcode\",\"detail\":\"mapper.eq.hhcode( parameter:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is equal to a given value.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.eq.hhcode` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.hhcode\"},{\"name\":\"mapper.eq.lat\",\"detail\":\"mapper.eq.lat( parameter:LONG ): result:AGGREGATOR\\nmapper.eq.lat( parameter:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is equal to a given value.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.eq.lat` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lat\"},{\"name\":\"mapper.eq.lon\",\"detail\":\"mapper.eq.lon( parameter:LONG ): result:AGGREGATOR\\nmapper.eq.lon( parameter:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is equal to a given value.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.eq.lon` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lon\"},{\"name\":\"mapper.eq.tick\",\"detail\":\"mapper.eq.tick( parameter:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is equal to a given value.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.eq.tick` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.tick\"},{\"name\":\"mapper.exp\",\"detail\":\"mapper.exp( constant:LONG ): result:AGGREGATOR\\nmapper.exp( constant:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function raises a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.exp` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.exp` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\n> ## Note\\n> The `mapper.exp` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n>\\n> So you are looking for a way to apply the exponential function, ex, to a series of Geo Time Series™. It’s very easy to do it using `mapper.exp` and the\\n> [`e`](/doc/OF) constant.\\n\\n@param `result` Mapper to apply\\n\\n@param `constant` Constant to use\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.exp\"},{\"name\":\"mapper.finite\",\"detail\":\"mapper.finite(): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns its input value only if it is finite (*i.e.* a non DOUBLE or a DOUBLE which is neither NaN nor Infinity).\\n\\n@param `result` Instance of mapper.finite.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.finite\"},{\"name\":\"mapper.first\",\"detail\":\"mapper.first(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.first` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.first\"},{\"name\":\"mapper.floor\",\"detail\":\"mapper.floor(): result:AGGREGATOR\",\"documentation\":\"This mapper function rounds the *single value* in a sliding window to the closests lower **LONG**.\\n\\nThe `mapper.floor` function can be applied to data of type **LONG** or **DOUBLE**.      \\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.floor\"},{\"name\":\"mapper.ge\",\"detail\":\"mapper.ge( threshold:LONG ): result:AGGREGATOR\\nmapper.ge( threshold:STRING ): result:AGGREGATOR\\nmapper.ge( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ge` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.ge` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ge\"},{\"name\":\"mapper.ge.elev\",\"detail\":\"mapper.ge.elev( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ge.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.elev\"},{\"name\":\"mapper.ge.hhcode\",\"detail\":\"mapper.ge.hhcode( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ge.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.hhcode\"},{\"name\":\"mapper.ge.lat\",\"detail\":\"mapper.ge.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.ge.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ge.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lat\"},{\"name\":\"mapper.ge.lon\",\"detail\":\"mapper.ge.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.ge.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ge.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lon\"},{\"name\":\"mapper.ge.tick\",\"detail\":\"mapper.ge.tick( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ge.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.tick\"},{\"name\":\"mapper.geo.approximate\",\"detail\":\"mapper.geo.approximate( resolution:LONG ): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack a mapper instance which will transform the input Geo Time Series™ by approximating the location to the given resolution.\\n\\nApproximation is done by clearing lower bits of the location [HHCode](https://en.wikipedia.org/wiki/HHCode). At resolution `R`, the lower `64 - 2R` bits are cleared.\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\n\\n\\n@param `resolution` HHCode resolution at which to approximate the locations. Resoluion is an even number between 2 (coarsest) and 32 (finest).\\n\\n@param `result` Instance of mapper.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.approximate\"},{\"name\":\"mapper.geo.clear\",\"detail\":\"mapper.geo.clear(): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack a mapper which will discard location and elevation information when applied to a Geo Time Series™.\\n\\nThis mapper can only be applied to single values\\n\\n@param `result` Instance of the `mapper.geo.clear` mapper.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.geo.clear\"},{\"name\":\"mapper.geo.fence\",\"detail\":\"mapper.geo.fence( zone:GEOSHAPE ): result:AGGREGATOR\",\"documentation\":\"This function produces a `mapper` which outputs a `BOOLEAN` for each point with an associated location. The value of the output is `true` if the location is inside the provided `GEOSHAPE` and `false` otherwise.\\nThe geo zone can be defined in [WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using [`GEO.WKT`](/doc/GEO.WKT) or in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) using [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `zone` Geographical zone.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"2.7.1\",\"OPB64name\":\"mapper.geo.fence\"},{\"name\":\"mapper.geo.outside\",\"detail\":\"mapper.geo.outside( geoZone:GEOSHAPE ): result:AGGREGATOR\",\"documentation\":\"This mapper filters the Geo Time Series™, keeping only the points outside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.outside\"},{\"name\":\"mapper.geo.within\",\"detail\":\"mapper.geo.within( geoZone:GEOSHAPE ): result:AGGREGATOR\",\"documentation\":\"This mapper filters the Geo Time Series™, keeping only the points inside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.within\"},{\"name\":\"mapper.gt\",\"detail\":\"mapper.gt( threshold:LONG ): result:AGGREGATOR\\nmapper.gt( threshold:STRING ): result:AGGREGATOR\\nmapper.gt( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value in a sliding window which is greater than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.gt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.gt` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.gt\"},{\"name\":\"mapper.gt.elev\",\"detail\":\"mapper.gt.elev( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is greater than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.gt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.elev\"},{\"name\":\"mapper.gt.hhcode\",\"detail\":\"mapper.gt.hhcode( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.gt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.hhcode\"},{\"name\":\"mapper.gt.lat\",\"detail\":\"mapper.gt.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.gt.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is greater than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.gt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lat\"},{\"name\":\"mapper.gt.lon\",\"detail\":\"mapper.gt.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.gt.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is greater than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.gt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lon\"},{\"name\":\"mapper.gt.tick\",\"detail\":\"mapper.gt.tick( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is greater than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.gt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.tick\"},{\"name\":\"mapper.hdist\",\"detail\":\"mapper.hdist(): hdistMapper:AGGREGATOR\",\"documentation\":\"The `mapper.hdist` function computes the total distance traveled while going through the points in the sliding window in chronological order. This distance is in meters.\\n\\nThe distance used is the loxodromic distance aka rhumb line. As a consequence, elevation is not taken into account in the distance.\\n\\nIf a point has no position in the sliding window, it is ignored.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe `mapper.hdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `hdistMapper` A function which can be used in a mapper.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hdist\"},{\"name\":\"mapper.highest\",\"detail\":\"mapper.highest(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the value associated with the highest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the most recent is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.highest\"},{\"name\":\"mapper.hour\",\"detail\":\"mapper.hour( timezone:STRING ): result:AGGREGATOR\\nmapper.hour( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the hour of the tick for which it is computed.\\n\\nThe `mapper.hour` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.hour\"},{\"name\":\"mapper.hspeed\",\"detail\":\"mapper.hspeed(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the horizontal speed along the path traveled in the sliding window.\\n\\nThe distance is computed by summing the distances along the rhumb line between two consecutive locations.\\n\\nIf there is only one tick in the sliding window, the speed is 0.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.hspeed` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hspeed\"},{\"name\":\"mapper.join\",\"detail\":\"mapper.join( separator:STRING ): result:AGGREGATOR\",\"documentation\":\"This mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join\"},{\"name\":\"mapper.join.forbid-nulls\",\"detail\":\"mapper.join.forbid-nulls( separator:STRING ): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.join.forbid-nulls` has the same behavior as `mapper.join`, use `mapper.join` instead.\\n\\nThis mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join.forbid-nulls\"},{\"name\":\"mapper.kernel.cosine\",\"detail\":\"mapper.kernel.cosine( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [cosine kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics.\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.cosine\"},{\"name\":\"mapper.kernel.epanechnikov\",\"detail\":\"mapper.kernel.epanechnikov( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using an [epanechnikov kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.epanechnikov\"},{\"name\":\"mapper.kernel.gaussian\",\"detail\":\"mapper.kernel.gaussian( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [gaussian kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.gaussian\"},{\"name\":\"mapper.kernel.logistic\",\"detail\":\"mapper.kernel.logistic( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [logistic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.logistic\"},{\"name\":\"mapper.kernel.quartic\",\"detail\":\"mapper.kernel.quartic( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [quartic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.quartic\"},{\"name\":\"mapper.kernel.silverman\",\"detail\":\"mapper.kernel.silverman( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [silverman kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.silverman\"},{\"name\":\"mapper.kernel.triangular\",\"detail\":\"mapper.kernel.triangular( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triangular kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triangular\"},{\"name\":\"mapper.kernel.tricube\",\"detail\":\"mapper.kernel.tricube( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [tricube kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.tricube\"},{\"name\":\"mapper.kernel.triweight\",\"detail\":\"mapper.kernel.triweight( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triweight kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triweight\"},{\"name\":\"mapper.kernel.uniform\",\"detail\":\"mapper.kernel.uniform( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"documentation\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [uniform kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.uniform\"},{\"name\":\"mapper.last\",\"detail\":\"mapper.last(): result:AGGREGATOR\",\"documentation\":\"This [`mapper`](/doc/MAP) function returns the last value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.last` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.last\"},{\"name\":\"mapper.le\",\"detail\":\"mapper.le( threshold:DOUBLE ): result:AGGREGATOR\\nmapper.le( threshold:LONG ): result:AGGREGATOR\\nmapper.le( threshold:STRING ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.le` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.le` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.le\"},{\"name\":\"mapper.le.elev\",\"detail\":\"mapper.le.elev( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.le.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.elev\"},{\"name\":\"mapper.le.hhcode\",\"detail\":\"mapper.le.hhcode( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.le.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.hhcode\"},{\"name\":\"mapper.le.lat\",\"detail\":\"mapper.le.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.le.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.le.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lat\"},{\"name\":\"mapper.le.lon\",\"detail\":\"mapper.le.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.le.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.le.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lon\"},{\"name\":\"mapper.le.tick\",\"detail\":\"mapper.le.tick( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.le.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.tick\"},{\"name\":\"mapper.log\",\"detail\":\"mapper.log( constant:DOUBLE ): result:AGGREGATOR\\nmapper.log( constant:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function takes the log of the **single value** in a sliding window in the base used as parameter to `mapper.log`.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.log` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.log` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\nThe `mapper.log` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n\\n@param `constant` Constant parameter\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.log\"},{\"name\":\"mapper.lowest\",\"detail\":\"mapper.lowest(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the value associated with the lowest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the one appearing first chronologically is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.lowest\"},{\"name\":\"mapper.lt\",\"detail\":\"mapper.lt( threshold:DOUBLE ): result:AGGREGATOR\\nmapper.lt( threshold:LONG ): result:AGGREGATOR\\nmapper.lt( threshold:STRING ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value in a sliding window which is less than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.lt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.lt` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.lt\"},{\"name\":\"mapper.lt.elev\",\"detail\":\"mapper.lt.elev( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is less than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.lt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.elev\"},{\"name\":\"mapper.lt.hhcode\",\"detail\":\"mapper.lt.hhcode( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.lt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.hhcode\"},{\"name\":\"mapper.lt.lat\",\"detail\":\"mapper.lt.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.lt.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is less than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.lt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lat\"},{\"name\":\"mapper.lt.lon\",\"detail\":\"mapper.lt.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.lt.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is less than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.lt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lon\"},{\"name\":\"mapper.lt.tick\",\"detail\":\"mapper.lt.tick( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is less than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.lt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.tick\"},{\"name\":\"mapper.mad\",\"detail\":\"mapper.mad(): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) over each sliding window.\\n\\nThe returned location is the median of all the locations in the sliding window, and the returned elevation is the median of all the elevations in the window.\\n\\n@param `result` Instance of `mapper.mad`.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.0\",\"OPB64name\":\"mapper.mad\"},{\"name\":\"mapper.max\",\"detail\":\"mapper.max(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max\"},{\"name\":\"mapper.max.forbid-nulls\",\"detail\":\"mapper.max.forbid-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.max.forbid-nulls` has the same behavior as `mapper.max`, use `mapper.max` instead.\\n\\nThis mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max.forbid-nulls\"},{\"name\":\"mapper.max.x\",\"detail\":\"mapper.max.x( constant:DOUBLE ): result:AGGREGATOR\\nmapper.max.x( constant:LONG ): result:AGGREGATOR\\nmapper.max.x( constant:STRING ): result:AGGREGATOR\\nmapper.max.x( constant:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the max between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.max.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.max.x\"},{\"name\":\"mapper.mean\",\"detail\":\"mapper.mean(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean\"},{\"name\":\"mapper.mean.circular\",\"detail\":\"mapper.mean.circular( modulo:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`mapper.mean.circular.exclude-nulls`](/doc/mapper.mean.circular.exclude-nulls) if your sliding windows may contain nulls.\\n\\nThe `mapper.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular\"},{\"name\":\"mapper.mean.circular.exclude-nulls\",\"detail\":\"mapper.mean.circular.exclude-nulls( modulo:NUMBER ): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.mean.circular.exclude-nulls` has the same behavior as `mapper.mean.circular`, use `mapper.mean.circular` instead.\\n\\nThis function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular.exclude-nulls` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `mapper.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular.exclude-nulls\"},{\"name\":\"mapper.mean.exclude-nulls\",\"detail\":\"mapper.mean.exclude-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.mean.exclude-nulls` has the same behavior as `mapper.mean`, use `mapper.mean` instead.\\n        \\nThis mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.exclude-nulls\"},{\"name\":\"mapper.median\",\"detail\":\"mapper.median(): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median`.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.median\"},{\"name\":\"mapper.median.forbid-nulls\",\"detail\":\"mapper.median.forbid-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.median.forbid-nulls` has the same behavior as `mapper.median`, use `mapper.median` instead.\\n\\nPushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median.forbid-nulls`.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"2.4.0\",\"OPB64name\":\"mapper.median.forbid-nulls\"},{\"name\":\"mapper.min\",\"detail\":\"mapper.min(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min\"},{\"name\":\"mapper.min.forbid-nulls\",\"detail\":\"mapper.min.forbid-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.min.forbid-nulls` has the same behavior as `mapper.min`, use `mapper.min` instead.\\n\\nThis mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min.forbid-nulls\"},{\"name\":\"mapper.min.x\",\"detail\":\"mapper.min.x( constant:DOUBLE ): result:AGGREGATOR\\nmapper.min.x( constant:LONG ): result:AGGREGATOR\\nmapper.min.x( constant:STRING ): result:AGGREGATOR\\nmapper.min.x( constant:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the min between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.min.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.min.x\"},{\"name\":\"mapper.minute\",\"detail\":\"mapper.minute( timezone:STRING ): result:AGGREGATOR\\nmapper.minute( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the minute of the tick for which it is computed.\\n\\nThe `mapper.minute` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.minute\"},{\"name\":\"mapper.mod\",\"detail\":\"mapper.mod( modulus:NUMBER ): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the remainder of a value given a modulus.\\n\\nThis MAPPER can only be applied to a single value.\\n\\n@param `modulus` Modulus to consider when computing the remainder.\\n\\n@param `result` Instance of `mapper.mod`.\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"mapper.mod\"},{\"name\":\"mapper.month\",\"detail\":\"mapper.month( timezone:STRING ): result:AGGREGATOR\\nmapper.month( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the month of the tick for which it is computed.\\n\\nThe `mapper.month` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.month\"},{\"name\":\"mapper.mul\",\"detail\":\"mapper.mul( constant:LONG ): result:AGGREGATOR\\nmapper.mul( constant:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function multiplies by a constant the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.mul` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.mul` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.mul\"},{\"name\":\"mapper.ne\",\"detail\":\"mapper.ne( parameter:LONG ): result:AGGREGATOR\\nmapper.ne( parameter:DOUBLE ): result:AGGREGATOR\\nmapper.ne( parameter:BOOLEAN ): result:AGGREGATOR\\nmapper.ne( parameter:STRING ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first value in a sliding window which is not equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ne` function can be applied to data of any type.\\n\\nThe `mapper.ne` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ne\"},{\"name\":\"mapper.ne.elev\",\"detail\":\"mapper.ne.elev( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first elevation in a sliding window which is not equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ne.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.elev\"},{\"name\":\"mapper.ne.hhcode\",\"detail\":\"mapper.ne.hhcode( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is not equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ne.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.hhcode\"},{\"name\":\"mapper.ne.lat\",\"detail\":\"mapper.ne.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.ne.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first latitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ne.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lat\"},{\"name\":\"mapper.ne.lon\",\"detail\":\"mapper.ne.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.ne.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first longitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ne.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lon\"},{\"name\":\"mapper.ne.tick\",\"detail\":\"mapper.ne.tick( threshold:LONG ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the first tick in a sliding window which is not equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ne.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.tick\"},{\"name\":\"mapper.npdf\",\"detail\":\"mapper.npdf( mu:DOUBLE sigma:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the probability of a value given a normal distribution.\\n\\n@param `mu` Mean of the normal (Gaussian) distribution to consider.\\n\\n@param `sigma` Standard deviation of the normal (Gaussian) distribution to consider.\\n\\n@param `result` Instance of `mapper.npdf`.\\n\\n\",\"tags\":[\"gts\",\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.npdf\"},{\"name\":\"mapper.or\",\"detail\":\"mapper.or(): result:AGGREGATOR\",\"documentation\":\"This mapper function applies the logical operator OR on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.or\"},{\"name\":\"mapper.parsedouble\",\"detail\":\"mapper.parsedouble( tag:STRING ): result:AGGREGATOR\",\"documentation\":\"This mapper function converts a **STRING** single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.parsedouble` function can be applied to data of type **STRING**.\\n\\nThis function expects a [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) \\nparameter in top of the mapper. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `tag` [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) parameter. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.5\",\"OPB64name\":\"mapper.parsedouble\"},{\"name\":\"mapper.percentile\",\"detail\":\"mapper.percentile( percentile:NUMBER ): bucketizer:AGGREGATOR\\nmapper.percentile( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile\"},{\"name\":\"mapper.percentile.forbid-nulls\",\"detail\":\"mapper.percentile.forbid-nulls( percentile:NUMBER ): bucketizer:AGGREGATOR\\nmapper.percentile.forbid-nulls( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.percentile.forbid-nulls` has the same behavior as `mapper.percentile`, use `mapper.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile.forbid-nulls\"},{\"name\":\"mapper.pow\",\"detail\":\"mapper.pow( constant:LONG ): result:AGGREGATOR\\nmapper.pow( constant:DOUBLE ): result:AGGREGATOR\",\"documentation\":\"This mapper function raises the single value in a sliding window to a constant power.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.pow` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.pow` function must be parameterized with the constant.\\n\\nThe result is always of type DOUBLE.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.pow\"},{\"name\":\"mapper.product\",\"detail\":\"mapper.product(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the product of all the values found in the sliding window.\\n\\nThe `mapper.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\nOn [bucketized](/doc/BUCKETIZE) Geo Time Series™, it is necessary to fill gaps with [`FILLVALUE`](/doc/FILLVALUE)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.product\"},{\"name\":\"mapper.rate\",\"detail\":\"mapper.rate(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the rate of change between the first and last values (rate = (last - first) / (lastick - firsttick)) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.rate` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value. If the\\nsliding window contains less than 2 values, the rate of change will be 0.0.\\n\\nThe rate of change is expressed in units per second.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.rate\"},{\"name\":\"mapper.replace\",\"detail\":\"mapper.replace( constant:LONG ): result:AGGREGATOR\\nmapper.replace( constant:DOUBLE ): result:AGGREGATOR\\nmapper.replace( constant:STRING ): result:AGGREGATOR\\nmapper.replace( constant:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function replaces windows with at least one value with a constant. The location and elevation returned are those associated with the most \\nrecent value in the sliding window.\\n\\n@param `constant` constant used for replacement\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.replace\"},{\"name\":\"mapper.rms\",\"detail\":\"mapper.rms(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the root mean square of all the values found in each sliding window. The associated location is the last one of the window.\\n\\nThe `mapper.rms` function can only be applied to values of type **LONG** or **DOUBLE**.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.18\",\"OPB64name\":\"mapper.rms\"},{\"name\":\"mapper.round\",\"detail\":\"mapper.round(): result:AGGREGATOR\",\"documentation\":\"This mapper function rounds the *single value* in a sliding window to the closests **LONG**.\\n\\nThe `mapper.round` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.round\"},{\"name\":\"mapper.sd\",\"detail\":\"mapper.sd( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd\"},{\"name\":\"mapper.sd.forbid-nulls\",\"detail\":\"mapper.sd.forbid-nulls( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.sd.forbid-nulls` has the same behavior as `mapper.sd`, use `mapper.sd` instead.\\n\\nThis mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd.forbid-nulls\"},{\"name\":\"mapper.sd.welford\",\"detail\":\"mapper.sd.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.sd.welford\"},{\"name\":\"mapper.second\",\"detail\":\"mapper.second( timezone:STRING ): result:AGGREGATOR\\nmapper.second( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the second of the tick for which it is computed.\\n\\nThe `mapper.second` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.second\"},{\"name\":\"mapper.sigmoid\",\"detail\":\"mapper.sigmoid(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the sigmoid of *single value* in a sliding window.\\n\\nThe `mapper.sigmoid` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sigmoid\"},{\"name\":\"mapper.sqrt\",\"detail\":\"mapper.sqrt(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the square root of the single value in a sliding window.\\n\\nFor negative numerics, this mapper returns **NaN**. For string values, this mapper returns 0.\\n\\nThe associated location and elevation are those of the single value.\\n\\n> ### Note\\n> The `mapper.sqrt` mapper needs a single value sliding window, i.e. pre-window and post-window to 0\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.2.11\",\"OPB64name\":\"mapper.sqrt\"},{\"name\":\"mapper.sum\",\"detail\":\"mapper.sum(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum\"},{\"name\":\"mapper.sum.forbid-nulls\",\"detail\":\"mapper.sum.forbid-nulls(): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.sum.forbid-nulls` has the same behavior as `mapper.sum`, use `mapper.sum` instead.\\n\\nThis mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum.forbid-nulls\"},{\"name\":\"mapper.tanh\",\"detail\":\"mapper.tanh(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the hyperbolic tangent of *single value* in a sliding window.\\n\\nThe `mapper.tanh` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tanh\"},{\"name\":\"mapper.tick\",\"detail\":\"mapper.tick(): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the tick for which it is computed. The associated location and elevation are those of the selected value.\\n\\nThe `mapper.tick` function can be applied to values of any type.        \\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.tick\"},{\"name\":\"mapper.toboolean\",\"detail\":\"mapper.toboolean(): result:AGGREGATOR\",\"documentation\":\"This mapper function converts the single value in a sliding window to **BOOLEAN**.\\n\\nThe `mapper.toboolean` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.toboolean\"},{\"name\":\"mapper.todouble\",\"detail\":\"mapper.todouble(): result:AGGREGATOR\",\"documentation\":\"This mapper function converts the single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.todouble` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.todouble\"},{\"name\":\"mapper.tolong\",\"detail\":\"mapper.tolong(): result:AGGREGATOR\",\"documentation\":\"This mapper function converts the single value in a sliding window to **LONG**.\\n\\nThe `mapper.tolong` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tolong\"},{\"name\":\"mapper.tostring\",\"detail\":\"mapper.tostring(): result:AGGREGATOR\",\"documentation\":\"This mapper function converts the single value in a sliding window to **STRING**.\\n\\nThe `mapper.tostring` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tostring\"},{\"name\":\"mapper.truecourse\",\"detail\":\"mapper.truecourse(): result:AGGREGATOR\",\"documentation\":\"Pushes onto the stack a mapper which will compute the initial [true course]http://www.edwilliams.org/avform.htm#Crs) on a great circle from the first to the last datapoint in the sliding window.\\n\\nThe location and elevation of the result is that of the tick being considered.\\n\\n@param `result` Instance of mapper.truecourse.\\n\\n\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.truecourse\"},{\"name\":\"mapper.var\",\"detail\":\"mapper.var( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var\"},{\"name\":\"mapper.var.forbid-nulls\",\"detail\":\"mapper.var.forbid-nulls( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"**Deprecated**: `mapper.var.forbid-nulls` has the same behavior as `mapper.var`, use `mapper.var` instead.\\n\\nThis mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var.forbid-nulls\"},{\"name\":\"mapper.var.welford\",\"detail\":\"mapper.var.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.var`](/doc/mapper.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.var.welford\"},{\"name\":\"mapper.vdist\",\"detail\":\"mapper.vdist(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the total distance traveled in the vertical plane in the sliding window.\\n\\nThe distance is computed by summing the distances between consecutive elevations (this differs from the computation done in [`mapper.vspeed`](/doc/mapper.vspeed))\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed distance is expressed in meters.\\n\\nThe `mapper.vdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vdist\"},{\"name\":\"mapper.vspeed\",\"detail\":\"mapper.vspeed(): result:AGGREGATOR\",\"documentation\":\"This mapper function computes the vertical speed between the first and last readings of the sliding window. It does not compute the speed based on the total\\nvertical distance traveled in the sliding window, it only considers its extrema (it differs significantly of what is done for horizontal speed in\\n[`mapper.hspeed`](/doc/mapper.hspeed)), thus the result can be positive or negative.\\n\\nIf one of the extrema of the sliding window has no elevation, no value is returned.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.vspeed` function can be applied to data of any type since it only considers elevations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vspeed\"},{\"name\":\"mapper.weekday\",\"detail\":\"mapper.weekday( timezone:STRING ): result:AGGREGATOR\\nmapper.weekday( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the day of the week of the tick for which it is computed.\\n\\nThe `mapper.weekday` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.weekday\"},{\"name\":\"mapper.year\",\"detail\":\"mapper.year( timezone:STRING ): result:AGGREGATOR\\nmapper.year( offset:NUMBER ): result:AGGREGATOR\",\"documentation\":\"This mapper function returns the year of the tick for which it is computed.\\n\\nThe `mapper.year` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.year\"},{\"name\":\"max.tick.sliding.window\",\"detail\":\"max.tick.sliding.window(): max:LONG\",\"documentation\":\"Pushes onto the stack [`MAXLONG`](/doc/MAXLONG) divided by 2, to serve as the maximum number of ticks left or right of the current tick in a [`MAP`](/doc/MAP) sliding window.\\n\\nGiven that a Geo Time Series™ can have no more than 2**32 datapoints, this value is sufficient to cover the whole GTS left or right of the current tick.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.tick.sliding.window\"},{\"name\":\"max.time.sliding.window\",\"detail\":\"max.time.sliding.window(): max:LONG\",\"documentation\":\"Pushes onto the stack half of the minimum LONG value, to serve as a *pre* or *post* extension of a [`MAP`](/doc/MAP) sliding window in time units.\\n\\nThis value spans a lot of time but may not be enough to cover the entirety of a GTS.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.time.sliding.window\"},{\"name\":\"ms\",\"detail\":\"ms( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of milliseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of milliseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of milliseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of milliseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ms\"},{\"name\":\"mwei\",\"detail\":\"mwei(): value:LONG\",\"documentation\":\"The `mwei` function returns 1,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"mwei\"},{\"name\":\"ns\",\"detail\":\"ns( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of nanoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of nanoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of nanoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of nanoseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ns\"},{\"name\":\"op.add\",\"detail\":\"op.add(): op:OPERATOR\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter Geo Time Series™.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator forbids null values, *i.e.* if a `null` is encountered, then there will be no result for the given tick.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.add\"},{\"name\":\"op.add.ignore-nulls\",\"detail\":\"op.add.ignore-nulls(): op:OPERATOR\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter GTS.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.add.ignore-nulls\"},{\"name\":\"op.and\",\"detail\":\"op.and(): op:OPERATOR\",\"documentation\":\"To apply an `op.and` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and\"},{\"name\":\"op.and.ignore-nulls\",\"detail\":\"op.and.ignore-nulls(): op:OPERATOR\",\"documentation\":\"To apply an `op.and.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and.ignore-nulls` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and.ignore-nulls\"},{\"name\":\"op.div\",\"detail\":\"op.div(): op:OPERATOR\",\"documentation\":\"To apply an `op.div` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.div is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.div` operation can only operate on equivalence classes which have two GTS (if the equivalence class has more than two GTS, there is no result guaranted). It will divide at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.div\"},{\"name\":\"op.eq\",\"detail\":\"op.eq(): op:OPERATOR\",\"documentation\":\"To apply an `op.eq` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.eq is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.eq` operation will check for equality at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.eq\"},{\"name\":\"op.ge\",\"detail\":\"op.ge(): op:OPERATOR\",\"documentation\":\"To apply an `op.ge` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ge` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ge` operation will check at each tick if the value of the current GTS is greater or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ge\"},{\"name\":\"op.gt\",\"detail\":\"op.gt(): op:OPERATOR\",\"documentation\":\"To apply an `op.gt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.gt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.gt` operation will check at each tick if the value of the current GTS is greater than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.gt\"},{\"name\":\"op.le\",\"detail\":\"op.le(): op:OPERATOR\",\"documentation\":\"To apply an `op.le` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.le` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.le` operation will check at each tick if the value of the current GTS is lesser or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.le\"},{\"name\":\"op.lt\",\"detail\":\"op.lt(): op:OPERATOR\",\"documentation\":\"To apply an `op.lt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.lt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.lt` operation will check at each tick if the value of the current GTS is lesser than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.lt\"},{\"name\":\"op.mask\",\"detail\":\"op.mask(): op:OPERATOR\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), retains datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mask\"},{\"name\":\"op.mul\",\"detail\":\"op.mul(): op:OPERATOR\",\"documentation\":\"To apply an `op.mul` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mul\"},{\"name\":\"op.mul.ignore-nulls\",\"detail\":\"op.mul.ignore-nulls(): op:OPERATOR\",\"documentation\":\"To apply an `op.mul.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul.ignore-nulls` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.mul.ignore-nulls\"},{\"name\":\"op.ne\",\"detail\":\"op.ne(): op:OPERATOR\",\"documentation\":\"To apply an `op.ne` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ne` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ne` operation will check for inequality at each tick all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ne\"},{\"name\":\"op.negmask\",\"detail\":\"op.negmask(): op:OPERATOR\",\"documentation\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), removes datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The operator instance.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.negmask\"},{\"name\":\"op.or\",\"detail\":\"op.or(): op:OPERATOR\",\"documentation\":\"To apply an `op.or` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or\"},{\"name\":\"op.or.ignore-nulls\",\"detail\":\"op.or.ignore-nulls(): op:OPERATOR\",\"documentation\":\"To apply an `op.or.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or.ignore-nulls` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or.ignore-nulls\"},{\"name\":\"op.sub\",\"detail\":\"op.sub(): op:OPERATOR\",\"documentation\":\"To apply an `op.sub` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.sub` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe sub operator can only operate on equivalence classes which have **exactly two GTS**. It will substract at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.sub\"},{\"name\":\"pi\",\"detail\":\"pi(): pi:DOUBLE\",\"documentation\":\"Alias of [PI](/doc/J3Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"R5Z\"},{\"name\":\"ps\",\"detail\":\"ps( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of picoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of picoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of picoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of picoseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ps\"},{\"name\":\"pwei\",\"detail\":\"pwei(): value:LONG\",\"documentation\":\"The `pwei` function returns 1,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"pwei\"},{\"name\":\"reducer.and\",\"detail\":\"reducer.and(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.and` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and\"},{\"name\":\"reducer.and.exclude-nulls\",\"detail\":\"reducer.and.exclude-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.and.exclude-nulls` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ \\nwhich are in the same equivalence class, excluding nulls from the computation.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, \\nthe current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and.exclude-nulls\"},{\"name\":\"reducer.argmax\",\"detail\":\"reducer.argmax( label:STRING maximum:LONG ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.argmax` function outputs for each tick, the tick and the concatenation separated by ‘,’ of the values of the labels for which the\\nvalue is the maximum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the maximum to report (use 0 to report all), and a **STRING**\\nparameter to choose on which label it operates.\\n\\n@param `maximum` Maximum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmax\"},{\"name\":\"reducer.argmin\",\"detail\":\"reducer.argmin( label:STRING minimum:LONG ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.argmin` function outputs for each tick, the tick and the concatenation separated by ‘,’ \\nwith the values of the labels for which the value is the minimum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the minimum to report (use 0 to report all), and a **STRING** \\nparameter to choose on which label it operates.\\n\\n@param `minimum` Minimum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmin\"},{\"name\":\"reducer.count\",\"detail\":\"reducer.count(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.count` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe include null version, [`reducer.count.include-nulls`](/doc/reducer.count.include-nulls), will include null values when computing the count. The exclude null version, \\n[`reducer.count.exclude-nulls`](/doc/reducer.count.exclude-nulls), will exclude null values when computing the count.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count\"},{\"name\":\"reducer.count.exclude-nulls\",\"detail\":\"reducer.count.exclude-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.count.exclude-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.exclude-nulls\"},{\"name\":\"reducer.count.include-nulls\",\"detail\":\"reducer.count.include-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.count.include-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are included.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.include-nulls\"},{\"name\":\"reducer.count.nonnull\",\"detail\":\"reducer.count.nonnull(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.count.nonnull` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.nonnull\"},{\"name\":\"reducer.join\",\"detail\":\"reducer.join( separator:STRING ): reducer:AGGREGATOR\",\"documentation\":\"The 'reducer.join' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will exclude all null values when computing the join.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join\"},{\"name\":\"reducer.join.forbid-nulls\",\"detail\":\"reducer.join.forbid-nulls( separator:STRING ): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.join.nonnull`](/doc/reducer.join.nonnull).\\n\\nThe 'reducer.join.forbid-nulls' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.forbid-nulls\"},{\"name\":\"reducer.join.nonnull\",\"detail\":\"reducer.join.nonnull( separator:STRING ): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.join.forbid-nulls`](/doc/reducer.join.forbid-nulls).\\n\\nThe 'reducer.join.nonnull' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.nonnull\"},{\"name\":\"reducer.join.urlencoded\",\"detail\":\"reducer.join.urlencoded( separator:STRING ): reducer:AGGREGATOR\",\"documentation\":\"The 'reducer.join.urlencoded' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) charset.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.urlencoded\"},{\"name\":\"reducer.mad\",\"detail\":\"reducer.mad(): reducer:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) for each ticks. Null values are removed before computing the MAD for each ticks.\\n\\nThe returned location is the median of all the locations and the returned elevation is the median of all the elevations.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.2.0\",\"OPB64name\":\"reducer.mad\"},{\"name\":\"reducer.max\",\"detail\":\"reducer.max(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.max` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will exclude all null values when computing the maximum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max\"},{\"name\":\"reducer.max.forbid-nulls\",\"detail\":\"reducer.max.forbid-nulls(): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.max.nonnull`](/doc/reducer.max.nonnull).\\n\\nThe `reducer.max.forbid-nulls` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.forbid-nulls\"},{\"name\":\"reducer.max.nonnull\",\"detail\":\"reducer.max.nonnull(): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.max.forbid-nulls`](/doc/reducer.max.forbid-nulls).\\n\\nThe `reducer.max.nonnull` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.nonnull\"},{\"name\":\"reducer.mean\",\"detail\":\"reducer.mean(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.mean` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean\"},{\"name\":\"reducer.mean.circular\",\"detail\":\"reducer.mean.circular( modulo:NUMBER ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.mean.circular` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`reducer.mean.circular.exclude-nulls`](/doc/reducer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `reducer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular\"},{\"name\":\"reducer.mean.circular.exclude-nulls\",\"detail\":\"reducer.mean.circular.exclude-nulls( modulo:NUMBER ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.mean.circular.exclude-nulls` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `reducer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular.exclude-nulls\"},{\"name\":\"reducer.mean.exclude-nulls\",\"detail\":\"reducer.mean.exclude-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.mean.exclude-nulls` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will exclude all null values when computing the mean.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.exclude-nulls\"},{\"name\":\"reducer.median\",\"detail\":\"reducer.median(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.median` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.median\"},{\"name\":\"reducer.median.forbid-nulls\",\"detail\":\"reducer.median.forbid-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.median.forbid-nulls` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series™ in the same equivalence class, it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.4.0\",\"OPB64name\":\"reducer.median.forbid-nulls\"},{\"name\":\"reducer.min\",\"detail\":\"reducer.min(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.min` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will exclude all null values when computing the minimum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min\"},{\"name\":\"reducer.min.forbid-nulls\",\"detail\":\"reducer.min.forbid-nulls(): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.min.nonnull`](/doc/reducer.min.nonnull).\\n\\nThe `reducer.min.forbid-nulls` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.forbid-nulls\"},{\"name\":\"reducer.min.nonnull\",\"detail\":\"reducer.min.nonnull(): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.min.forbid-nulls`](/doc/reducer.min.forbid-nulls).\\n\\nThe `reducer.min.nonnull` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.nonnull\"},{\"name\":\"reducer.or\",\"detail\":\"reducer.or(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.or` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or\"},{\"name\":\"reducer.or.exclude-nulls\",\"detail\":\"reducer.or.exclude-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.or.exclude-nulls` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or.exclude-nulls\"},{\"name\":\"reducer.percentile\",\"detail\":\"reducer.percentile( percentile:NUMBER ): bucketizer:AGGREGATOR\\nreducer.percentile( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile\"},{\"name\":\"reducer.percentile.forbid-nulls\",\"detail\":\"reducer.percentile.forbid-nulls( percentile:NUMBER ): bucketizer:AGGREGATOR\\nreducer.percentile.forbid-nulls( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"documentation\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nFor this reducer, GTS must be aligned and must have a value for each tick of each GTS. If this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series in the same equivalence class, it throws an error.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile.forbid-nulls\"},{\"name\":\"reducer.product\",\"detail\":\"reducer.product(): reducer:AGGREGATOR\",\"documentation\":\"This reducer function computes the product of all the values for each tick.\\n\\nThe `reducer.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.product\"},{\"name\":\"reducer.rms\",\"detail\":\"reducer.rms(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIf one value is null, there won't be any result for the concerned tick.\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms\"},{\"name\":\"reducer.rms.exclude-nulls\",\"detail\":\"reducer.rms.exclude-nulls(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms. Even if input GTS are misaligned, there will be one result per tick.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms.exclude-nulls\"},{\"name\":\"reducer.sd\",\"detail\":\"reducer.sd( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.sd` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd\"},{\"name\":\"reducer.sd.forbid-nulls\",\"detail\":\"reducer.sd.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.sd.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd.forbid-nulls\"},{\"name\":\"reducer.sd.welford\",\"detail\":\"reducer.sd.welford( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.sd.welford` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford\"},{\"name\":\"reducer.sd.welford.forbid-nulls\",\"detail\":\"reducer.sd.welford.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.sd.welford.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`reducer.sd.forbid-nulls`](/doc/reducer.sd.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford.forbid-nulls\"},{\"name\":\"reducer.shannonentropy.0\",\"detail\":\"reducer.shannonentropy.0(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.shannonentropy.0` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 0 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.0\"},{\"name\":\"reducer.shannonentropy.1\",\"detail\":\"reducer.shannonentropy.1(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.shannonentropy.1` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 1 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.1\"},{\"name\":\"reducer.sum\",\"detail\":\"reducer.sum(): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.sum` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum\"},{\"name\":\"reducer.sum.forbid-nulls\",\"detail\":\"reducer.sum.forbid-nulls(): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.sum.nonnull`](/doc/reducer.sum.nonnull).\\n\\nThe `reducer.sum.forbid-nulls` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.forbid-nulls\"},{\"name\":\"reducer.sum.nonnull\",\"detail\":\"reducer.sum.nonnull(): reducer:AGGREGATOR\",\"documentation\":\"Alias of [`reducer.sum.forbid-nulls`](/doc/reducer.sum.forbid-nulls).\\n\\nThe `reducer.sum.nonnull` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.nonnull\"},{\"name\":\"reducer.var\",\"detail\":\"reducer.var( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.var` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var\"},{\"name\":\"reducer.var.forbid-nulls\",\"detail\":\"reducer.var.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.var.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var.forbid-nulls\"},{\"name\":\"reducer.var.welford\",\"detail\":\"reducer.var.welford( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.var.welford` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var`](/doc/reducer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford\"},{\"name\":\"reducer.var.welford.forbid-nulls\",\"detail\":\"reducer.var.welford.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"documentation\":\"The `reducer.var.welford.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var.forbid-nulls`](/doc/reducer.var.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford.forbid-nulls\"},{\"name\":\"s\",\"detail\":\"s( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of seconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of seconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of seconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of seconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"s\"},{\"name\":\"shannon\",\"detail\":\"shannon(): value:LONG\",\"documentation\":\"The `shannon` function returns 1,000,000,000.\\n\\nThe unit is named after [Claude Shannon](https://en.wikipedia.org/wiki/Claude_Shannon).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"shannon\"},{\"name\":\"szabo\",\"detail\":\"szabo(): value:LONG\",\"documentation\":\"The `szabo` function returns 1,000,000,000,000.\\n\\nThe unit is named after [Nick Szabo](https://en.wikipedia.org/wiki/Nick_Szabo).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"szabo\"},{\"name\":\"twei\",\"detail\":\"twei(): value:LONG\",\"documentation\":\"The `twei` function returns 1,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"twei\"},{\"name\":\"us\",\"detail\":\"us( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of microseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of microseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of microseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of microseconds\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"us\"},{\"name\":\"w\",\"detail\":\"w( input:NUMBER ): output:LONG\",\"documentation\":\"Converts a number of weeks (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of weeks from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of weeks to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of weeks\\n\\n\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"w\"},{\"name\":\"wei\",\"detail\":\"wei(): value:LONG\",\"documentation\":\"The `wei` function returns 1 as the base unit of currency.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"tags\":[\"extensions\"],\"OPB64name\":\"wei\"},{\"name\":\"{\",\"detail\":\"{(): mark:MARK\",\"documentation\":\"Starts a map creation.\\n\\nThe `{` function creates a map by pushing a mark onto the stack. This is a syntactic help to better present map constructions. This function behaves like [`MARK`].\\n\\n@param `mark` A MARK object.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tk\"},{\"name\":\"{}\",\"detail\":\"{}(): newmap:MAP\",\"documentation\":\"The {} function creates an empty MAP on the top of the stack.\\n\\n\\n@param `newmap` Empty map instance.\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tro\"},{\"name\":\"|\",\"detail\":\"|( p1:LONG p2:LONG ): result:LONG\\n|( inputgts:GTS mask:LONG ): maskedgts:GTS\\n|( gts1:GTS gts2:GTS ): outputgts:GTS\",\"documentation\":\"Performs a bitwise **OR** operation.\\n\\nThe `|` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **OR**.\\n \\nSince Warp 10™ 2.1, `|` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be OR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with OR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts OR with mask\\n\\n\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"U.\"},{\"name\":\"||\",\"detail\":\"||( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\n||( l:LIST ): result:BOOLEAN\\n||( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"documentation\":\"The `||` operator is a synonymous for [`OR`](/doc/OR).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `||` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"U6k\"},{\"name\":\"}\",\"detail\":\"}( mark:MARK k1:ANY v1:ANY kN:ANY vN:ANY ): map:MAP\",\"documentation\":\"Closes a currently open map and pushes it onto the stack.\\n\\nThe `}` function pops from the stack the elements (key/value pairs) of the map up to the first mark. The marks are consumed.\\n\\n@param `k1` The first key\\n\\n@param `v1` The first value\\n\\n@param `kN` The Nth key\\n\\n@param `vN` The Nth value\\n\\n@param `map` The built map\\n\\n@param `mark` The mark indicating the deepest level to consider when building the map\\n\\n\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"UF\"},{\"name\":\"~\",\"detail\":\"~( param:LONG ): result:LONG\",\"documentation\":\"Computes the unary bitwise complement of the long value on top of the stack.\\n\\n@param `param` Value to compute\\n\\n@param `result` Bitwise result\\n\\n\",\"tags\":[\"operators\",\"binary\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"UV\"},{\"name\":\"~=\",\"detail\":\"~=( p2:NUMBER p1:NUMBER lambda:NUMBER ): result:BOOLEAN\",\"documentation\":\"The `~=` operator consumes three parameters from the top of the stack, two operands p1 and p2 and a tolerance factor lambda, \\nand pushes onto the stack true if *|p1-p2| < lambda*, i.e. the difference between the two operands is lesser than lambda.\\n\\nAll parameters must be of numeric types.\\n\\nThe operator `~=` is useful when making comparaisons between doubles, where floating point operations generate rounding errors.\\n\\n@param `p1` First number\\n\\n@param `p2` Second number\\n\\n@param `lambda` Tolerance factor lambda\\n\\n@param `result` \\n\\n\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"UYo\"}];\n}\n      ","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CancellationToken, editor, languages, Position, Thenable} from 'monaco-editor';\nimport {Flows} from '../../../model/refFLows';\nimport {W10CompletionItemProvider} from './W10CompletionItemProvider';\nimport {EditorUtils} from './editorUtils';\nimport snippets from '../../../model/snippets/snippets-flows.json';\nimport {Config} from '../../../model/config';\nimport CompletionList = languages.CompletionList;\nimport IReadOnlyModel = editor.IReadOnlyModel;\nimport CompletionContext = languages.CompletionContext;\n\nexport class FLoWSCompletionItemProvider extends W10CompletionItemProvider {\n\n  constructor(config: Config) {\n    super(EditorUtils.FLOWS_LANGUAGE, config);\n  }\n\n  transformKeyWord(keyword: string): string {\n    return `${keyword}()`;\n  }\n\n  // noinspection JSUnusedLocalSymbols\n  provideCompletionItems(model: IReadOnlyModel, position: Position, _context: CompletionContext, token: CancellationToken): Thenable<CompletionList> {\n    return super._provideCompletionItems(model, position, _context, token, Flows.reference, {...snippets, ...(this.config.snippets || {})});\n  }\n}\n","export interface IEntry { description?: string; signature?: string; tags?: string[], since?: string, OPB64name: string}\nexport interface IEntries { [name: string]: IEntry; }\nexport var globalfunctions: IEntries = {\"!\":{\"description\":\"Negates a boolean.\\n\\nThe `!` function is synonymous for [`NOT`](/doc/NOT). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nSince Warp 10™ 2.1, `!` can be applied on a boolean GTS to flip all values.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gtsinput` Since 2.1, a GTS with boolean value.\\n\\n@param `gtsresult` Since 2.1, a GTS with negated boolean value. GTS is not sorted by the operation. Metadata are kept.\\n\\n\",\"signature\":\"!( input:BOOLEAN ): result:BOOLEAN\\n!( gtsinput:GTS ): gtsresult:GTS\",\"tags\":[\"logic\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7F\"},\"!=\":{\"description\":\"Tests if both parameters are different.\\n\\nThe `!=` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are different, false otherwise.\\n\\nThe two parameters must be homogeneous of numeric, boolean or string types.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `!=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 !=` is strictly equivalent of a `42 mapper.ne` MAP operation, with a simplified syntax.\\n\\n@param `p1` First parameter to compare, anything except a GTS.\\n\\n@param `p2` Second parameter to compare, anything except a GTS.\\n\\n@param `result` True if p1 and p2 are different, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values different from constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is different from gts2 value.\\n\\n\",\"signature\":\"!=( p1:ANY p2:ANY ): result:BOOLEAN\\n!=( inputgts:GTS constant:ANY ): outgts:GTS\\n!=( constant:ANY inputgts:GTS ): outgts:GTS\\n!=( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"7Io\"},\"%\":{\"description\":\"The `%` operator consumes two parameters from the top of the stack and pushes back the remainder of the Euclidean division of the first one by the second one.\\n\\nThe two parameters must be of numeric types.\\n\\n@param `dividend` Number divided by divisor\\n\\n@param `divisor` Number used to divide dividend\\n\\n@param `modulo` Modulo of the two given parameters\\n\\n\",\"signature\":\"%( divisor:LONG dividend:LONG ): modulo:LONG\\n%( divisor:DOUBLE dividend:LONG ): modulo:DOUBLE\\n%( divisor:LONG dividend:DOUBLE ): modulo:DOUBLE\\n%( divisor:DOUBLE dividend:DOUBLE ): modulo:DOUBLE\\n%( divisor:COUNTER dividend:COUNTER ): modulo:LONG\\n%( divisor:DOUBLE dividend:COUNTER ): modulo:DOUBLE\\n%( divisor:COUNTER dividend:DOUBLE ): modulo:DOUBLE\\n%( divisor:LONG dividend:COUNTER ): modulo:LONG\\n%( divisor:COUNTER dividend:LONG ): modulo:LONG\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"8F\"},\"&\":{\"description\":\"Performs a bitwise **AND** operation.\\n\\nThe `&` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **AND**.\\n\\nSince Warp 10™ 2.1, `&` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be AND to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with AND between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts AND with mask\\n\\n\",\"signature\":\"&( p1:LONG p2:LONG ): result:LONG\\n&( inputgts:GTS mask:LONG ): maskedgts:GTS\\n&( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"8V\"},\"&&\":{\"description\":\"The `&&` operator is a synonymous for [`AND`](/doc/AND).\\n\\nIt performs a logical **&&** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `&&` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical && applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with && between each common tick input values.\\n\\n\",\"signature\":\"&&( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\n&&( l:LIST ): result:BOOLEAN\\n&&( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"8XN\"},\"(\":{\"description\":\"Starts a set creation.\\n\\nThe `(` function creates a set by pushing a mark onto the stack. This is a syntactic help to better present set constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"signature\":\"((): mark:MARK\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9.\"},\"()\":{\"description\":\"The `()` function creates an empty SET on the top of the stack.\\nA Set is a collection that cannot contain duplicate elements.\\n\\nThis is an implementation of java [HashSet](https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html). NULL object is permitted. It makes no guarantees as to the iteration order of the set.\\n\\nThe SET object could not be represented on the stack.\\nIt has to be converted in a list to be displayed.\\n\\nStoring GTS into sets do not guarantee uniqueness. each GTS has a hidden id. see example.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newset` set instance, initialized with content.\\n\\n\",\"signature\":\"()( content:ANY ): newset:SET\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"91Z\"},\")\":{\"description\":\"Closes a currently open set and pushes it onto the stack.\\n\\nThe `)` function pops from the stack the elements of the set up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `set` The built set\\n\\n@param `mark` The mark indicating the deepest level to consider when building the set\\n\\n\",\"signature\":\")( mark:MARK v1:ANY vN:ANY ): set:SET\",\"tags\":[\"sets\"],\"since\":\"1.2.13\",\"OPB64name\":\"9F\"},\"*\":{\"description\":\"The `*` operator consumes two parameters from the top of the stack and pushes back the result of multiplying both of them.\\n\\nIf you want to multiply two matrices together, they have to be of the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Multiplication result\\n\\n\",\"signature\":\"*( p1:NUMBER p2:NUMBER ): result:NUMBER\\n*( p1:VECTOR p2:NUMBER ): result:VECTOR\\n*( p1:NUMBER p2:VECTOR ): result:VECTOR\\n*( p1:MATRIX p2:NUMBER ): result:MATRIX\\n*( p1:NUMBER p2:MATRIX ): result:MATRIX\\n*( p1:MATRIX p2:VECTOR ): result:VECTOR\\n*( p1:VECTOR p2:MATRIX ): result:VECTOR\\n*( p1:MATRIX p2:MATRIX ): result:VECTOR\\n*( p2:GTS p1:GTS ): result:GTS\\n*( p2:GTS p1:NUMBER ): result:GTS\\n*( p2:NUMBER p1:GTS ): result:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"9V\"},\"**\":{\"description\":\"Returns the value of the first argument raised to the power of the second argument.\\n\\nThe `**` operator consumes two parameters from the top of the stack (a base **b** and an exponent **n**) and pushes back the result raising b to the power of n,\\ni.e. b<sup>n</sup>. For special cases see [pow()](https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#pow-double-double- \\\"javadoc\\\").\\n\\nSince 2.7.1, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nAlso since 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `b` First parameter, the base\\n\\n@param `n` Second parameter, the exponent\\n\\n@param `blist` List of bases\\n\\n@param `nlist` List of exponents\\n\\n@param `bgts` Numerical GTS of bases\\n\\n@param `ngts` Numerical GTS of exponents\\n\\n@param `result` The result of b<sup>n</sup>\\n\\n@param `outlist` List of b<sup>n</sup>\\n\\n@param `outgts` GTS of b<sup>n</sup>\\n\\n\",\"signature\":\"**( b:LONG n:LONG ): result:LONG\\n**( b:DOUBLE n:LONG ): result:DOUBLE\\n**( b:LONG n:DOUBLE ): result:DOUBLE\\n**( b:DOUBLE n:DOUBLE ): result:DOUBLE\\n**( b:COUNTER n:COUNTER ): result:LONG\\n**( b:DOUBLE n:COUNTER ): result:DOUBLE\\n**( b:COUNTER n:DOUBLE ): result:DOUBLE\\n**( b:COUNTER n:LONG ): result:LONG\\n**( b:LONG n:COUNTER ): result:LONG\\n**( bgts:GTS n:NUMBER ): outgts:GTS\\n**( b:NUMBER ngts:GTS ): outgts:GTS\\n**( bgts:GTS ngts:GTS ): outgts:GTS\\n**( blist:LIST n:NUMBER ): outlist:LIST\\n**( b:NUMBER nlist:LIST ): outlist:LIST\\n**( bgts:GTS n:NUMBER ): outgts:GTS\\n**( b:NUMBER ngts:GTS ): outgts:GTS\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9Xc\"},\"+\":{\"description\":\"The `+` operator consumes two parameters from the top of the stack and pushes back the result of adding them.\\n\\nThe meaning of adding depends on the type of parameter:\\n\\n- If both parameters are numbers, the result is the sum of both numbers.\\n\\n- If both parameters are strings, the result is the concatenation of both strings.\\n- If both parameters are byte arrays, the result is the concatenation of both byte arrays (version 2.1+).\\n\\n- If the first parameter is a list, the + operator clones the list and appends the second parameter to the cloned list.\\n\\n- If the first parameter is a set, the + operator clones the set and appends the second parameter to the cloned set.\\n\\n- If both parameters are macros, the result is a macro concatenating the two others in any other case + with throw an exception.\\n\\n- If the first parameter is a vector, the + operator adds the second numeric parameter to each element of the vector.\\n- If the second parameter is a vector, the + operator adds the first numeric parameter to each element of the vector.\\n- If both parameters are vectors, the + operator adds each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If the first parameter is a matrix, the + operator adds the second numeric parameter to each element of the matrix.\\n- If the second parameter is a matrix, the + operator adds the first numeric parameter to each element of the matrix.\\n- If both parameters are matrices, the + operator adds each element of matrices which are on the same index. Matrices must be the same size.\\n- If one of the parameters is a Geo Time Series™, the result will be a Geo Time Series™ of type DOUBLE.\\n\\n@param `param1` First parameter\\n\\n@param `param2` Second parameter\\n\\n@param `result` Result of the addition\\n\\n\",\"signature\":\"+( param1:STRING param2:STRING ): result:STRING\\n+( param1:LONG param2:LONG ): result:LONG\\n+( param1:DOUBLE param2:LONG ): result:DOUBLE\\n+( param1:COUNTER param2:LONG ): result:LONG\\n+( param1:LONG param2:DOUBLE ): result:DOUBLE\\n+( param1:DOUBLE param2:DOUBLE ): result:DOUBLE\\n+( param1:COUNTER param2:DOUBLE ): result:DOUBLE\\n+( param1:COUNTER param2:COUNTER ): result:LONG\\n+( param1:DOUBLE param2:COUNTER ): result:DOUBLE\\n+( param1:LONG param2:COUNTER ): result:LONG\\n+( param1:LIST param2:ANY ): result:LIST\\n+( param1:SET param2:ANY ): result:SET\\n+( param1:VECTOR param2:NUMBER ): result:VECTOR\\n+( param1:NUMBER param2:VECTOR ): result:VECTOR\\n+( param1:VECTOR param2:VECTOR ): result:VECTOR\\n+( param1:MACRO param2:MACRO ): result:MACRO\\n+( param1:MATRIX param2:NUMBER ): result:MATRIX\\n+( param1:NUMBER param2:MATRIX ): result:MATRIX\\n+( param1:MATRIX param2:MATRIX ): result:MATRIX\\n+( param2:GTS param1:GTS ): result:GTS\\n+( param2:GTS param1:DOUBLE ): result:GTS\\n+( param2:GTS param1:LONG ): result:GTS\\n+( param2:GTS param1:STRING ): result:GTS\\n+( param2:DOUBLE param1:GTS ): result:GTS\\n+( param2:LONG param1:GTS ): result:GTS\\n+( param2:STRING param1:GTS ): result:GTS\\n+( param1:BYTES param2:BYTES ): result:BYTES\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"9k\"},\"+!\":{\"description\":\"The +! operator adds the element on top of the stack to the set or list below it. \\nThe element is added to the existing collection. \\n\\n\\n@param `input` reference to the list or set to be modified\\n\\n@param `output` copy of input list or set reference.\\n\\n@param `item` the item to append to inputlist. Depending on list content, could be any type.\\n\\n\",\"signature\":\"+!( input:LIST item:ANY ): output:LIST\\n+!( input:SET item:ANY ): output:SET\",\"tags\":[\"lists\",\"operators\"],\"since\":\"1.2.0\",\"OPB64name\":\"9m3\"},\"-\":{\"description\":\"Subtracts two parameters.\\n\\nThe `-` operator consumes two parameters from the top of the stack and pushes back the result of subtracting the second one from the first one.\\n\\n- If both parameters are numbers, the result is the subtraction of both numbers.\\n\\n- If both parameters are vectors, the - operator subtracts each element of vectors which are on the same index. Vectors must be the same size.\\n\\n- If both parameters are matrices, the - operator subtracts each element of matrices which are on the same index. Matrices must be the same size.\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` Subtraction result\\n\\n\",\"signature\":\"-( p1:LONG p2:LONG ): result:LONG\\n-( p1:LONG p2:DOUBLE ): result:DOUBLE\\n-( p1:DOUBLE p2:LONG ): result:DOUBLE\\n-( p1:DOUBLE p2:DOUBLE ): result:DOUBLE\\n-( p1:COUNTER p2:COUNTER ): result:LONG\\n-( p1:COUNTER p2:DOUBLE ): result:DOUBLE\\n-( p1:DOUBLE p2:COUNTER ): result:DOUBLE\\n-( p1:LONG p2:COUNTER ): result:LONG\\n-( p1:COUNTER p2:LONG ): result:LONG\\n-( p1:MATRIX p2:MATRIX ): result:MATRIX\\n-( p1:VECTOR p2:VECTOR ): result:VECTOR\\n-( p2:GTS p1:GTS ): result:GTS\\n-( p2:GTS p1:NUMBER ): result:GTS\\n-( p2:NUMBER p1:GTS ): result:GTS\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"AF\"},\"->B58\":{\"description\":\"Encodes the string on top of the stack in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58 encoded string\\n\\n\",\"signature\":\"->B58( input:STRING ): result:STRING\\n->B58( input:BYTES ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIV\"},\"->B58C\":{\"description\":\"Encodes the string on top of the stack in [Base58Check](https://en.bitcoin.it/wiki/Base58Check_encoding).\\n\\n@param `prefix` Prefix to use for Base58Check encoding\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base58Check encoded string\\n\\n\",\"signature\":\"->B58C( input:STRING prefix:BYTES ): result:STRING\\n->B58C( input:BYTES prefix:BYTES ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"AIt1CIW2\"},\"->B64\":{\"description\":\"Encodes the string on top of the stack in [base64](https://en.wikipedia.org/wiki/Base64).\\n\\n@param `input` String or byte array to encode\\n\\n@param `result` Base64 encoded string\\n\\n\",\"signature\":\"->B64( input:STRING ): result:STRING\\n->B64( input:BYTES ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYF\"},\"->B64URL\":{\"description\":\"Encodes the string on top of the stack in [base64url](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).\\n\\n@param `input` String to encode\\n\\n@param `bytes` Byte array to encode\\n\\n@param `result` Base64url encoded string\\n\\n\",\"signature\":\"->B64URL( input:STRING ): result:STRING\\n->B64URL( bytes:BYTES ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt1CYGKJZk\"},\"->BIN\":{\"description\":\"The ->BIN function converts the byte array or the string on top of the stack \\nto its binary representation.\\n\\nSince the 2.8.0 version, it also converts a **LONG** to its 64 bits binary representation. Thus, this function and [TOBIN](/doc/TOBIN) are equivalent.\\n\\nApplied on a string, `->BIN` replaces ` 'utf-8' ->BYTES ->BIN `\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that. \\n\\n@param `input` Any string or byte array.\\n\\n@param `output` Binary representation of the input.\\n\\n\",\"signature\":\"->BIN( input:STRING ): output:STRING\\n->BIN( input:BYTES ): output:STRING\\n->BIN( input:LONG ): output:STRING\\n->BIN( input:BITSET ): output:STRING\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1HJs\"},\"->BYTES\":{\"description\":\"->BYTES function converts a string into a bytes array given a charset\\nand put the result on top of the stack.\\n\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\nBytes array cannot be represented on the stack.\\n\\n\\n@param `input` String input.\\n\\n@param `charset` Charset to use.\\n\\n@param `output` Byte array representation of input.\\n\\n\",\"signature\":\"->BYTES( input:STRING charset:STRING ): output:BYTES\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AIt1LKG4Jk\"},\"->DOUBLEBITS\":{\"description\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"signature\":\"->DOUBLEBITS( number:NUMBER ): bits:LONG\\n->DOUBLEBITS( gts:GTS ): longgts:GTS\",\"tags\":[\"math\",\"gts\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt3IpK1I3K1HKGI\"},\"->ENCODER\":{\"description\":\"The `->ENCODER` function takes a list of points and encode them in a single encoder. Each point is a list of ( timestamp, latitude, longitude, elevation, value ). Since 2.1.1, a point can also be a Geo Time Series™ or a wrapped one. In that case all the points of the Geo Time Series™ are added to the encoder.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `elements` List of list of ( timestamp, latitude, longitude, elevation, value ). See example to see which element(s) can be omitted.\\n\\n@param `lgts` A list of Geo Time Series™ instances.\\n\\n@param `lwrappedgts` A list of wrapped Geo Time Series™ instances, such as produced by [`WRAP`](/doc/WRAP).\\n\\n@param `lrawwrappedgts` A list of raw wrapped Geo Time Series™ instances, such as produced by [`WRAPRAW`](/doc/WRAPRAW).\\n\\n@param `output` Encoder\\n\\n\",\"signature\":\"->ENCODER( elements:LIST ): output:GTSENCODER\\n->ENCODER( lgts:LIST<GTS> ): output:GTSENCODER\\n->ENCODER( lwrappedgts:LIST<STRING> ): output:GTSENCODER\\n->ENCODER( lrawwrappedgts:LIST<BYTES> ): output:GTSENCODER\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt4IZCEG3KH\"},\"->ENCODERS\":{\"description\":\"The `->ENCODERS` function converts an encoder into one encoder per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content, when a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder.\\n\\n\",\"signature\":\"->ENCODERS( encoder:GTSENCODER ): output:MAP\\n->ENCODERS( wrappedencoder:STRING ): output:MAP\\n->ENCODERS( rawwrappedencoder:BYTES ): output:MAP\",\"tags\":[\"gts\",\"encoder\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AIt4IZCEG3KHJk\"},\"->FLOATBITS\":{\"description\":\"Converts a numeric value to a **FLOAT** then to a **LONG** value of the raw bits of its representation.\\n\\nOnly the lower 32 bits of the **LONG** value are significant.\\n\\n@param `input` Double to convert\\n\\n@param `result` Raw bits representation\\n\\n\",\"signature\":\"->FLOATBITS( input:NUMBER ): result:LONG\",\"tags\":[\"math\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"AIt5I3x0K388K4B\"},\"->GEOCELL\":{\"description\":\"The `->GEOCELL` function converts a **STRING** or a **BYTES** HHCode prefix to a **LONG** geocell. The length of the input implicitly specifies the resolution of the cell.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `hhPrefixS` A HHCode prefix representing a cell. Resolution is twice the length of the **STRING**.\\n\\n@param `hhPrefixB` A HHCode prefix representing a cell. Resolution is four times the length of the **BYTES**.\\n\\n@param `geocell` The geocell representation.\\n\\n\",\"signature\":\"->GEOCELL( hhPrefixS:STRING ): geocell:LONG\\n->GEOCELL( hhPrefixB:BYTES ): geocell:LONG\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJx2GJlB\"},\"->GEOHASH\":{\"description\":\"The `->GEOHASH` function packs a latitude and a longitude into a STRING [Geohash](https://en.wikipedia.org/wiki/Geohash), converts a [HHCode](https://en.wikipedia.org/wiki/HHCode) into its Geohash counterpart, or converts a `GEOSHAPE` into a list of Geohashes covering the same geographical area.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `geohash` Geohash string packing the specified latitude and longitude.\\n\\n@param `hhcode` HHCode to transform.\\n\\n@param `shape` `GEOSHAPE` to convert.\\n\\n@param `geohashes` List of Geohashes covering the same area as `shape`.\\n\\n\",\"signature\":\"->GEOHASH( lat:DOUBLE lon:DOUBLE ): geohash:STRING\\n->GEOHASH( hhcode:LONG ): geohash:STRING\\n->GEOHASH( shape:GEOSHAPE ): geohashes:LIST<STRING>\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt6GJx7FKC7\"},\"->GEOJSON\":{\"description\":\"The `->WKB` function converts a WKT **STRING**, WKB **BYTES**, a GML **STRING, a KML **STRING** or a **SHAPE** to a GeoJSON **STRING**.\\n\\nThe resulting GeoJSON is a string representing a MultiPolygon geometry. By default, it defines the boundaries of the covered areas and any holes it these areas, if any.\\n\\nIt is also possible for this function to return a GeoJSON representing all the cells in the GeoShape.\\n\\n GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson` The resulting GeoJSON.\\n\\n@param `wkt_kml_gml` A WKT, KML or GML string\\n\\n@param `wkb` WKB bytes\\n\\n\",\"signature\":\"->GEOJSON( shape:GEOSHAPE ): geojson:STRING\\n->GEOJSON( shape:GEOSHAPE allCells:BOOLEAN ): geojson:STRING\\n->GEOJSON( wkt_kml_gml:STRING ): geojson:STRING\\n->GEOJSON( wkb:BYTES ): geojson:STRING\",\"tags\":[\"geo\"],\"since\":\"2.4.1\",\"OPB64name\":\"AIt6GJx9JoxD\"},\"->GEOSHAPE\":{\"description\":\"The `->GEOSHAPE` function converts a list of **LONG** geocells or HHCode prefixes (**STRING** or **BYTES**) to a **GEOSHAPE**.\\n\\n@param `geocells` List of geocells, as **LONGs**.\\n\\n@param `hhPrefixesS` List of HHCode prefixes, as **STRINGs**.\\n\\n@param `hhPrefixesB` List of HHCode prefixes, as **BYTESs**.\\n\\n@param `geoshape` The resulting **GEOSHAPE**.\\n\\n\",\"signature\":\"->GEOSHAPE( geocells:LIST<LONG> ): geoshape:GEOSHAPE\\n->GEOSHAPE( hhPrefixesS:LIST<STRING> ): geoshape:GEOSHAPE\\n->GEOSHAPE( hhPrefixesB:LIST<BYTES> ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"AIt6GJxIH34FGF\"},\"->GML\":{\"description\":\"The `->GML` function converts a GeoJSON **STRING**, a WKT **STRING**, WKB **BYTES**, a KML **STRING** or a **SHAPE** to a GML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml` A GeoJSON, WKT or KML string.\\n\\n@param `gml` The resulting GML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"signature\":\"->GML( shape:GEOSHAPE ): gml:STRING\\n->GML( shape:GEOSHAPE allCells:BOOLEAN ): gml:STRING\\n->GML( geojson_wkt_kml:STRING ): gml:STRING\\n->GML( wkb:BYTES ): gml:STRING\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AIt6IJk\"},\"->GTS\":{\"description\":\"The `->GTS` function converts an encoder into one GTS per type in the encoder. The result is a map, with key describing the type. If defined, name, labels and attributes are kept in the result.\\nFunction also accepts wrapped or raw-wrapped encoders.\\n\\n###### Since 2.4.0:\\n- `->GTS` function can also take a conversion MAP input. Using this conversion MAP, the output is always a list of GTS.\\n- The conversion map can also take a list of selectors for each output type.\\n- The conversion map can be empty: In this case, the GTS type is enforced by the type of the first element in the encoder input.\\n- The first selector match stops the research. It means key order matters. See Examples.\\n- A new '.type' label is added to each output GTS. This could be overridden with the 'label.type' parameter of the conversion MAP.\\n- `->GTS` function can handle encoders, or list of encoders.\\n\\n###### What is an encoder ?\\nA Geo Time Series™ is limited to the type of the first value stored.\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) and since 2.1 also BINARY content.\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedencoder` Encoder after WRAP.\\n\\n@param `rawwrappedencoder` Encoder after WRAPRAW.\\n\\n@param `output` Map with a key/value per type encountered in the input encoder. Values are GTS.\\n\\n@param `lencoder` List of encoders input (supported since 2.4.0).\\n\\n@param `lwrappedencoder` List of encoders after WRAP (supported since 2.4.0).\\n\\n@param `lrawwrappedencoder` List of encoders after WRAPRAW (supported since 2.4.0).\\n\\n@param `loutput` Map with a key/value per type encountered in the input encoder. Values are a list of GTS.\\n\\n@param `conversionmap` Map with type as keys, selectors or list of selectors as values. The special key `label.type` allow to change the default `.type` label. Set `label.type` to NULL to avoid any new label. The conversion map could be empty.\\n\\n@param `conversionoutput` A GTS, or a list of GTS.\\n\\n\",\"signature\":\"->GTS( encoder:GTSENCODER ): output:MAP\\n->GTS( wrappedencoder:STRING ): output:MAP\\n->GTS( rawwrappedencoder:BYTES ): output:MAP\\n->GTS( lencoder:LIST<GTSENCODER> ): loutput:MAP\\n->GTS( lwrappedencoder:LIST<STRING> ): loutput:MAP\\n->GTS( lrawwrappedencoder:LIST<BYTES> ): loutput:MAP\\n->GTS( encoder:GTSENCODER conversionmap:MAP ): conversionoutput:GTS\\n->GTS( wrappedencoder:STRING conversionmap:MAP ): conversionoutput:GTS\\n->GTS( rawwrappedencoder:BYTES conversionmap:MAP ): conversionoutput:GTS\\n->GTS( lencoder:LIST<GTSENCODER> conversionmap:MAP ): conversionoutput:LIST<GTS>\\n->GTS( lwrappedencoder:LIST<STRING> conversionmap:MAP ): conversionoutput:LIST<GTS>\\n->GTS( lrawwrappedencoder:LIST<BYTES> conversionmap:MAP ): conversionoutput:LIST<GTS>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"AIt6K4B\"},\"->GTSHHCODE\":{\"description\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"signature\":\"->GTSHHCODE( lat:NUMBER lon:NUMBER ): hhcode:STRING\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3J\"},\"->GTSHHCODELONG\":{\"description\":\"The `->GTSHHCODE` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode). This function is very similar to [`->HHCODE`](/doc/AIt7H3CEG3J) except that when given `NaN NaN` it pushes back the internal value used by Geo Time Series™ for a missing location.\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"signature\":\"->GTSHHCODELONG( lat:NUMBER lon:NUMBER ): hhcode:STRING\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"AIt6K4C7H3CEG3KBIot6\"},\"->HEX\":{\"description\":\"The `->HEX` function decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV).\\n\\nApplied on a string, `->HEX` replaces `'utf-8' ->BYTES ->HEX`\\n\\nSince 2.8.0 this function also converts a long to its 64 bits hexadecimal representation. Thus this function is equivalent to [TOHEX](/doc/TOHEX).\\n\\nIf the encoded content is not a valid UTF-8 representation, the resulting string will reflect that.\\n\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Decoded string of input, assuming utf-8 encoding of input.\\n\\n\",\"signature\":\"->HEX( input:STRING ): output:STRING\\n->HEX( input:BYTES ): output:STRING\\n->HEX( input:LONG ): output:STRING\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt7GKV\"},\"->HHCODE\":{\"description\":\"The `->HHCODE` function packs a latitude and a longitude into a STRING [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a string of 16 hexadecimal digits.\\n\\n\",\"signature\":\"->HHCODE( lat:NUMBER lon:NUMBER ): hhcode:STRING\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"AIt7H3CEG3J\"},\"->HHCODELONG\":{\"description\":\"The `->HHCODELONG` function packs a latitude and a longitude into a LONG [HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\nThe packed HHCode uses 32 bits for each the latitude and longitude.\\n\\n@param `lon` Longitude to pack.\\n\\n@param `lat` Latitude to pack.\\n\\n@param `hhcode` Resulting HHCode, as a 64 bits LONG.\\n\\n\",\"signature\":\"->HHCODELONG( lat:NUMBER lon:NUMBER ): hhcode:LONG\",\"tags\":[\"geo\"],\"since\":\"1.2.5\",\"OPB64name\":\"AIt7H3CEG3KBIot6\"},\"->JSON\":{\"description\":\"The `->JSON` functions serialize structures containing numbers, strings, booleans, lists, vlists and maps which do not reference the same list/map multiple times.\\n\\n@param `object` Object to serialize\\n\\n@param `output` JSON formatted string\\n\\n\",\"signature\":\"->JSON( object:ANY ): output:STRING\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AIt9JoxD\"},\"->KML\":{\"description\":\"The `->KML` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, WKB **BYTES** or a **SHAPE** to a KML **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_gml` A GeoJSON, WKT or GML string.\\n\\n@param `kml` The resulting KML.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"signature\":\"->KML( shape:GEOSHAPE ): kml:STRING\\n->KML( shape:GEOSHAPE allCells:BOOLEAN ): kml:STRING\\n->KML( geojson_wkt_gml:STRING ): kml:STRING\\n->KML( wkb:BYTES ): kml:STRING\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.9.0\",\"OPB64name\":\"AItAIJk\"},\"->LIST\":{\"description\":\"The `->LIST` function create a list from N elements on the stack.\\nN and the N next elements on the stack are consumed.\\n\\nIf N is greater than current stack depth, the function raises an error.\\n\\n@param `N` The number of elements to take on the top of the stack to build the list.\\n\\n@param `newlist` The list of N elements. [deepest in stack ... TOP-1 ]\\n\\n@param `content` 0 to n elements\\n\\n\",\"signature\":\"->LIST( content:ANY* N:LONG ): newlist:LIST\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItBHKCJ\"},\"->LONGBYTES\":{\"description\":\"`->LONGBYTES` converts a LONG to a byte array. It expects a number of bytes on the top of the stack.\\n\\nSince Warp 10™ 2.1, `->LONGBYTES` can also convert a list of LONG.\\n\\n@param `nbbytes` Number of bytes for number conversion: nbbytes could be 1 to 8. If less than 8, most significant bytes will be truncated.\\n\\n@param `number` must be a LONG\\n\\n@param `output` byte array, from 1 to 8 bytes per number\\n\\n@param `numberList` Since Warp 10 2.1, a list of LONG\\n\\n\",\"signature\":\"->LONGBYTES( number:LONG nbbytes:LONG ): output:BYTES\\n->LONGBYTES( numberList:LIST<LONG> nbbytes:LONG ): output:BYTES\",\"tags\":[\"binary\",\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItBIot6F__JGKB\"},\"->MACRO\":{\"description\":\"The `->MACRO->` creates a `MACRO` from a `LIST` of statements such as the ones created by `MACRO->`.\\n\\n@param `macro` `MACRO` containing the statements from `statements`.\\n\\n@param `statements` List of statements.\\n\\n\",\"signature\":\"->MACRO( statements:LIST ): macro:MACRO\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItCFJCHIk\"},\"->MAP\":{\"description\":\"The ->MAP function creates a MAP from an even number N of elements on the stack. \\nN is consumed off the top of the stack. For each pair, the deepest element is the key, the shallowest is the value.\\n\\n\\n@param `content` 0 to n pairs of key-value elements. Keys must be different.\\n\\n@param `N` Number of content elements to consume on the stack. It must be even.\\n\\n@param `newmap` map instance, initialized with content.\\n\\n\",\"signature\":\"->MAP( content:ANY* N:LONG ): newmap:MAP\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItCFK.\"},\"->MAT\":{\"description\":\"The `->MAT` function converts nested lists of numbers (2D array with same number of columns) into a Matrix.\\n\\nMATRIX objects cannot be represented on the stack. \\n\\nMatrix entries must be numbers.\\n\\n\\n@param `input` List of lists of values\\n\\n@param `result` A MATRIX object\\n\\n\",\"signature\":\"->MAT( [ input:LIST ] ): result:MATRIX\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItCFKF\"},\"->MVSTRING\":{\"description\":\"The `->MVSTRING` function generates a STRING representation of an ENCODER in the format expected by the `/update` endpoint for multi values.\\n\\nWhen encountering a binary element, the function attempts to interpret it as a wrapped encoder, if that fails then it will output the element as a binary (`b64:...`) value.\\n\\n@param `input` Wrapped or unwrapped Geo Time Series™ or ENCODER.\\n\\n@param `mvstring` MultiValue format representation of the wrapped encoder/GTS.\\n\\n\",\"signature\":\"->MVSTRING( input:STRING ): mvstring:STRING\\n->MVSTRING( input:BYTES ): mvstring:STRING\\n->MVSTRING( input:GTS ): mvstring:STRING\\n->MVSTRING( input:GTSENCODER ): mvstring:STRING\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"AItCK_CJJZ_DGk\"},\"->OPB64\":{\"description\":\"Encode a String in order preserving base64. OPB64 is a Base64 like encoding which preserves the lexicographic order of\\nthe original byte arrays in the encoded ones. This is useful to compare encoded byte arrays without having to first decode them.\\n\\n@param `input` Could be a string or a byte array.\\n\\n@param `output` OPB64 of input.\\n\\n\",\"signature\":\"->OPB64( input:STRING ): output:STRING\\n->OPB64( input:BYTES ): output:STRING\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItEJ37qC.\"},\"->PICKLE\":{\"description\":\"The `->PICKLE` function converts the object on top of the stack to a Python object and serializes it using Pickle protocol version 2.\\nThe conversion table used is as follow:\\n\\n| WarpScript | Python |\\n|------------|--------|\\n| NULL | None |\\n| BOOLEAN | bool |\\n| BYTES | bytearray |\\n| STRING | str/unicode |\\n| DOUBLE | float |\\n| LONG | int |\\n| LIST | list |\\n| MAP | dict |\\n| SET | set |\\n| GTS | dict |\\n| ENCODER | dict |\\n\\nOther types are unsupported.\\n\\nPython examples with `->PICKLE ->HEX` output:\\n\\n**Python2**\\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle\\n>>> pickle.loads(s.decode(\\\"hex\\\"))\\n[u'PICKLE', u'STRING', [5, 3.141592653589793]]\\n```\\n**Python3** \\n```python\\n>>> s=\\\"80025d71002858060000005049434b4c4571015806000000535452494e4771025d7103284b0547400921fb54442d1865652e\\\"\\n>>> import pickle, codecs\\n>>> pickle.loads(codecs.decode(s, \\\"hex\\\"))\\n['PICKLE', 'STRING', [5, 3.141592653589793]]\\n```\\n\\n@param `input` A serializable object\\n\\n@param `output` Pickle encoded content\\n\\n\",\"signature\":\"->PICKLE( input:ANY ): output:BYTES\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"AItFHJCAI3J\"},\"->Q\":{\"description\":\"The `->Q` function consumes on the stack 4 doubles (w, x, y, z, with z being on top) representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion)\\nand push back quaternion representation into a **LONG**.\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `result` Quaternion representation\\n\\n\",\"signature\":\"->Q( w:DOUBLE x:DOUBLE y:DOUBLE z:DOUBLE ): result:LONG\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItG\"},\"->RLP\":{\"description\":\"The `->RLP` function converts an individual `LONG`, `STRING` or `BYTES` element or a list of elements (including lists) into a byte array using the [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoding.\\n\\n@param `str` `STRING` to encode. It will first be converted to `BYTES` using the `UTF-8` character set.\\n\\n@param `bytes` Byte array to encode.\\n\\n@param `long` `LONG` value to encode.\\n\\n@param `list` `LIST` to encode.\\n\\n@param `encoded` Result of encoding.\\n\\n\",\"signature\":\"->RLP( str:STRING ): encoded:BYTES\\n->RLP( bytes:BYTES ): encoded:BYTES\\n->RLP( long:LONG ): encoded:BYTES\\n->RLP( list:LIST ): encoded:BYTES\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"AItHI4.\"},\"->SET\":{\"description\":\"The -`>SET` function converts a **LIST** on top of the stack into a **SET**.\\n\\nSETs are not viewable, null will be return if it remains on the stack.\\n\\nThe order in the SET is not guaranteed, see [`()`](/doc/91Z).\\n\\n\\n@param `input` The input list\\n\\n@param `newset` The new set reference. SETs are not viewable, null remains on the stack.\\n\\n\",\"signature\":\"->SET( input:LIST ): newset:SET\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"AItIGKF\"},\"->SSSS\":{\"description\":\"The `->SSSS` function splits a byte array into `N` shares so `K` of them can reconstruct the original byte array.\\n\\nThe splitting is done using a Shamir Secret Sharing Scheme as described in the [seminal paper](http://web.mit.edu/6.857/OldStuff/Fall03/ref/Shamir-HowToShareASecret.pdf) by [Adi Shamir](https://en.wikipedia.org/wiki/Adi_Shamir).\\n\\nThe principle is based on the fact that a polynomial `P` of degree `K-1` can be fully determined by `K` points (`X`,`Y`), where `Y = P(X)`. All computations are performed using arithmetic in the [Galois Field](https://en.wikipedia.org/wiki/Finite_field) [`GF(256)`](https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Finite_field_arithmetic) used for [QR/Code]() Reed Solomon error correction, its generator is `2` and its primitive polynomial `0x11D` (`x^8 + x^4 + x^3 + x^2 + 1`).\\n\\nFor each byte `B` to encode, a random polynomial `P` over `GF(256)` is chosen with the constraint that `P(0) = B`. Then `N` random values of `GF(256)` are selected and for each `X` such value, the two bytes `X` and `P(X)` are output to a share. If `X` was 0, a random value is emitted instead of `P(X)` and a new `X` value is selected. This is done to ensure the randomness of the output. It may therefore be possible that a split is longer than twice the size of the original input.\\n\\n@param `secret` Secret to split.\\n\\n@param `N` Number of splits to generated, minimum is 2, maximum is 255.\\n\\n@param `K` Number of splits needed to reconstruct `secret`, must be less or equal to `N`.\\n\\n@param `randomness` Flag indicating whether or not the byte pairs starting with `0x00` should be retained (`true`) or stripped (`false`). This parameter is optional.\\n\\n@param `splits` List of generated splits.\\n\\n\",\"signature\":\"->SSSS( secret:BYTES N:LONG K:LONG randomness:BOOLEAN ): splits:LIST<BYTES>\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"AItIJpCI\"},\"->TSELEMENTS\":{\"description\":\"The `->TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"signature\":\"->TSELEMENTS( timestamp:LONG ): dateAndTimeElements:LIST<LONG>\\n->TSELEMENTS( timestamp:LONG timezone:STRING ): dateAndTimeElements:LIST<LONG>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"AItJJoKBGJp4I_GI\"},\"->V\":{\"description\":\"The `->V` function converts a list of objects into a Pig Vector (VLIST).\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `list` Input list\\n\\n@param `set` Input set\\n\\n@param `result` Result list\\n\\n\",\"signature\":\"->V( list:LIST ): result:VLIST\\n->V( set:SET ): result:VLIST\",\"tags\":[\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"AItL\"},\"->VARINT\":{\"description\":\"The `->VARINT` function encodes a `LONG` or a list of `LONG`s using [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoding. The result is a byte array containing the concatenation of the encoded numbers.\\n\\nThe `->VARINT` function is optimized for encoding unsigned `LONG`s, this means that negative numbers (with the most significant bit set to 1) will be encoded on 10 bytes. In order to reduce this footprint you can pre-process the numbers to encode so they are encoded using [ZigZag VarInt](https://developers.google.com/protocol-buffers/docs/encoding#types) encoding. The simple trick is to compute\\n\\n```\\n$value 1 << $value 63 >> ^\\n```\\n\\nthis will have the effect of alternatively encoding positive and negative numbers thus leading to a more efficient footprint for negative numbers.\\n\\nAt decoding time using `VARINT->`, simply undo the *Zig-Zag* trick:\\n\\n```\\n$unsigned 63 << 63 >> $unsigned ^ 1 >>\\n// Flip the top bit\\n$unsigned 1 63 << & ^\\n```\\n\\n@param `number` Single number to encode.\\n\\n@param `numbers` List of numbers to encode.\\n\\n@param `encoded` Byte array containing the encoded number(s).\\n\\n\",\"signature\":\"->VARINT( number:LONG ): encoded:BYTES\\n->VARINT( numbers:LIST<LONG> ): encoded:BYTES\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"AItLFK88I_F\"},\"->VEC\":{\"description\":\"The `->VEC` function converts a list of numbers into a Vector.\\n\\nVectors objects cannot be represented on the stack. \\n\\nVectors entries must be numbers.\\n\\n@param `list` List to convert\\n\\n@param `matrix` Matrix with a single column\\n\\n@param `result` Vector\\n\\n\",\"signature\":\"->VEC( list:LIST ): result:VECTOR\\n->VEC( matrix:MATRIX ): result:VECTOR\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItLGJB\"},\"->WKB\":{\"description\":\"The `->WKB` function converts a GeoJSON **STRING**, a WKT **STRING**, a GML **STRING, a KML **STRING** or a **SHAPE** to WKB **BYTES**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_wkt_kml_gml` A GeoJSON, WKT, KML or GML string.\\n\\n@param `wkb` The resulting WKB.\\n\\n\",\"signature\":\"->WKB( shape:GEOSHAPE ): wkb:BYTES\\n->WKB( shape:GEOSHAPE allCells:BOOLEAN ): wkb:BYTES\\n->WKB( geojson_wkt_kml_gml:STRING ): wkb:BYTES\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHo7\"},\"->WKT\":{\"description\":\"The `->WKT` function converts a GeoJSON **STRING**, WKB **BYTES**, a KML **STRING**, a GML **STRING** or a **SHAPE** to a WKT **STRING**.\\n\\nThis function accepts an optional boolean on top of the **SHAPE** to choose whether all cells are outputted or not. Defaults to false.\\n\\n@param `shape` The GeoShape to be translated.\\n\\n@param `allCells` Optional parameter specifying if all the cells (true) or only the boundaries of the overall shape (false) must be represented in the GeoJSON. Defaults to false.\\n\\n@param `geojson_kml_gml` A GeoJSON, KML or GML string.\\n\\n@param `wkt` The resulting WKT.\\n\\n@param `wkb` WKB bytes.\\n\\n\",\"signature\":\"->WKT( shape:GEOSHAPE ): wkt:STRING\\n->WKT( shape:GEOSHAPE allCells:BOOLEAN ): wkt:STRING\\n->WKT( geojson_kml_gml:STRING ): wkt:STRING\\n->WKT( wkb:BYTES ): wkt:STRING\",\"tags\":[\"geo\",\"conversion\"],\"since\":\"2.7.0\",\"OPB64name\":\"AItMHpF\"},\"->Z\":{\"description\":\"The `->Z` function packs multiple **LONG** arguments into a byte array by interleaving the bits of the arguments. This produces a \\n[Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) value encoding the original arguments. The value might be right padded with bits set to 0 to reach a multiple of 8 bits.\\n\\n@param `bitwidth` Number of bits to consider for each LONG in 'longs', from 1 to 63.\\n\\n@param `longs` List of LONGs to pack. Each LONG *MUST* be positive, i.e. with bit 63 set to 0.\\n\\n@param `z` Byte array containing the packed values.\\n\\n\",\"signature\":\"->Z( longs:LIST<LONG> bitwidth:LONG ): z:BYTES\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"AItP\"},\"/\":{\"description\":\"The `/` operator consumes two parameters from the top of the stack and pushes back the result of dividing the first one by the second one.\\n\\nYou can't devide by zero.\\n\\nThe two parameters must be of numeric types, or Geo Time Series™, or a mix of the two.\\n\\n@param `long` Numeric integer\\n\\n@param `long-result` Numeric floor-rounded integer\\n\\n@param `double` Numeric floating point number\\n\\n@param `double-result` Numeric floating point number\\n\\n@param `counter` Numeric counter\\n\\n@param `param1` First parameter of the division.\\n\\n@param `param2` Second parameter of the division.\\n\\n@param `result` Resulting GTS, of type DOUBLE.\\n\\n\",\"signature\":\"/( long:LONG long:LONG ): long-result:LONG\\n/( double:DOUBLE long:LONG ): double-result:DOUBLE\\n/( long:LONG double:DOUBLE ): double-result:DOUBLE\\n/( double:DOUBLE double:DOUBLE ): double-result:DOUBLE\\n/( counter:COUNTER counter:COUNTER ): long-result:LONG\\n/( double:DOUBLE counter:COUNTER ): long-result:DOUBLE\\n/( counter:COUNTER double:DOUBLE ): long-result:DOUBLE\\n/( counter:COUNTER long:LONG ): long-result:LONG\\n/( long:LONG counter:COUNTER ): long-result:LONG\\n/( double:VECTOR double:NUMBER ): double-result:VECTOR\\n/( param2:GTS param1:GTS ): result:GTS\\n/( param2:GTS param1:NUMBER ): result:GTS\\n/( param2:NUMBER param1:GTS ): result:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ak\"},\"<\":{\"description\":\"The `<` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 < p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <` is strictly equivalent of a `42 mapper.lt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 < p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less than gts2 value.\\n\\n\",\"signature\":\"<( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n<( p1:STRING p2:STRING ): result:BOOLEAN\\n<( inputgts:GTS constant:ANY ): outgts:GTS\\n<( constant:ANY inputgts:GTS ): outgts:GTS\\n<( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E.\"},\"<<\":{\"description\":\"Shifts the bits of a long by a number of positions to the left. The least significant bit is filled with 0 after each shift.\\n\\nSince Warp 10™ 2.1, `<<` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"signature\":\"<<( number:LONG shift:LONG ): result:LONG\\n<<( inputgts:GTS number:LONG ): maskedgts:GTS\\n<<( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2k\"},\"<=\":{\"description\":\"The `<=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 <= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically.\\n\\nSince Warp 10™ 2.1, as every other comparison operators, `<=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 <=` is strictly equivalent of a `42 mapper.le` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 <= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values less or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is less or equal than gts2 value.\\n\\n\",\"signature\":\"<=( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n<=( p1:STRING p2:STRING ): result:BOOLEAN\\n<=( inputgts:GTS constant:ANY ): outgts:GTS\\n<=( constant:ANY inputgts:GTS ): outgts:GTS\\n<=( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"E2o\"},\"==\":{\"description\":\"Tests if both parameters are equal.\\n\\nThe `==` operator consumes two parameters from the top of the stack and pushes onto the stack true if they are equal, false otherwise.\\n\\nThe two parameters must be of numeric, boolean, vector, matrix or string types.\\nFor vector or matrix, the parameters must be the same size.\\n\\nSince 2.1.0, as every other comparison operators, `==` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 ==` is strictly equivalent of a `42 mapper.eq` MAP operation, with a simplified syntax.\\n\\nSince 2.1.1, `==` can be use to check equality between Lists, Maps and Sets. For for details about how this is defined, check the [java documentation](https://docs.oracle.com/en/java/javase/index.html).\\n\\n@param `p1` First parameter to compare\\n\\n@param `p2` Second parameter to compare\\n\\n@param `result` True if p1 and p2 are equal, false otherwise\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values equal to constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value equals gts2 value.\\n\\n\",\"signature\":\"==( p1:ANY p2:ANY ): result:BOOLEAN\\n==( inputgts:GTS constant:ANY ): outgts:GTS\\n==( constant:ANY inputgts:GTS ): outgts:GTS\\n==( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EIo\"},\">\":{\"description\":\"The `>` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 > p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >` is strictly equivalent of a `42 mapper.gt` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 > p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater than gts2 value.\\n\\n\",\"signature\":\">( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n>( p1:STRING p2:STRING ): result:BOOLEAN\\n>( inputgts:GTS constant:ANY ): outgts:GTS\\n>( constant:ANY inputgts:GTS ): outgts:GTS\\n>( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EV\"},\">=\":{\"description\":\"The `>=` operator consumes two parameters p1 and p2 from the top of the stack and pushes onto the stack true if p1 >= p2, else it pushes false.\\n\\nThe two parameters must be of numeric or string types.\\n\\nStrings are compared lexicographically. \\n\\nSince Warp 10™ 2.1, as every other comparison operators, `>=` can also be used between two GTS or a GTS and a constant.\\n\\n`$gts 42 >=` is strictly equivalent of a `42 mapper.ge` MAP operation, with a simplified syntax.\\n\\n\\n@param `p1` First parameter\\n\\n@param `p2` Second parameter\\n\\n@param `result` True if p1 >= p2\\n\\n@param `constant` Since Warp 10™ 2.1, a string or a number to compare with.\\n\\n@param `inputgts` Since Warp 10™ 2.1, a GTS with numbers or strings.\\n\\n@param `outgts` Since Warp 10™ 2.1, a new GTS containing only values greater or equal than constant.\\n\\n@param `gts1` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `gts2` Since Warp 10™ 2.1, an input GTS with numbers or strings.\\n\\n@param `outputgts` Since Warp 10™ 2.1, for each common ticks between gts1 and gts2, outputgts contains gts1 value and locations when gts1 value is greater or equal than gts2 value.\\n\\n\",\"signature\":\">=( p1:NUMBER p2:NUMBER ): result:BOOLEAN\\n>=( p1:STRING p2:STRING ): result:BOOLEAN\\n>=( inputgts:GTS constant:ANY ): outgts:GTS\\n>=( constant:ANY inputgts:GTS ): outgts:GTS\\n>=( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYo\"},\">>\":{\"description\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after shifting depends on the sign of the unshifted long.\\n\\nSince Warp 10™ 2.1, `>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"signature\":\">>( number:LONG shift:LONG ): result:LONG\\n>>( inputgts:GTS number:LONG ): maskedgts:GTS\\n>>( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYs\"},\">>>\":{\"description\":\"Shifts the bits of a long by a number of positions to the right. The most significant bit after each shift is set to 0, regardless of the sign of \\nthe unshifted long.\\n\\nSince Warp 10™ 2.1, `>>>` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n\\n@param `shift` Number of positions\\n\\n@param `number` Long to shift\\n\\n@param `result` Shifted long\\n\\n@param `inputgts` Since 2.1, GTS with long values\\n\\n@param `maskedgts` Since 2.1, a new GTS with every values shifted by number\\n\\n@param `gts1` Since 2.1, GTS with long values\\n\\n@param `gts2` Since 2.1, GTS with long values\\n\\n@param `outputgts` Since 2.1, for each common ticks between gts1 and gts2, gts1 value is shifted by gts2 value\\n\\n\",\"signature\":\">>>( number:LONG shift:LONG ): result:LONG\\n>>>( inputgts:GTS number:LONG ): maskedgts:GTS\\n>>>( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"EYsy\"},\"ABI->\":{\"description\":\"The `ABI->` function parses a JSON structure describing an [`ABI`](https://docs.soliditylang.org/en/develop/abi-spec.html) and produces a `MAP` with individual entries for each definition appearing in the JSON spec.\\n\\n@param `json` JSON representation of the ABI, as produced by `solc --abi`.\\n\\n@param `abi` `MAP` containing entries for each function, error or event described in the `ABI`.\\n\\n\",\"signature\":\"ABI->( json:STRING ): abi:MAP\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"FJ88AIs\"},\"ABI.SIG\":{\"description\":\"Computes the signature of an [ABI](https://docs.soliditylang.org/en/v0.8.13/abi-spec.html) element. The element can be of type `function` or `event`.\\n\\n@param `abi` ABI description of the element whose signature must be generated.\\n\\n@param `signature` Hex encoded and `0x` prefixed 32 bits signature of the ABI.\\n\\n\",\"signature\":\"ABI.SIG( abi:MAP ): signature:STRING\",\"tags\":[\"extensions\"],\"OPB64name\":\"ABI.SIG\"},\"ABS\":{\"description\":\"Computes the absolute value of a number value.\\n\\nThe `ABS` function consumes a numeric value from the top of the stack and pushes back its absolute value.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` A numeric value\\n\\n@param `result` The absolute value of the given numeric value.\\n\\n@param `lvalue` A list of numeric values\\n\\n@param `lresult` A list of the absolute values of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the absolute values of the given GTS values\\n\\n\",\"signature\":\"ABS( value:LONG ): result:LONG\\nABS( value:COUNTER ): result:LONG\\nABS( value:DOUBLE ): result:DOUBLE\\nABS( lvalue:LIST<LONG> ): lresult:LIST<LONG>\\nABS( lvalue:LIST<COUNTER> ): lresult:LIST<LONG>\\nABS( lvalue:LIST<DOUBLE> ): lresult:LIST<DOUBLE>\\nABS( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ABS\"},\"ACCEL.CACHE\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.CACHE` function will enable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.CACHE\"},\"ACCEL.NOCACHE\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOCACHE` function will disable accessing the in-memory data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOCACHE\"},\"ACCEL.NOPERSIST\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.NOPERSIST` function will disable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.NOPERSIST\"},\"ACCEL.PERSIST\":{\"description\":\"When the Warp 10 Accelerator is enabled, the `ACCEL.PERSIST` function will enable accessing the persistent (disk based) data for update, fetch and delete operations.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.PERSIST\"},\"ACCEL.REPORT\":{\"description\":\"The `ACCEL.REPORT` function will produce a map containing informations related to the Warp 10 Accelerator. The following table describes the various keys present in this map:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `accelerated` | Boolean indicating whether or not the last [`FETCH`](/doc/FETCH) accessed the in-memory data managed by the Warp 10 Accelerator. |\\n| `status` | Boolean indicating whether or not the Warp 10 Accelerator is enabled. |\\n| `cache` | Boolean indicating if the in-memory data will be considered for update, fetch and delete operations. |\\n| `persist` | Boolean indicating if the persistent data will be considered for update, fetch and delete operations. |\\n| `chunkcount` | Number of chunks managed by the accelerator for its in-memory data. |\\n| `chunkspan` | Length of each chunk expressed in platform time units. |\\n\\n@param `report` Map containing informations related to the Warp 10 Accelerator\\n\\n\",\"signature\":\"ACCEL.REPORT(): report:MAP\",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"ACCEL.REPORT\"},\"ACOS\":{\"description\":\"The `ACOS` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arccosine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arccosine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arccosine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arccosine in radians of the given GTS values\\n\\n\",\"signature\":\"ACOS( value:NUMBER ): result:DOUBLE\\nACOS( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nACOS( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ACOS\"},\"ADDDAYS\":{\"description\":\"Adds days to a timestamp or a tselements.\\n\\nThe `ADDDAYS` function consumes from the top of the stack a number (positive or negative) of days, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the days and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `days` The number of days to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"ADDDAYS( timestamp:LONG timezone:STRING days:LONG ): result:LONG\\nADDDAYS( timestamp:LONG days:LONG ): result:LONG\\nADDDAYS( tselements:LIST<LONG> days:LONG ): tselementsresult:LIST<LONG>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDDAYS\"},\"ADDDURATION\":{\"description\":\"Adds an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) to a timestamp or a tselements.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `duration` The duration\\n\\n@param `factor` The number of durations to add. Can be negative. Default to 1 if not set.\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"ADDDURATION( timestamp:LONG timezone:STRING duration:STRING ): result:LONG\\nADDDURATION( timestamp:LONG timezone:STRING duration:STRING factor:LONG ): result:LONG\\nADDDURATION( timestamp:LONG duration:STRING ): result:LONG\\nADDDURATION( timestamp:LONG duration:STRING factor:LONG ): result:LONG\\nADDDURATION( tselements:LIST<LONG> duration:STRING ): tselementsresult:LIST<LONG>\\nADDDURATION( tselements:LIST<LONG> duration:STRING factor:LONG ): tselementsresult:LIST<LONG>\",\"tags\":[\"date\"],\"since\":\"2.4.0\",\"OPB64name\":\"ADDDURATION\"},\"ADDEXACT\":{\"description\":\"The `ADDEXACT` function consumes two LONGs from the top of the stack and puts back the sum. If the sum overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `sum` The sum of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `ssum` The sum of all the elements of list\\n\\n@param `gsum` The sum of all the values of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lsum` List of **LONG** where each value is the sum of y and an element in lx\\n\\n@param `gtssum` GTS of **LONG** values where each value is the sum of y and an element in gtsx\\n\\n\",\"signature\":\"ADDEXACT( x:NUMBER y:NUMBER ): sum:LONG\\nADDEXACT( list:LIST<NUMBER> ): ssum:LONG\\nADDEXACT( lx:LIST<NUMBER> y:NUMBER ): lsum:LIST<LONG>\\nADDEXACT( gts:GTS ): gsum:GTS\\nADDEXACT( gtsx:GTS y:NUMBER ): gtssum:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"ADDEXACT\"},\"ADDMONTHS\":{\"description\":\"Adds months to a timestamp or a tselements.\\n\\nThe `ADDMONTHS` function consumes from the top of the stack a number (positive or negative) of months, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the months and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `months` The number of months to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"ADDMONTHS( timestamp:LONG timezone:STRING months:LONG ): result:LONG\\nADDMONTHS( timestamp:LONG months:LONG ): result:LONG\\nADDMONTHS( tselements:LIST<LONG> months:LONG ): tselementsresult:LIST<LONG>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDMONTHS\"},\"ADDVALUE\":{\"description\":\"The `ADDVALUE` function adds a value to a GTS, without checking for tick duplicates. The added data point is appended to the GTS.\\nThe [`SETVALUE`](/doc/SETVALUE) overrides an existing value.\\n\\nThe `ADDVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `ADDVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, for example by using [`GET`](/doc/GET)\\nwith value 0 as parameter.\\n\\nIf latitude or longitude are NaN (not a number), value has only timestamp, elevation, value.\\nIf elevation is NaN (not a number), value has only timestamp, latitude, longitude, value.\\nIf elevation is NaN and longitude or latitude are NaN, value has only timestamp, value.\\n\\nWhen adding a Geo Time Series™ or GTS Encoder value, the value will be wrapped (as when using `WRAPRAW`) and added as a binary value.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Series™\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `result` The Geo Time Series™ with the new datapoint added\\n\\n@param `elevation` Elevation or NaN\\n\\n\",\"signature\":\"ADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:STRING ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:BYTES ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:BOOLEAN ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:DOUBLE ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:LONG ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:GTSENCODER ): result:GTS\\nADDVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:GTS ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ADDVALUE\"},\"ADDYEARS\":{\"description\":\"Adds years to a timestamp or a tselements.\\n\\nThe `ADDYEARS` function consumes from the top of the stack a number (positive or negative) of years, a time parameter (timestamp or tselements) and optionally a timezone parameter.\\nIt adds the years and when an optional timezone is specified the computation is performed using it instead of `UTC`.\\nTimezone names are the ones defined in [Joda Time](http://joda-time.sourceforge.net/timezones.html \\\"Joda Time\\\").\\n\\nThis function will take into account leap years and, when working with timestamps, possible daylight saving time change.\\n\\n@param `timestamp` The timestamp to modify\\n\\n@param `tselements` The date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n@param `timezone` The timezone\\n\\n@param `years` The number of years to add\\n\\n@param `result` The new date\\n\\n@param `tselementsresult` The new date in [TSELEMENTS](doc/TSELEMENTS) format\\n\\n\",\"signature\":\"ADDYEARS( timestamp:LONG timezone:STRING years:LONG ): result:LONG\\nADDYEARS( timestamp:LONG years:LONG ): result:LONG\\nADDYEARS( tselements:LIST<LONG> years:LONG ): tselementsresult:LIST<LONG>\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"ADDYEARS\"},\"AESUNWRAP\":{\"description\":\"Unwraps a byte array with the [AES WRAP](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") and pushes back the decrypted data into an bytes array.\\n\\n`AESUNWRAP` removes the a 64bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) added by [`AESWRAP`](/doc/AESWRAP) WarpScript function\\n\\n@param `data` Encoded Byte array.\\n\\n@param `key` Byte array, 128, 192 or 256 bits key.\\n\\n@param `decoded` Decoded Byte array.\\n\\n\",\"signature\":\"AESUNWRAP( key:BYTES data:BYTES ): decoded:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESUNWRAP\"},\"AESWRAP\":{\"description\":\"Wraps a byte array or String with the [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt) algorithm and pushes a byte array containing the encrypted data onto the stack.\\n\\n`AESWRAP` adds a 64 bits [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) prefix to the input in order to protect the encrypted data against AES block determinism as [`AES WRAP`](https://www.ietf.org/rfc/rfc3394.txt \\\"rfc3394\\\") uses a fixed Initialization Vector.\\n\\n@param `key` 128, 192 or 256 bits key to use for encryption.\\n\\n@param `string` String data to encrypt.\\n\\n@param `bytes` Byte array to encrypt.\\n\\n@param `encrypted` Encrypted result.\\n\\n\",\"signature\":\"AESWRAP( string:STRING key:BYTES ): encrypted:BYTES\\nAESWRAP( bytes:BYTES key:BYTES ): encrypted:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"AESWRAP\"},\"AGO\":{\"description\":\"The `AGO` function is a shortcut which enables you to compute timestamps by specifying an offset from the current time.\\n\\n@param `offset` The numbers of ticks in platform time unit to subtract, truncated if floating-point.\\n\\n@param `timestamp` The computed timestamp\\n\\n\",\"signature\":\"AGO( offset:NUMBER ): timestamp:LONG\",\"tags\":[\"date\"],\"since\":\"1.2.0\",\"OPB64name\":\"AGO\"},\"AND\":{\"description\":\"The `AND` operator is a synonymous for [`&&`](/doc/8XN).\\n\\nIt performs a logical **AND** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `false` value encountered.\\n\\nSince Warp 10™ 2.1, `AND` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical AND applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with AND between each common tick input values.\\n\\n\",\"signature\":\"AND( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\nAND( l:LIST ): result:BOOLEAN\\nAND( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"AND\"},\"APPEND\":{\"description\":\"The `APPEND` function consumes two paramters from the top of the stack and appends the LIST, MAP or GTS on top of the stack to the one just below.\\nThe augmented LIST, MAP or GTS is then pushed back on the stack.\\n\\n@param `newitems` items to append to input.\\n\\n@param `inputlist` LIST to be modified.\\n\\n@param `outputlist` The LIST that has been modified\\n\\n@param `inputmap` MAP to be modified.\\n\\n@param `outputmap` The MAP that has been modified \\n\\n@param `inputGTS` GTS to be modified.\\n\\n@param `outputGTS` The GTS that has been modified\\n\\n@param `inputset` SET to be modified.\\n\\n@param `outputset` The SET that has been modified\\n\\n\",\"signature\":\"APPEND( inputlist:LIST newitems:LIST ): outputlist:LIST\\nAPPEND( inputmap:MAP newitems:MAP ): outputmap:MAP\\nAPPEND( inputGTS:GTS newitems:GTS ): outputGTS:GTS\\nAPPEND( inputset:SET newitems:SET ): outputset:SET\\nAPPEND( inputset:SET newitems:LIST ): outputset:SET\\nAPPEND( inputlist:LIST newitems:SET ): outputlist:LIST\",\"tags\":[\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPEND\"},\"APPLY\":{\"description\":\"The `APPLY` framework provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can do. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` List of resulting GTS, one per equivalence class.\\n\\n@param `op` Operation to perform.\\n\\n\",\"signature\":\"APPLY( [ gts:LIST<GTS>+ labels:LIST op:OPERATOR ] ): result:LIST<GTS>\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"APPLY\"},\"ASENCODERS\":{\"description\":\"The `ASENCODERS` function consumes a Geo Time Series™, a wrap or a raw wrap, or a list thereof and convert each one into an encoder.\\n\\n@param `gts` Geo Time Series™ to be converted.\\n\\n@param `lgts` List of Geo Time Series™ to be converted.\\n\\n@param `wrappedgts` Wrapped Geo Time Series™ to be converted.\\n\\n@param `lwrappedgts` List of wrapped Geo Time Series™ to be converted.\\n\\n@param `rawwrappedgts` Raw wrapped Geo Time Series™ to be converted.\\n\\n@param `lrawwrappedgts` List of raw wrapped Geo Time Series™ to be converted.\\n\\n@param `encoder` Encoder of the given Geo Time Series™.\\n\\n@param `lencoder` List of encoder, one for each given Geo Time Series™.\\n\\n\",\"signature\":\"ASENCODERS( gts:GTS ): encoder:GTSENCODER\\nASENCODERS( lgts:LIST<GTS> ): lencoder:LIST<GTSENCODER>\\nASENCODERS( wrappedgts:STRING ): encoder:GTSENCODER\\nASENCODERS( lwrappedgts:LIST<STRING> ): lencoder:LIST<GTSENCODER>\\nASENCODERS( rawwrappedgts:BYTES ): encoder:GTSENCODER\\nASENCODERS( lrawwrappedgts:LIST<BYTES> ): lencoder:LIST<GTSENCODER>\\nASENCODERS( encoder:GTSENCODER ): encoder:GTSENCODER\\nASENCODERS( lencoder:LIST<GTSENCODER> ): lencoder:LIST<GTSENCODER>\",\"tags\":[\"encoder\",\"conversion\"],\"since\":\"2.2.0\",\"OPB64name\":\"ASENCODERS\"},\"ASIN\":{\"description\":\"The `ASIN` function consumes a floating point number between -1 and 1 from the top of the stack and pushes back its arcsine in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arcsine in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arcsine in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arcsine in radians of the given GTS values\\n\\n\",\"signature\":\"ASIN( value:NUMBER ): result:DOUBLE\\nASIN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nASIN( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASIN\"},\"ASREGS\":{\"description\":\"Replaces in a macro the uses of the given symbols by the use of registers.\\n\\nIf there are not enough registers available, replace each of the symbols from the start of the list until all registers are used.\\n\\nSince 2.6.0, the list of symbols is optional. In that case, `ASREGS` first recursively extracts all the symbols from given the macro and uses that list to do the replacement.\\n\\n@param `macro` Macro to transform.\\n\\n@param `vars` List of symbols.\\n\\n\",\"signature\":\"ASREGS( macro:MACRO vars:LIST<STRING> ): macro:MACRO\\nASREGS( macro:MACRO ): macro:MACRO\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ASREGS\"},\"ASSERT\":{\"description\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise.\\n\\nThe `ASSERT` function consumes a **BOOLEAN** parameter from the top of the stack. If the boolean is **true** the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception.\\n\\n`ASSERT` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n\",\"signature\":\"ASSERT( condition:BOOLEAN ): \",\"tags\":[\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"ASSERT\"},\"ASSERTMSG\":{\"description\":\"Evaluates a boolean expression, continues the execution if it is **true**, stops otherwise and displays a message.\\n\\nThe `ASSERTMSG` function consumes a **BOOLEAN** parameter and a **STRING** parameter from the top of the stack. If the boolean is **true**, the execution of\\nthe WarpScript script continues, else it stops the execution by throwing an exception with a message displaying the **STRING** parameter.\\n\\n`ASSERTMSG` is usually used in WarpScript unit tests.\\n\\n@param `condition` The boolean expression to evaluate\\n\\n@param `message` The exception message to display if the test fails\\n\\n\",\"signature\":\"ASSERTMSG( condition:BOOLEAN message:STRING ): \",\"tags\":[\"debug\"],\"since\":\"1.2.13\",\"OPB64name\":\"ASSERTMSG\"},\"ATAN\":{\"description\":\"The `ATAN` function consumes a floating point number between -1 et 1 from the top of the stack and pushes back its arctangent in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, between -1 and 1, inclusive.\\n\\n@param `result` Arctangent in radians of the given value.\\n\\n@param `lvalue` List of values, between -1 and 1, inclusive.\\n\\n@param `lresult` List of arctangent in radians of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the arctangent in radians of the given GTS values\\n\\n\",\"signature\":\"ATAN( value:NUMBER ): result:DOUBLE\\nATAN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nATAN( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATAN\"},\"ATAN2\":{\"description\":\"ATAN2 function returns the polar angle theta (azimut) from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta). This method computes the phase theta by computing an arc tangent of y/x in the range of `] -pi  pi ]`.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `result` theta in polar coordinates\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `lresult` List of thetas in polar coordinates\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `gtsresult` Numerical GTS of thetas in polar coordinates\\n\\n\",\"signature\":\"ATAN2( y:NUMBER x:NUMBER ): result:DOUBLE\\nATAN2( y:NUMBER lx:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nATAN2( ly:LIST<NUMBER> x:NUMBER ): lresult:LIST<DOUBLE>\\nATAN2( y:NUMBER gtsx:GTS ): gtsresult:GTS\\nATAN2( gtsy:GTS x:NUMBER ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.2.13\",\"OPB64name\":\"ATAN2\"},\"ATBUCKET\":{\"description\":\"The `ATBUCKET` function consumes a bucketized GTS from the stack, looks at its `index`-th bucket and puts on the stack a\\nlist with the timestamp, latitude, longitude, elevation and value for this bucket.\\n\\n@param `gts` Bucketized Geo Time Series™\\n\\n@param `index` Index of the bucket\\n\\n@param `result` List with the timestamp, latitude, longitude, elevation and value for the index-th bucket of the GTS\\n\\n\",\"signature\":\"ATBUCKET( gts:GTS index:LONG ): result:LIST\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATBUCKET\"},\"ATINDEX\":{\"description\":\"The `ATINDEX` function consumes a Geo Time Series™ or a list thereof from the stack, looks at its index-th point and put on the stack a list with the timestamp, longitude,\\nlatitude, elevation and value for the `index`-th point of the GTS.\\n\\nSince 2.1, the index can be negative. In this case, the effective index is index + size of the GTS.\\n\\n@param `index` Index of the tick, truncated if floating-point.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"signature\":\"ATINDEX( gts:GTS index:NUMBER ): data:LIST\\nATINDEX( lgts:LIST<GTS> index:NUMBER ): ldata:LIST<LIST>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATINDEX\"},\"ATTICK\":{\"description\":\"The `ATTICK` function consumes a Geo Time Series™ from the stack, looks at its tick-th tick (the data point with a timestamp tick) and put on the\\nstack a list with the timestamp, latitude, longitude, elevation and value for that data point.\\n\\nIf there is no data point with tick timestamp, it returns a list with timestamp, latitude, longitude and elevation at **NaN** and value at **null**.\\n\\n@param `timestamp` Timestamp at which to take the data, if it is a floating-point value, it is truncated.\\n\\n@param `gts` The Geo Time Series™ from which to take the data\\n\\n@param `lgts` The list of Geo Time Series™ from which to take the data\\n\\n@param `data` A list containing timestamp, latitude, longitude, elevation and value\\n\\n@param `ldata` A list of lists, each of them containing timestamp, latitude, longitude, elevation and value\\n\\n\",\"signature\":\"ATTICK( gts:GTS timestamp:LONG ): data:LIST\\nATTICK( lgts:LIST<GTS> timestamp:LONG ): ldata:LIST<LIST>\\nATTICK( gts:GTS timestamp:COUNTER ): data:LIST\\nATTICK( lgts:LIST<GTS> timestamp:COUNTER ): ldata:LIST<LIST>\\nATTICK( gts:GTS timestamp:DOUBLE ): data:LIST\\nATTICK( lgts:LIST<GTS> timestamp:DOUBLE ): ldata:LIST<LIST>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTICK\"},\"ATTRIBUTES\":{\"description\":\"Retrieves the attributes of a Geo Time Series™.\\n\\nThe `ATTRIBUTES` function takes a **GTS** on top of the stack and push back a **MAP** including all its attributes.\\n\\nAn attribute corresponds to a tag for a specific series.\\nThe attribute system allows the user to add some information that can change in a series.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `encoder` The input Geo Time Series™ Encoder\\n\\n@param `return` The attributes MAP of the input Geo Time Series™\\n\\n\",\"signature\":\"ATTRIBUTES( gts:GTS ): return:MAP\\nATTRIBUTES( encoder:GTSENCODER ): return:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ATTRIBUTES\"},\"AUTHENTICATE\":{\"description\":\"The `AUTHENTICATE` function authenticates the current stack with the **read token** on top of the stack. This function removes the token from the stack.\\n\\nInside a WarpScript, the stack could be authenticated only once. An exception is thrown when the stack is already authenticated.\\n\\nIn macros, use ISAUTHENTICATED to make sure the stack is not already authenticated.\\n\\n@param `token` Read token\\n\\n\",\"signature\":\"AUTHENTICATE( token:STRING ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"AUTHENTICATE\"},\"B58->\":{\"description\":\"Decodes a STRING encoded in [Base58](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58 encoded STRING to decode.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"signature\":\"B58->( base58:STRING ): decoded:BYTES\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsAIs\"},\"B58C->\":{\"description\":\"Decodes a STRING encoded in [Base58Check](https://tools.ietf.org/id/draft-msporny-base58-03.txt).\\n\\n@param `base58` Base58Check encoded STRING to decode.\\n\\n@param `prefix` Base58Check prefix used at encoding time.\\n\\n@param `decoded` Byte array containing the decoded content\\n\\n\",\"signature\":\"B58C->( base58:STRING prefix:BYTES ): decoded:BYTES\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"2.8.0\",\"OPB64name\":\"FYJsFmoy\"},\"B64->\":{\"description\":\"Decodes the [base64](http://tools.ietf.org/html/rfc4648#section-4) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"B64->( content:STRING ): result:BYTES\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoAIs\"},\"B64TOHEX\":{\"description\":\"Decodes the  [base64](http://tools.ietf.org/html/rfc4648#section-4) content on top of the stack and immediately re-encode it in hexadecimal.\\nThis enables you to convert encoded content which would not be valid UTF-8 encoding from base64 to hexadecimal. \\nAs the string are URL encoded, the symbol `+` have to be replaced by `%2B`, otherwise a space will replace the `+` in the string.\\n\\n@param `content` String to convert\\n\\n@param `result` Hexadecimal converted string\\n\\n\",\"signature\":\"B64TOHEX( content:STRING ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"B64TOHEX\"},\"B64URL->\":{\"description\":\"Decodes the [base64url](http://tools.ietf.org/html/rfc4648#section-5) **STRING** content on top of the stack.\\n\\n@param `content` String to decode\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"B64URL->( content:STRING ): result:BYTES\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FYNoKK8BAIs\"},\"BBOX\":{\"description\":\"The `BBOX` function computes the bounding box of a Geo Time Series™ or a list thereof. It returns a list with extremas (West, South, East, North), or a list of list of extremas.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `minlat` Latitude of lower left of bounding box.\\n\\n@param `minlon` Longitude of lower left of bounding box.\\n\\n@param `maxlat` Latitude of upper right of bounding box.\\n\\n@param `maxlon` Longitude of upper right of bounding box.\\n\\n@param `extremas` List of list containing minlat, minlon, maxlat, maxlon, for every GTS in lgts.\\n\\n\",\"signature\":\"BBOX( gts:GTS ): [  minlat:DOUBLE  minlon:DOUBLE  maxlat:DOUBLE  maxlon:DOUBLE  ]\\nBBOX( lgts:LIST<GTS> ): extremas:LIST<LIST<DOUBLE>>\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BBOX\"},\"BIN->\":{\"description\":\"The `->BIN` function decodes a binary string representation into a bytes array.\\n\\n@param `binary` The binary string representation\\n\\n@param `result` The bytes array\\n\\n\",\"signature\":\"BIN->( binary:STRING ): result:BYTES\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"FZ_DAIs\"},\"BINTOHEX\":{\"description\":\"Converts a string representing a binary number into a string representing a hexadecimal number.\\n\\nThe `BINTOHEX` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from binary to hexadecimal.\\n\\n@param `content` The string representing a binary number\\n\\n@param `result` The string representing a hexadecimal number\\n\\n\",\"signature\":\"BINTOHEX( content:STRING ): result:STRING\",\"tags\":[\"strings\",\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"BINTOHEX\"},\"BITCOUNT\":{\"description\":\"Returns the logical size and the cardinality of a [BitSet](https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html).\\n\\nThe `BITCOUNT` function consumes a bitset on the top of the stack and push back its logical size and its cardinality.\\n  * The logical size is the index of the highest bit set to true plus one.\\n  * The cardinality is the number of bit set to true.\\n\\n@param `bitset` The BitSet to count\\n\\n@param `length` The logical size of the BitSet\\n\\n@param `cardinality` The number of bits set to true\\n\\n\",\"signature\":\"BITCOUNT( bitset:BITSET ): cardinality:LONG length:LONG\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITCOUNT\"},\"BITGET\":{\"description\":\"Returns the value of the bit with the specified index.\\n\\nThe `BITGET` function consumes a bitset and a long on the top of the stack. It returns the value of the bit with the specified index. The bit index starts at 0 from the right.\\n\\n@param `index` The bit index\\n\\n@param `bitset` The bitset\\n\\n@param `return` The value of the bit with the specified index\\n\\n\",\"signature\":\"BITGET( bitset:BITSET index:LONG ): return:BOOLEAN\",\"tags\":[\"bitset\",\"binary\"],\"since\":\"1.0.5\",\"OPB64name\":\"BITGET\"},\"BITSTOBYTES\":{\"description\":\"Converts a bitset into a bytes array.\\n\\n@param `bitset` Bitset\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"BITSTOBYTES( bitset:BITSET ): result:BYTES\",\"tags\":[\"bitset\",\"binary\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"BITSTOBYTES\"},\"BOOTSTRAP\":{\"description\":\"This function is executed systematically before the WarpScript stack is available for anything else. By default this function does nothing, it is equivalent \\nto [`NOOP`](/doc/NOOP).\\n\\nIf bootstrap code was specified in the Warp 10 platform configuration, for either or all of `egress`, `mobius` or `runner`, the `BOOTSTRAP` function might\\nhave been redefined and actual code could be executed.\\n\\nThis function is not meant to be used in user provided scripts.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"BOOTSTRAP\"},\"BREAK\":{\"description\":\"The `BREAK` function breaks out of the current loop. It takes no argument.\\n\\n> If used outside a loop, an error is thown\\n\\n\",\"signature\":\"\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"BREAK\"},\"BUCKETCOUNT\":{\"description\":\"The function `BUCKETCOUNT` consumes a GTS off the stack and pushes its bucketcount onto the stack.\\n\\n> Note: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Number of buckets\\n\\n\",\"signature\":\"BUCKETCOUNT( gts:GTS ): result:LONG\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETCOUNT\"},\"BUCKETIZE\":{\"description\":\"The `BUCKETIZE` framework allow to realign datapoints:\\n- A **bucket** is a time interval which spans a certain number of time units called the **bucketspan**\\n- BUCKETIZE sort the geotimeserie input, starts by computing the last bucket defined by **lastbucket**, always going backward in time.\\n- BUCKETIZE ends when there is no more ticks to compute, or when **bucketcount** is reached.\\n\\nThe **bucketizer** is a function that aggregates all the datapoints that falls into the bucket. It means their timestamp belongs to range `](bucketEnd - bucketspan);bucketEnd]`. If there is no datapoint in the bucket range, there is no aggregate output for the bucket, and `BUCKETIZE` jumps to the next non empty bucket.\\n\\n\\n###### Parameters\\n\\n| last bucket | bucket span | bucket count | |\\n|---|---|---|---|\\n| 0 | span |0 | `BUCKETIZE` will choose last bucket as multiple of the bucket span, and will adjust bucketcount to cover all the input time range. This is the most straightforward way to use `BUCKETIZE`. As last bucket is a multiple of bucket span, **results will be aligned**. |\\n| lastbucket | span | 0 | `BUCKETIZE` will adjust bucketcount to cover all the input time range. As lastbucket is fixed, **results will be aligned**. |\\n| 0 | span | count | `BUCKETIZE` will choose the GTS last tick as last bucket, and stop computation as soon as bucket count is reached. Results may not be aligned. |\\n| 0 | 0 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts + 1) / bucket count`. Results may not be aligned.|\\n| 0 | -1 | count | `BUCKETIZE`  will choose the GTS last tick as last bucket, and will adjust bucket span to `(last bucket - first tick of gts) / (bucket count - 1)`. Results may not be aligned.|\\n\\n\\nAll the output will be bucketized. The bucket span and last bucket can be retrieved with [`BUCKETSPAN`](/doc/BUCKETSPAN) and [`BUCKETCOUNT`](/doc/BUCKETCOUNT).\\n\\nUp to bucketization, the other WarpLib functions will process the series differently. Empty buckets will be considered as values. You may need to remove the bucketized property from a GTS, with [`UNBUCKETIZE`](/doc/UNBUCKETIZE) function.\\n\\n###### Aggregators\\n\\nYou can use `BUCKETIZE` with 3 different type of aggregators:\\n- The WarpLib aggregators: they are all named **bucketizer.xxx**, you will find them in the [bucketizer section](/tags/bucketizer).\\n- A macro: for each bucket, BUCKETIZE will push a new sub Geo Time Series™ which will contain the ticks and values that falls in current bucket, then execute the macro. The macro can process the GTS, and let the aggregation result on the stack.\\n- A MACROBUCKETIZER: see [`MACROBUCKETIZER`](/doc/MACROBUCKETIZER) documentation.\\n\\n\\nIf the bucketizer argument is NULL, then BUCKETIZE do not create any new Geo Time Series™ but instead sets the lastbucket, bucketspan and bucketcount of its inputs without processing their data.\\n\\n`BUCKETIZE` output is always a list of GTS, even if the input is a single GTS.\\n\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so the first value of the geo time series is at the beginning of the first bucket.\\n\\n@param `bucketspan` Width in time units of each bucket. If `bucketspan` is 0 but `bucketcount` is set, WarpScript will compute `bucketspan` so `bucketcount` buckets cover the complete set of values from firsttick to lasttick. If this value is set to -1, the number of buckets is computed so the first tick is towards the end of the first bucket.\\n\\n@param `lastbucket` Specifies the timestamp in time units since the Unix Epoch of the end of the most recent bucket. If you set this value to 0, this timestamp will be computed automatically so it covers the most recent value of the geo time series and falls on a `bucketspan` boundary.\\n\\n@param `gts` One or more Geo Time Series™\\n\\n@param `gtsList` One or more lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS\\n\\n\",\"signature\":\"BUCKETIZE( [ gts:GTS+ bucketizer:AGGREGATOR lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE( [ gtsList:LIST<GTS>+ bucketizer:AGGREGATOR lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE( [ gts:GTS+ macro:MACRO lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE( [ gtsList:LIST<GTS>+ macro:MACRO lastbucket:LONG bucketspan:LONG bucketcount:LONG ] ): result:LIST<GTS>\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETIZE\"},\"BUCKETIZE.CALENDAR\":{\"description\":\"Creates bucketized Geo Time Series with buckets that span a calendar duration that can be irregular (e.g. taking into account leap years and daylight saving time).\\n\\nInstead of using a bucketspan like the BUCKETIZE framework, it uses a bucketduration: a STRING in [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format, as `PyYmMwWdDThHmMsS` similarly to that of ADDDURATION function. However, complex bucketdurations that can be non-positive from some ticks are not allowed.\\n\\nIn the result, the tick of each bucket is its index, which is equal to the number of buckets that are ended since Unix Epoch. In particular, the tick of the bucket that contains Unix Epoch is always 0. The resulting GTS is considered bucketized for further operations. Then, the function UNBUCKETIZE.CALENDAR can be used to replace bucket indices with their timestamp end boundaries.\\n\\nThis function answers the limitation of BUCKETIZE to regular buckets. For instance, BUCKETIZE.CALENDAR can be used with a duration of one month (`P1M`) or one year (`P1Y`).\\n\\nThe delta between Unix Epoch and the first timestamp of bucket 0th is called the bucketoffset. The bucketoffset, bucketduration and buckettimezone are stored in the attributes.\\n\\nSee also the macros: [@senx/cal/BUCKETIZE.bymonth](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.bymonth.mc2), [@senx/cal/BUCKETIZE.byyear](https://warpfleet.senx.io/macros/senx/cal/BUCKETIZE.byyear.mc2).\\n\\n\\n@param `timezone` The timezone to consider. Default to UTC\\n\\n@param `bucketcount` Number of buckets of the bucketized geo time series. If this value is set to 0, the number of buckets will be computed so every value of the GTS falls in a bucket.\\n\\n@param `bucketduration` Width in ISO 8601 duration format of each bucket.\\n\\n@param `lastbucket` Specifies the timestamp in platform time units of the end boundary of the most recent bucket. For coherency with BUCKETIZE, this value can not be set to 0.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `bucketizer` Bucketizer function to apply\\n\\n@param `macro` Macro to apply. Must expect a GTS as input. Must push onto the stack either [value], or [tick,value], or [tick,elev,value], or [tick,lat,lon,value], or [tick,lat,lon,elev,value], or tick, lat, lon, elev and value.\\n\\n@param `result` List of bucketized GTS in the new time referential\\n\\n\",\"signature\":\"BUCKETIZE.CALENDAR( [ gts:GTS+ bucketizer:AGGREGATOR lastbucket:LONG bucketduration:STRING bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE.CALENDAR( [ gts:GTS+ macro:MACRO lastbucket:LONG bucketduration:STRING bucketcount:LONG ] ): result:LIST<GTS>\\nBUCKETIZE.CALENDAR( [ gts:GTS+ bucketizer:AGGREGATOR lastbucket:LONG bucketduration:STRING bucketcount:LONG timezone:STRING ] ): result:LIST<GTS>\\nBUCKETIZE.CALENDAR( [ gts:GTS+ macro:MACRO lastbucket:LONG bucketduration:STRING bucketcount:LONG timezone:STRING ] ): result:LIST<GTS>\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"BUCKETIZE.CALENDAR\"},\"BUCKETSPAN\":{\"description\":\"The function `BUCKETSPAN` consumes a GTS off the stack and pushes its bucketspan onto the stack.\\n\\n> when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Bucketspan\\n\\n\",\"signature\":\"BUCKETSPAN( gts:GTS ): result:LONG\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"BUCKETSPAN\"},\"BYTES->\":{\"description\":\"Converts a bytes array into a string with given a charset and put the string on top of the stack.\\n\\nCharset could be any supported by your java platform. Example: UTF-8 US-ASCII ISO-8859-1 Cp852...\\n\\n\\n@param `charset` Charset to use\\n\\n@param `bytes` Bytes array to convert\\n\\n@param `result` String converted byte array\\n\\n\",\"signature\":\"BYTES->( bytes:BYTES charset:STRING ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"F__JGKBhEV\"},\"BYTESTOBITS\":{\"description\":\"Converts a byte array into a bitset.\\n\\n@param `bytesarray` Bytes array\\n\\n@param `result` Bitset\\n\\n\",\"signature\":\"BYTESTOBITS( bytesarray:BYTES ): result:BITSET\",\"tags\":[\"bitset\",\"conversion\",\"binary\"],\"since\":\"1.0.6\",\"OPB64name\":\"BYTESTOBITS\"},\"CALL\":{\"description\":\"The `CALL` function invokes the external program whose path (relative to the `warpscript.call.directory` directory) is on top of the stack. The calling convention will pass to the external\\nprogram the **STRING** object below the path on a line by itself on standard input after having URL encoded the **STRING**. The invoked\\nprogram is expected to return a URL encoded **STRING** object if invocation was successful, or a string starting with a space and followed by a URL encoded error message if an error was encoutered.\\n\\nIf you need to pass complex structures to the invoked program, you can use functions such as [`->JSON`](/doc/AIt9JoxD), [`->PICKLE`](/doc/AItFHJCAI3J)\\nand [`->B64`](/doc/AIt1CYF) to encode the input prior to the invocation.\\n\\nExamples of callable programs are provided in [shell](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/sh/callable.sh)\\nand [python](https://github.com/senx/warp10-platform/blob/master/warp10/src/main/python/callable.py).\\n\\nThe program must be stored in the directory described by the `warpscript.call.directory` configuration parameter.\\n\\nThe program must first output on the stdout the number of concurrent thread allowed.\\n\\nExample:\\n\\n```bash\\n#!/bin/bash\\necho 5 # 5 threads allowed\\nurldecode() {\\n  # urldecode <string>\\n  local url_encoded=\\\"${1//+/ }\\\"\\n  printf '%b' \\\"${url_encoded//%/\\\\\\\\x}\\\"\\n}\\nwhile true\\n\\ndo\\n  read line\\n  line=`urldecode \\\"${line}\\\"` # read the params given by the WarpScript\\n  echo $line # Will be pushed on the stack\\ndone\\n```\\n\\n@param `program` Program path\\n\\n@param `params` URL encoded input\\n\\n@param `result` URL encoded output\\n\\n\",\"signature\":\"CALL( params:STRING program:STRING ): result:STRING\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"CALL\"},\"CAPADD\":{\"description\":\"The `CAPADD` function extracts capabilities from a `READ` or `WRITE` token and adds them to the current execution environment.  All the capabilities contained in the token will be added except those which are already set in the WarpScript execution environment.\\n\\n@param `token` Token whose capabilities must be extracted and added to the execution environment.\\n\\n\",\"signature\":\"CAPADD( token:STRING ): \",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPADD\"},\"CAPCHECK\":{\"description\":\"Checks if a capability is set in the current execution environment.\\n\\n@param `capability` Name of the capability to check.\\n\\n@param `set` Boolean indicating whether or not `capability` is set.\\n\\n\",\"signature\":\"CAPCHECK( capability:STRING ): set:BOOLEAN\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPCHECK\"},\"CAPDEL\":{\"description\":\"Removes a capability or list of capabilities from the current execution environment. This function can prove handy when willing to add capabilities from a token to an environment which already has certain capabilities set which would prevent the new values to be taken into account.\\n\\n@param `capability` Name of the capability to remove.\\n\\n@param `capabilities` List of names of capabilities to remove. If the list is empty, all capabilities will be removed.\\n\\n\",\"signature\":\"CAPDEL( capability:STRING ): \\nCAPDEL( capabilities:LIST<STRING> ): \",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPDEL\"},\"CAPGET\":{\"description\":\"Retrieves values associated with capabilities.\\nWhen the capability was not [added](/doc/CAPADD), returns NULL.\\n\\n@param `capability` Name of the capability to retrieve.\\n\\n@param `capabilities` List of names of capabilities to retrieve. If the list is empty, all capabilities will be retrieved.\\n\\n@param `value` Value associated with `capability`, or NULL when the capability was not added.\\n\\n@param `values` Map of capability name to associated value.\\n\\n\",\"signature\":\"CAPGET( capability:STRING ): value:STRING\\nCAPGET( capabilities:LIST<STRING> ): values:MAP\",\"tags\":[\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"CAPGET\"},\"CBRT\":{\"description\":\"The `CBRT` function consumes a numeric parameter from the top of the stack and pushes back its cubic root.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Cubic root of the given value.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of cubic root of each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cubic root of the given GTS values\\n\\n\",\"signature\":\"CBRT( value:NUMBER ): result:DOUBLE\\nCBRT( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCBRT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CBRT\"},\"CEIL\":{\"description\":\"The `CEIL` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number bigger than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-up value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-up values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-up of the given GTS values\\n\\n\",\"signature\":\"CEIL( value:NUMBER ): result:DOUBLE\\nCEIL( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCEIL( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEIL\"},\"CELL->\":{\"description\":\"The `CELL->` function extracts informations from a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\nThe informations returned are stored in a `MAP` under the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `row` | A byte array (`BYTES`) containing the row key. |\\n| `cf` | A byte array containing the column family. |\\n| `cq` | A byte array containing the column qualifier. |\\n| `ts` | The timestamp associated with the `Cell`. |\\n| `value` | A byte array containing the value of the `Cell`. |\\n| `tags` | A list of `MAP` instances, one per tag, with `type` (`LONG`) and `value` (`BYTES`) elements. |\\n\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `details` A `MAP` containing the various fields extracted from the `Cell` instance. See above for available informations.\\n\\n\",\"signature\":\"CELL->( cell:CELL ): details:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"FoKBI1oy\"},\"CELLCF\":{\"description\":\"The `CELLCF` function returns the column family associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cf` Byte array containing the column family of the `Cell`.\\n\\n\",\"signature\":\"CELLCF( cell:CELL ): cf:BYTES\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCF\"},\"CELLCQ\":{\"description\":\"The `CELLCQ` function returns the column qualfier associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `cq` Byte array containing the column qualifier of the `Cell`.\\n\\n\",\"signature\":\"CELLCQ( cell:CELL ): cq:BYTES\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLCQ\"},\"CELLROW\":{\"description\":\"The `CELLROW` function returns the row key associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `row` Byte array containing the row key of the `Cell`.\\n\\n\",\"signature\":\"CELLROW( cell:CELL ): row:BYTES\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLROW\"},\"CELLTAGS\":{\"description\":\"The `CELLTAGS` function returns the tags associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `tags` List of `MAP` instances, one per tag. Each map contains an entry `type` with the type of the tag (`LONG`) and an entry `value` with the associated value (`BYTES`).\\n\\n\",\"signature\":\"CELLTAGS( cell:CELL ): tags:LIST<MAP>\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTAGS\"},\"CELLTS\":{\"description\":\"The `CELLTS` function returns the timestamp associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `ts` Timestamp of the `Cell`.\\n\\n\",\"signature\":\"CELLTS( cell:CELL ): ts:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLTS\"},\"CELLVALUE\":{\"description\":\"The `CELLVALUE` function returns the value associated with a [Cell](https://hbase.apache.org/2.0/apidocs/index.html?org/apache/hadoop/hbase/Cell.html) instance retrieved from a HFile via the `io.senx.hadoop.HFileInputFormat`.\\n\\n@param `cell` The `Cell` instance to dissect.\\n\\n@param `value` Byte array containing the value of the `Cell`.\\n\\n\",\"signature\":\"CELLVALUE( cell:CELL ): value:BYTES\",\"tags\":[\"extensions\"],\"OPB64name\":\"CELLVALUE\"},\"CEVAL\":{\"description\":\"The `CEVAL` function allows you to execute macros in a concurrent way on a pool of threads.\\n\\nAll macros will be executed with the maximum parallelism level specified. Each macro is executed on its own stack. The context of the global stack is\\nreplicated to each of those stacks so each macro will have access to the existing symbols and the redefined functions. Any modification to the symbol\\ntable or redifined functions done in a concurrent macro will not be reflected in the global stack afterwards.\\n\\nEach macro is invoked with its index in the list on top of the stack.\\n\\nUpon termination of each macro, the content of their respective stacks is put into a list, with the top of the stack at index 0, and those lists are\\nmerged into a global list which is then pushed onto the stack. The resulting list for each macro appears at the index of the macro in the original macro list.\\n\\nBeware that no synchronization is implicitely performed between the concurrent macros. If you require synchronization between macros, for example because\\nyou are modifying a list accessible by all macros via a symbol, you must use the [`SYNC`](/doc/SYNC) function.\\n\\nIf one of the macros fail, an attempt to interrupt the other running macros will be done and the failure will be propagated to the other macros. For the\\ntime being, a call to [`STOP`](/doc/STOP) or [`RETURN`](/doc/RETURN) in one of the macros will stop all of them.\\n\\nUse of `CEVAL` is not available from within a macro currently executing in a `CEVAL` call.\\n\\nThe `CEVAL` function is part of the `io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```properties\\n// Enable CEVAL and SYNC functions\\nwarpscript.extension.concurrent = io.warp10.script.ext.concurrent.ConcurrentWarpScriptExtension\\n```\\n\\n@param `poolSize` Parallelism level\\n\\n@param `macros` List of macros\\n\\n@param `result` Result list\\n\\n\",\"signature\":\"CEVAL( macros:LIST poolSize:LONG ): result:LIST\",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"CEVAL\"},\"CHECKMACRO\":{\"description\":\"The `CHECKMACRO` function checks if a macro is defined and aborts the execution when it encounters an undefined macro.\\n\\n@param `name` The macro name\\n\\n\",\"signature\":\"CHECKMACRO( name:STRING ): \",\"tags\":[\"logic\",\"control\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKMACRO\"},\"CHECKSHAPE\":{\"description\":\"Return a BOOLEAN indicating whether an input list and its nested lists sizes are coherent together to form a tensor (or multidimensional array).\\n\\n@param `list` The input list.\\n\\n@param `result` true or false.\\n\\n\",\"signature\":\"CHECKSHAPE( list:LIST ): result:LIST\\nCHECKSHAPE( { list:LIST  } ): result:LIST\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHECKSHAPE\"},\"CHRONOEND\":{\"description\":\"The `CHRONOEND` function ends a stopwatch with the given name previously started with [`CHRONOSTART`](/doc/CHRONOSTART). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\nIt is a good practice to put `CHRONOEND` in the finally clause of a [`TRY`](/doc/TRY) for the timing to work even if exceptions are thrown.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"signature\":\"CHRONOEND( name:STRING ): \",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOEND\"},\"CHRONOSTART\":{\"description\":\"The `CHRONOSTART` function starts a stopwatch with the given name. To stop the stopwatch, call [`CHRONOEND`](/doc/CHRONOEND). On top of recording the cumulative time between each start and end of the stopwatch, the number of calls of `CHRONOSTART` is recorded.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\nIf calls of `CHRONOSTART` and [`CHRONOEND`](/doc/CHRONOEND) with the same name are nested, only the top level one is timed but each call to `CHRONOSTART` is counted. This allows the timing of recursive functions.\\n\\n@param `name` A name identifying the stopwatch.\\n\\n\",\"signature\":\"CHRONOSTART( name:STRING ): \",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTART\"},\"CHRONOSTATS\":{\"description\":\"The `CHRONOSTATS` function \\n\\n@param `stats` A map with stopwatches names as keys and maps as values. These maps have two keys, `total_calls` and `total_time`. The former gives the number of calls to [`CHRONOSTART`](/doc/CHRONOSTART) and the latter gives the cumulative time between [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND) in **nanoseconds**.\\n\\n\",\"signature\":\"CHRONOSTATS(): stats:MAP\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"CHRONOSTATS\"},\"CHUNK\":{\"description\":\"The `CHUNK` is used to split a Geo Time Series™ into partial GTS. The split operation is controlled by multiple parameters.\\nThe series will be splitted in chunks, each chunks will form a new GTS, with a label value corresponding to its first tick.\\n\\n@param `keepempty` If true empty chunks are kept\\n\\n@param `chunklabel` The label name of the label added by the split operation (with a value corresponding to the first tick of the chunk).\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` An overlap duration (in time units) between chunks, this is useful when chunking a GTS to apply an algorithm which operates on a sliding window.\\n\\n@param `chunkwidth` The width in time units of each chunk.\\n\\n@param `lastchunkend` The end timestamp of the most recent split to consider.\\n\\n@param `gts` A single GTS instance.\\n\\n@param `gtsList` A GTS list to split, each GTS will be splitted individually.\\n\\n@param `encoder` A single GTS Encoder instance.\\n\\n@param `lEncoder` A GTS Encoder list to split, each GTS Encoder will be splitted individually.\\n\\n@param `result` GTS Chunks, a list formed with its partial GTS.\\n\\n@param `resultEncoders` GTS Encoders Chunks, a list formed with its partial GTS Encoders.\\n\\n\",\"signature\":\"CHUNK( gts:GTS lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<GTS>\\nCHUNK( gtsList:LIST<GTS> lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<GTS>\\nCHUNK( encoder:GTSENCODER lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): resultEncoders:LIST<GTSENCODER>\\nCHUNK( lEncoder:LIST<GTSENCODER> lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): resultEncoders:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CHUNK\"},\"CHUNKENCODER\":{\"description\":\"The `CHUNKENCODER` function is used to split a [GTSEncoder](/doc/NEWENCODER) into partial GTSEncoder. The user defines some parameters that will \\nbe applied to the split operation. The series will be splitted in chunks, each chunks will form a new GTSEncoder, with a label value \\ncorresponding to its first tick.\\n\\nDeprecated since 2.1, use CHUNK instead which behaves the same.\\n\\n@param `keepempty` If true empty chunk are kept\\n\\n@param `chunklabel` The label name of the label added by this split operation (add a value corresponding to the first tick of the chunk). Could be a regular expression.\\n\\n@param `chunkcount` The number of chunks to keep (starting from the last chunk).\\n\\n@param `chunkoverlap` A time overlap for each chunks in time units.\\n\\n@param `chunkwidth` The width in time unit of each chunks in time units.\\n\\n@param `lastchunkend` The split operation end when it encounters this timestamp.\\n\\n@param `GTSEncoder` A single GTSEncoder \\n\\n@param `GTSEncoderList` A GTSEncoder list to split, each GTSEncoder will be splitted individually.\\n\\n@param `result` GTSEncoder Chunks, a list formed with its partial GTSEncoder\\n\\n\",\"signature\":\"CHUNKENCODER( GTSEncoder:GTSENCODER lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<GTSENCODER>\\nCHUNKENCODER( GTSEncoderList:LIST<GTSENCODER> lastchunkend:LONG chunkwidth:LONG chunkoverlap:LONG chunkcount:LONG chunklabel:STRING keepempty:BOOLEAN ): result:LIST<LIST<GTSENCODER>>\",\"tags\":[\"encoder\"],\"since\":\"1.2.9\",\"OPB64name\":\"CHUNKENCODER\"},\"CLEAR\":{\"description\":\"The `CLEAR` function empties the stack.\\n\\n@param `input` all the input on the stack will be erased from the stack.\\n\\n\",\"signature\":\"CLEAR( input:ANY* ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEAR\"},\"CLEARDEFS\":{\"description\":\"The `CLEARDEFS` function allows you to clear all [redefined WarpScript functions](/doc/DEF).\\n\\nBy default, all redefined WarpScript function, will not be available anymore. Set the `warpscript.def.unshadow` \\nconfiguration property to change this behaviour.\\n\\nThis configuration parameter determines if undefining a function (via NULL 'XXX' DEF) will unshadow the original statement \\nthus making it available again or if it will replace it with a function that will fail with a message saying the function is undefined.\\nThe safest behavior is to leave this undefined or set to **false**.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARDEFS\"},\"CLEARREGS\":{\"description\":\"Clears all registers, setting their current value to `NULL`.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"signature\":\"CLEARREGS(): value:ANY\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CLEARREGS\"},\"CLEARSYMBOLS\":{\"description\":\"The `CLEARSYMBOLS` function clears all symbols defined with the function [`STORE`](/doc/STORE).\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARSYMBOLS\"},\"CLEARTOMARK\":{\"description\":\"Removes elements from the stack up to and including the first mark encountered.\\n\\n@param `inputs` all the inputs references on the stack will be erased\\n\\n@param `mark` the mark will also be erased\\n\\n\",\"signature\":\"CLEARTOMARK( mark:MARK inputs:ANY* ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLEARTOMARK\"},\"CLIP\":{\"description\":\"The `CLIP` function clips a Geo Time Series™, encoders or list thereof according to a series of limits. The limits are lists of pair containing the lower and upper \\ntimestamps used to clip. Each pair will generate a clipped GTS or encoder for each instance.\\n\\n@param `bounds` List of timestamp pairs. Each pair is a list of LONG.\\n\\n@param `gts` GTS to clip\\n\\n@param `lgts` List of GTSs to clip\\n\\n@param `encoder` Emcoder to clip\\n\\n@param `lencoder` List of encoders to clip\\n\\n@param `result` List of clipped GTS\\n\\n\",\"signature\":\"CLIP( gts:GTS bounds:LIST<LIST<LONG>> ): result:LIST<GTS>\\nCLIP( lgts:LIST<GTS> bounds:LIST<LIST<LONG>> ): result:LIST<LIST<GTS>>\\nCLIP( encoder:GTSENCODER bounds:LIST<LIST<LONG>> ): result:LIST<GTSENCODER>\\nCLIP( lencoder:LIST<GTSENCODER> bounds:LIST<LIST<LONG>> ): result:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.2.0\",\"OPB64name\":\"CLIP\"},\"CLONE\":{\"description\":\"The `CLONE` function does a shallow copy of a given Geo Time Series™, List, Map or Vector. Since 2.1.1 it can also clone Encoders.\\n\\nAs it makes a shallow copy, be careful when using CLONE on a List of Geo Time Series™ like those generated by the use of [`FETCH`](/doc/FETCH). Modifying a Geo Time Series™ in any of those list will alter the matching Geo Time Series™ in the other List.\\nIf you want to use `CLONE` after a [`FETCH`](/doc/FETCH), you will need to extract the Geo Time Series™ from the list, for example by using [`LIST->`](/doc/I3_IK1oy), [`GET`](/doc/GET) or [`LMAP`](/doc/LMAP).\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `list` The List to clone\\n\\n@param `map` The Map to clone\\n\\n@param `set` The Set to clone\\n\\n@param `vector` The Vector to clone\\n\\n@param `encoder` The Encoder to clone\\n\\n@param `clone` The cloned Geo Time Series™, List, Map, Vector or Encoder\\n\\n@param `original` The original Geo Time Series™, List, Map, Vector or Encoder\\n\\n\",\"signature\":\"CLONE( gts:GTS ): original:GTS clone:GTS\\nCLONE( list:LIST ): original:LIST clone:LIST\\nCLONE( map:MAP ): original:MAP clone:MAP\\nCLONE( set:SET ): original:SET clone:SET\\nCLONE( vector:VECTOR ): original:VECTOR clone:VECTOR\\nCLONE( encoder:GTSENCODER ): original:GTSENCODER clone:GTSENCODER\",\"tags\":[\"gts\",\"lists\",\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONE\"},\"CLONEEMPTY\":{\"description\":\"Clones a Geo Time Series™, an Encoder or all the instances in a list of Geo Time Series™ or an Encoder, keeping only the metadata and not the values.\\n\\nThe `CLONEEMPTY` function takes as parameter a Geo Time Series™, an Encoder or a list thereof. It creates an empty clone of the input with only his metadata. The cloned metadata are:\\n * Classname\\n * Labels\\n * Attributes\\n * Lastbucket, for Geo Time Series™ only\\n * Bucketspan, for Geo Time Series™ only\\n * Bucketcount, for Geo Time Series™ only\\n * Base timestamp, for Encoders only\\n * Wrapping key, for Encoders only\\n\\nThe input parameter is consumed and the clone or list of clones is left on the stack.\\n\\n@param `gts` The Geo Time Series™ to clone\\n\\n@param `gtsList` The list of Geo Time Series™ to clone\\n\\n@param `result` The cloned Geo Time Series™\\n\\n@param `resultList` The cloned list of Geo Time Series™\\n\\n@param `encoder` The encoder to clone\\n\\n@param `encoderList` The list of encoder to clone\\n\\n@param `encoderResult` The cloned encoder\\n\\n@param `encoderResultList` The cloned list of encoders\\n\\n\",\"signature\":\"CLONEEMPTY( gts:GTS ): result:GTS\\nCLONEEMPTY( gtsList:LIST<GTS> ): resultList:LIST<GTS>\\nCLONEEMPTY( encoder:GTSENCODER ): encoderResult:GTSENCODER\\nCLONEEMPTY( encoderList:LIST<GTSENCODER> ): encoderResultList:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEEMPTY\"},\"CLONEREVERSE\":{\"description\":\"The function CLONEREVERSE clone the input and reverses the order of the elements. \\nOutput is a reference to a new object.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n@param `input` reference of the list or string to reverse.\\n\\n@param `output` reference to a new reversed list or string or byte array.\\n\\n\",\"signature\":\"CLONEREVERSE( input:LIST ): output:LIST\\nCLONEREVERSE( input:STRING ): output:STRING\\nCLONEREVERSE( input:BYTES ): output:BYTES\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"CLONEREVERSE\"},\"COMMONTICKS\":{\"description\":\"Take a list of Geo Time Series™ and output A GTS list with only the set of ticks they have in common compared by timestamp.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with common ticks\\n\\n\",\"signature\":\"COMMONTICKS( gtsList:LIST<GTS> ): result:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMMONTICKS\"},\"COMPACT\":{\"description\":\"The `COMPACT` function produces GTS with fewer values, by removing measurements which have the same value, location and elevation as the previous one.\\n\\nIt expects a Geo Time Series™ or a **LIST** of GTS as parameter.\\n\\nThe first tick will be kept, then ticks with value or position change will be kept. The last tick from the original GTS will be copied, in order to keep the same LASTTICK.\\n\\n@param `gts` A GTS to compact\\n\\n@param `gtsList` A GTS list to compact\\n\\n@param `result` A compacted GTS\\n\\n@param `resultList` A compacted GTS list\\n\\n\",\"signature\":\"COMPACT( gts:GTS ): result:GTS\\nCOMPACT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"COMPACT\"},\"CONTAINS\":{\"description\":\"The `CONTAINS` function checks if the element on top of the stack is contained by the list on second position. A boolean is pushed on the stack.\\n\\nIf the parameters are two STRINGs, `CONTAINS` checks if the second STRING is contained in the first one, leaving a boolean on the stack. This latter usage is available since revision 2.1.0.\\n\\n@param `item` Depending on list construction, could be a number, a string, a boolean, NULL, a GTS...\\n\\n@param `presence` true if inputlist contains the item. false otherwise or if inputlist is empty.\\n\\n@param `list` reference to the LIST to search.\\n\\n@param `set` reference to the SET to search.\\n\\n@param `str` STRING in which to find `substr`.\\n\\n@param `substr` STRING to find in `str`.\\n\\n\",\"signature\":\"CONTAINS( list:LIST item:ANY ): list:LIST presence:BOOLEAN\\nCONTAINS( set:SET item:ANY ): set:LIST presence:BOOLEAN\\nCONTAINS( str:STRING substr:STRING ): presence:BOOLEAN\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINS\"},\"CONTAINSKEY\":{\"description\":\"The `CONTAINSKEY` function checks if the key element on top of the stack is a key \\nof the map on second position. \\n\\nThe key is consumed, and a boolean is pushed on the stack.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this key. Do not trust presence if key is NULL.\\n\\n\",\"signature\":\"CONTAINSKEY( inputmap:MAP key:ANY ): outputmap:MAP presence:BOOLEAN\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSKEY\"},\"CONTAINSVALUE\":{\"description\":\"The `CONTAINSVALUE` function checks if the value element on top of the stack is a value \\nof the map on second position. \\n\\nThe value is consumed, and a boolean is pushed on the stack.\\n\\n@param `value` Depending on map construction, could be a number, a string, a boolean, NULL.\\n\\n@param `inputmap` reference to the map to search.\\n\\n@param `outputmap` copy of input map reference.\\n\\n@param `presence` true if inputmap has this value in at least one pair of its key-value.\\n\\n\",\"signature\":\"CONTAINSVALUE( inputmap:MAP value:ANY ): outputmap:MAP presence:BOOLEAN\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTAINSVALUE\"},\"CONTINUE\":{\"description\":\"Immediately stop executing the current iteration of an ongoing loop and start the next one.\\n\\n\",\"signature\":\"\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CONTINUE\"},\"COPYGEO\":{\"description\":\"The `COPYGEO` function forces the location elements of a GTS onto others. `COPYGEO` expects two parameters on the stack.\\nFirst input is GTS or a gts list: those series(s) will have their location overwritten by the one of the second GTS parameter. Geo information will be copied only if they are present in the second paramaters on the same tick otherwise it keep the existing location. See [`COMMONTICKS`](/doc/COMMONTICKS) to keep only commonticks before calling `COPYGEO`.\\n\\n@param `gts` A GTS\\n\\n@param `gtsList` A list of GTS\\n\\n@param `geogts` A GTS with the geo information you want to copy to other (list of) gts.\\n\\n@param `result` A GTS with the geo information of the geogts input\\n\\n@param `resultList` A list of GTS with the geo information of the geogts input\\n\\n\",\"signature\":\"COPYGEO( gts:GTS geogts:GTS ): result:GTS\\nCOPYGEO( gtsList:LIST<GTS> geogts:GTS ): resultList:LIST<GTS>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYGEO\"},\"COPYSIGN\":{\"description\":\"The `COPYSIGN` function copies the sign of a number on another one and pushes back the value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `p1` Numerical value on which sign is applied\\n\\n@param `p2` Numerical value from which sign is extracted\\n\\n@param `list1` List of numerical values on which sign is applied\\n\\n@param `list2` List of numerical values from which sign is extracted\\n\\n@param `gts1` Numerical GTS on which sign is applied\\n\\n@param `gts2` Numerical GTS from which sign is extracted\\n\\n@param `result` Value of p1 with the sign of p2 s a DOUBLE\\n\\n@param `lresult` List of results\\n\\n@param `gtsresult` Numerical GTS of results\\n\\n\",\"signature\":\"COPYSIGN( p1:NUMBER p2:NUMBER ): result:DOUBLE\\nCOPYSIGN( p1:NUMBER list2:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCOPYSIGN( list1:LIST<NUMBER> p2:NUMBER ): lresult:LIST<DOUBLE>\\nCOPYSIGN( p1:NUMBER gts2:GTS ): gtsresult:GTS\\nCOPYSIGN( gts1:GTS p2:NUMBER ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"COPYSIGN\"},\"CORRELATE\":{\"description\":\"The `CORRELATE` function allows you to compute correlation between one base Geo Time Series™ and a set of others. \\nBy putting the base GTS in the set of others, cross correlation can be computed.\\n\\n@param `baseGTS` The base Geo Time Series\\n\\n@param `gtsList` A list of Geo Time Series against which to compute the correlation\\n\\n@param `timeOffsets` A list of time offsets for which the correlation will be computed (expressed in time units of the Warp instance)\\n\\n@param `result` A list of synthetic Geo Time Series™ whose timestamps are the offsets from the initial offset list and the values are the computed correlations. There is one GTS per GTS in the list at TOP-1.\\n\\n\",\"signature\":\"CORRELATE( baseGTS:GTS gtsList:LIST timeOffsets:LIST ): result:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"CORRELATE\"},\"COS\":{\"description\":\"The `COS` function consumes a floating point number from the top of the stack and pushes back its cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Cosine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the cosine of the given GTS values\\n\\n\",\"signature\":\"COS( value:NUMBER ): result:DOUBLE\\nCOS( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCOS( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COS\"},\"COSH\":{\"description\":\"The `COSH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic cosine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic cosine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic cosine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic cosine of the given GTS values\\n\\n\",\"signature\":\"COSH( value:NUMBER ): result:DOUBLE\\nCOSH( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nCOSH( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"COSH\"},\"COUNTER\":{\"description\":\"The `COUNTER` function pushes a counter (AtomicLong) initialized with the value 0 onto the stack.\\n\\nThis atomic counter can be safely shared in multiple concurrent macros (see [`CEVAL`](/doc/CEVAL)).\\n\\n@param `counter` Counter instance.\\n\\n\",\"signature\":\"COUNTER(): counter:COUNTER\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTER\"},\"COUNTERDELTA\":{\"description\":\"The `COUNTERDELTA` function increments a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `increment` Counter increment.\\n\\n\",\"signature\":\"COUNTERDELTA( counter:COUNTER increment:LONG ): counter:COUNTER\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERDELTA\"},\"COUNTERSET\":{\"description\":\"The `COUNTERSET` function set the value of a counter and pushes it back onto the stack.\\n\\n@param `counter` Counter instance.\\n\\n@param `value` Counter value.\\n\\n\",\"signature\":\"COUNTERSET( counter:COUNTER value:LONG ): counter:COUNTER\",\"tags\":[\"counters\"],\"since\":\"1.2.22\",\"OPB64name\":\"COUNTERSET\"},\"COUNTERVALUE\":{\"description\":\"The `COUNTERVALUE` function pushes the counter value onto the stack.\\n\\n@param `counter` The counter instance.\\n\\n@param `value` The value of the counter.\\n\\n\",\"signature\":\"COUNTERVALUE( counter:COUNTER ): value:LONG\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTERVALUE\"},\"COUNTTOMARK\":{\"description\":\"Counts the number of elements on the stack up to but excluding the first mark encountered. Neither the mark nor the\\nelements on top of it are removed from the stack.\\n\\n@param `result` Stack depth until `MARK`\\n\\n\",\"signature\":\"COUNTTOMARK(): result:LONG\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"COUNTTOMARK\"},\"CPOPR\":{\"description\":\"Pops a value from the top of the stack and stores it into the designated register if the register is empty (*i.e.* has `NULL` as its current value).\\n\\nThe `CPOPR` function is really a family of functions named `CPOPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"signature\":\"CPOPR( value:ANY ): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"CPOPR\"},\"CPROB\":{\"description\":\"The function `CPROB` generates a new Geo Time Series™ from an input Geo Time Series™ by computing a conditional probability.\\n\\nThe function expects a **STRING** separator on top of the stack and expects the input Geo Time Series™ to have \\nvalues of the form given1< SEP >given2< SEP >....< SEP >event. It will then emit P(event|given1,given2,...).\\n\\nIf the separator is **NULL**, `CPROB` behaves like [`PROB`](/doc/PROB).\\n\\n@param `separator` Value separator\\n\\n@param `gts` Geo Time Series™\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `lresult` List of Geo Time Series™\\n\\n\",\"signature\":\"CPROB( gts:GTS separator:STRING ): result:GTS\\nCPROB( lgts:LIST<GTS> separator:STRING ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.6\",\"OPB64name\":\"CPROB\"},\"CROP\":{\"description\":\"The `CROP` function works on bucketized Geo Time Series™ instances, it transforms a GTS into another one whose bucketcount, last bucket parameters span the smallest interval with actual values. Bucket span remains the same.\\n\\nWhen called on a non bucketized GTS instance, `CROP` simply clones it.\\n\\nThis function expects a list of GTS instances on the top of the stack.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `resultList` A list of cropped version of GTS or a clone thereof if GTS was not bucketized.\\n\\n\",\"signature\":\"CROP( gts:GTS ): result:GTS\\nCROP( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"CROP\"},\"CSTORE\":{\"description\":\"The `CSTORE` function stores a value in a symbol or a register only if that symbol or register is not yet defined. The name of this function stands for Conditional STORE.\\n\\n@param `symbol` Name of symbol under which to store `value`.\\n\\n@param `register` Number of the register under which to store `value`.\\n\\n@param `value` Value to store unde `symbol`.\\n\\n\",\"signature\":\"CSTORE( value:ANY symbol:STRING ): \\nCSTORE( value:ANY register:LONG ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"CSTORE\"},\"CUDF\":{\"description\":\"The `CUDF` function invokes a User Defined Function from a Jar as [`UDF`](/doc/UDF) but reuses a cached instance of the function.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"signature\":\"CUDF( class:STRING ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"CUDF\"},\"DEBUGOFF\":{\"description\":\"Turns off stack debugging which was turned on by [`DEBUGON`](/doc/DEBUGON) or [`NDEBUGON`](/doc/NDEBUGON).\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGOFF\"},\"DEBUGON\":{\"description\":\"Turns on stack debugging which returns the stack content in case of error. Stack debugging is off by default.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEBUGON\"},\"DECREMENTEXACT\":{\"description\":\"The `DECREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value decremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be decremented by one\\n\\n@param `result` The decremented value\\n\\n@param `lvalue` List of values to be decremented by one\\n\\n@param `lresult` List of decremented values\\n\\n@param `gts` GTS whose values are to be decremented by one\\n\\n@param `gtsresult` GTS of decremented values\\n\\n\",\"signature\":\"DECREMENTEXACT( value:NUMBER ): result:LONG\\nDECREMENTEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nDECREMENTEXACT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"DECREMENTEXACT\"},\"DEDUP\":{\"description\":\"Removes duplicate ticks.\\n\\nThe `DEDUP` function consumes a Geo Time Series™ or a **LIST** thereof from the top of the stack and pushes back the Geo Time Series™ with deduplicated ticks.\\n\\nSince the 2.7.0 version, this function can be given an optional mapper or macro to combine the duplicate data points.\\n\\n@param `gts` The Geo Time Series™ to deduplicate\\n\\n@param `result` The Geo Time Series™ with deduplicated ticks\\n\\n@param `lgts` The list of Geo Time Series™ to deduplicate\\n\\n@param `lresult` The list of Geo Time Series™ with deduplicated ticks\\n\\n@param `mapper` Mapper used to aggregate duplicate values\\n\\n@param `macro` Macro used to aggregate duplicate values given as a GTS\\n\\n\",\"signature\":\"DEDUP( gts:GTS ): result:GTS\\nDEDUP( gts:GTS mapper:AGGREGATOR ): lresult:GTS\\nDEDUP( gts:GTS macro:MACRO ): lresult:GTS\\nDEDUP( lgts:LIST<GTS> ): lresult:LIST<GTS>\\nDEDUP( lgts:LIST<GTS> mapper:AGGREGATOR ): lresult:LIST<GTS>\\nDEDUP( lgts:LIST<GTS> macro:MACRO ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEDUP\"},\"DEF\":{\"description\":\"The `DEF` function allows you to define new WarpScript functions or redefine existing ones for the duration of your script execution.\\n\\nThe function expects on the stack a macro which will be used as the content of the newly defined function, and a name under which to define the new function.\\n\\nWhen redefining a function, if the function being redefined is used within the macro, the code which will be executed is the current one, \\nas the binding of function to code is done at the time when the macro is defined and not when it is executed.\\n\\nYou may therefore add limits to the use of an existing function by rewrapping it in a macro which will be associated with the original function name.\\n\\nTo remove redefined functions see [`CLEARDEFS`](/doc/CLEARDEFS).\\n\\n@param `name` New function name\\n\\n@param `newDef` Macro which will be used as the content of the newly defined function\\n\\n\",\"signature\":\"DEF( newDef:MACRO name:STRING ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEF\"},\"DEFINED\":{\"description\":\"The `DEFINED` function checks whether or not a symbol is defined.\\n\\n@param `name` Symbol name\\n\\n@param `result` Whether or not the symbol is defined\\n\\n\",\"signature\":\"DEFINED( name:STRING ): result:BOOLEAN\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEFINED\"},\"DEFINEDMACRO\":{\"description\":\"The `DEFINEDMACRO` function checks if a macro is defined and pushes true or false on the stack accordingly.\\n\\n@param `name` The macro name\\n\\n@param `result` True if the macro is defined, false otherwise\\n\\n\",\"signature\":\"DEFINEDMACRO( name:STRING ): result:BOOLEAN\",\"tags\":[\"logic\",\"control\"],\"since\":\"1.0.16\",\"OPB64name\":\"DEFINEDMACRO\"},\"DEFLATE\":{\"description\":\"The `DEFLATE` function compresses a STRING or a byte array using the [Zlib](https://en.wikipedia.org/wiki/Zlib) library. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"signature\":\"DEFLATE( string:STRING ): compressed:BYTES\\nDEFLATE( bytes:BYTES ): compressed:BYTES\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"DEFLATE\"},\"DELETE\":{\"description\":\"The `DELETE` function is used to delete a set of GTS from a Warp 10 platform. A delete endpoint must be set on the Warp 10 configuration.\\n\\nDelete expects 5 parameters on top of the stack: the write token of the Warp 10 application, a string corresponding to a gts selector, a start \\nand a end timestamp and finally the number of GTS expected to be deleted.\\n\\nIf you specify start and end, Warp 10 will delete datapoints. If there is not any datapoints left, the GTS will remain in the directory (FIND will return it). To delete all datapoints and the directory entry, use NULL for end_timestamp and start_timestamp. FIND won't find anything after a delete all.\\n\\nFor safety reasons `DELETE` will first perform a dryrun call to the /delete endpoint to retrieve the number of GTS which would be deleted by the call. \\nIf this number is above the expected number provided by the user the actual delete will not be performed and instead an error will be raised.\\n\\nDelete will push as a result the number of GTS really deleted.\\n\\nSince 2.7.3, when setting `NULL` as the number of GTSs to delete, the `DELETE` function runs in dry mode. This means no GTS is deleted and the function returns the GTSs list that would be considered by the `DELETE`.\\n\\nOn a standalone version, deleting data will not free disk space until the next compaction. If you want to immediatly free disk space, contact us to get the leveldb plugin.\\n\\n\\n@param `count` Number of GTS expected to be deleted or NULL for a dryrun\\n\\n@param `end_timestamp` End timestamp or NULL\\n\\n@param `start_timestamp` Start timestamp or NULL\\n\\n@param `gts_selector` GTS selector\\n\\n@param `writeToken` Write token\\n\\n@param `result` Actual deleted GTS count\\n\\n\",\"signature\":\"DELETE( writeToken:STRING gts_selector:STRING start_timestamp:LONG end_timestamp:LONG count:LONG ): result:LONG\",\"tags\":[\"gts\"],\"since\":\"1.0.5\",\"OPB64name\":\"DELETE\"},\"DELETEOFF\":{\"description\":\"Disables delete operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a delete operation is attempted.\\n\\n\",\"signature\":\"DELETEOFF( message:STRING secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEOFF\"},\"DELETEON\":{\"description\":\"Enables delete operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"signature\":\"DELETEON( secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"DELETEON\"},\"DEPTH\":{\"description\":\"The `DEPTH` function pushes on top of the stack the depth (i.e. number of levels) of the stack prior to the call.\\n\\n@param `result` Stack depth\\n\\n\",\"signature\":\"DEPTH(): result:LONG\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DEPTH\"},\"DEREF\":{\"description\":\"Replaces in a Macro the occurrences of symbol dereferencing (`$x`) or calls to `LOAD` with a `STRING` argument or calls to `PUSHRx` by the values associated with either the symbol name or register number in a parameter map.\\n\\nValues are used verbatim except for Macros which are inserted as functions, *i.e.* they are inserted followed by a call to `EVAL` so they are executed in the target macro instead of ending up on the stack. If you wish to replace a symbol dereference by a Macro, you need to write the macro inside of another Macro.\\n\\n\\n@param `macro` Macro to transform.\\n\\n@param `values` Map of symbol name or register number to replacement value.\\n\\n\",\"signature\":\"DEREF( macro:MACRO values:MAP ): macro:MACRO\",\"tags\":[\"stack\"],\"since\":\"2.3.0\",\"OPB64name\":\"DEREF\"},\"DET\":{\"description\":\"Computes the [determinant](https://en.wikipedia.org/wiki/Determinant) of a matrix.\\n\\n@param `matrix` The matrix for which to compute the determinant.\\n\\n@param `det` The computed determinant.\\n\\n\",\"signature\":\"DET( matrix:MATRIX ): det:DOUBLE\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"DET\"},\"DIFFERENCE\":{\"description\":\"Computes the difference between two sets.\\n\\nThe `DIFFERENCE` function consumes two sets from the top of the stack and pushes back its mathematical difference (ie: the elements in *A* but not in *B*).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* - *B*, the set of elements in *A* but not in *B*\\n\\n\",\"signature\":\"DIFFERENCE( setA:SET setB:SET ): output:SET\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"DIFFERENCE\"},\"DISCORDS\":{\"description\":\"The `DISCORDS` function detects discords in a Geo Time Series™. The discord detection algorithm is based on identifying outlier patterns in\\nthe Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `DISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0\\n\\n@param `overlapping` Flag indicating whether or not the `DISCORDS` function should report overlapping discords\\n\\n@param `maximum` The maximum number of discords to identify\\n\\n@param `lresult` The list of Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `result` The Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n\",\"signature\":\"DISCORDS( lgts:LIST<GTS> wsize:LONG length:LONG scale:LONG maximum:LONG overlapping:BOOLEAN distance:DOUBLE ): lresult:LIST<GTS>\\nDISCORDS( gts:GTS wsize:LONG length:LONG scale:LONG maximum:LONG overlapping:BOOLEAN distance:DOUBLE ): result:GTS\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"DISCORDS\"},\"DOC\":{\"description\":\"Consumes the String on the stack or leave it there and stop the script if the stack is currently in documentation mode ([`DOCMODE`](/doc/DOCMODE)) \\n\\nYou can use it to document macros.\\n\\n@param `string` Text to display in [`DOCMODE`](/doc/DOCMODE)\\n\\n\",\"signature\":\"DOC( string:STRING ): string:STRING\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOC\"},\"DOCMODE\":{\"description\":\"Toggle the 'documentation mode' of the stack\\n\\n\",\"signature\":\"\",\"tags\":[\"help\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOCMODE\"},\"DOUBLEBITS->\":{\"description\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the **LONG** value as the raw bits of the **DOUBLE**\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"signature\":\"DOUBLEBITS->( input:LONG ): result:DOUBLE\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"G3xKFZl4FZ_JJmoy\"},\"DOUBLEEXPONENTIALSMOOTHING\":{\"description\":\"The `DOUBLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Double Exponential Smoothing aka Holt's linear trend method](https://www.otexts.org/fpp/7/2) formula.\\n\\nIt consumes three parameters from the top of the stack:\\n * A trend smoothing factor beta (a numeric parameter between 0 < beta < 1)\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** and levels are pushed onto the stack (in this order in the **LIST**).\\n\\n@param `beta` The trend smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The list within the smoothed Geo Time Series™ and its levels\\n\\n\",\"signature\":\"DOUBLEEXPONENTIALSMOOTHING( gts:GTS alpha:DOUBLE beta:DOUBLE ): result:LIST<GTS>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"DOUBLEEXPONENTIALSMOOTHING\"},\"DROP\":{\"description\":\"The `DROP` function removes the element at the top of the stack.\\n\\n@param `input` object reference to drop from the top of the stack.\\n\\n\",\"signature\":\"DROP( input:ANY ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROP\"},\"DROPN\":{\"description\":\"The `DROPN` function removes the top N elements of the stack after having consumed N which was on the top of the stack prior to calling `DROPN`.\\n\\n@param `number` The number of elements to drop\\n\\n\",\"signature\":\"DROPN( number:NUMBER ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DROPN\"},\"DTW\":{\"description\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"signature\":\"DTW( gts1:GTS gts2:GTS threshold:DOUBLE ): dtw:DOUBLE\\nDTW( gts1:GTS gts2:GTS threshold:DOUBLE characteristic:STRING ): dtw:DOUBLE\\nDTW( gts1:GTS gts2:GTS threshold:DOUBLE distance:STRING characteristic:STRING ): dtw:DOUBLE\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"DTW\"},\"DUP\":{\"description\":\"The `DUP` function duplicates the element on the top of the stack, it doesn’t copy the content. If you apply DUP to a GTS you will\\nhave two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `input` any parameter on top of the stack\\n\\n@param `out` a reference copy of input on top of the stack\\n\\n\",\"signature\":\"DUP( input:ANY ): input:ANY out:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUP\"},\"DUPN\":{\"description\":\"The `DUPN` function duplicates the top N elements of the stack after having consumed N which is on the top of the stack when calling `DUPN`.\\n\\nAs the [`DUP`](/doc/DUP) function, `DUPN` duplicates the references of the N elements on the top of the stack, it doesn’t copy the elements.\\nIf you apply `DUPN` to a GTS you will have two references to the same GTS object on the stack.\\n\\nIf you want to make a deep copy of a GTS, i.e. if you want to copy the content and not only the reference, you can use the [`CLONE`](/doc/CLONE) function.\\n\\n@param `number` The number of elements to duplicate\\n\\n\",\"signature\":\"DUPN( number:NUMBER ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"DUPN\"},\"DURATION\":{\"description\":\"The `DURATION` function consumes a **STRING** representing an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) and pushes back a **LONG** duration in platform time unit.\\n\\nThe ISO 8601 duration can be expessed as `PwWdDThHmMsS` with:\\n- `w` weeks\\n- `d` days\\n- `h` hours\\n- `m` minutes\\n- `s` or `s.ssssss...` seconds\\nEach of these values can be either positive or negative. Each value/unit couple can be omitted if the value is zero but at least one value/couple should be defined.\\n\\nIf the consumed ISO 8601 duration has precision under platform time unit, superfluous digits will be ignored. Prior to revision 2.4, precision below milliseconds were always ignored, independently of platform time unit.\\n\\n@param `isoDuration` A representation of a ISO 8601 duration with some limitations, see the description.\\n\\n@param `duration` Number of platform time unit corresponding to the duration.\\n\\n\",\"signature\":\"DURATION( isoDuration:STRING ): duration:LONG\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"DURATION\"},\"DWTSPLIT\":{\"description\":\"The `DWTSPLIT` function splits a Geo Time Series™ produced by [`FDWT`](/doc/FDWT) into multiple series, one per resolution level of the Wavelet transform.\\n\\n\\n@param `label-name` Label name used in the generated series to indicate the level of each Geo Time Series™\\n\\n@param `gts` GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `lgts` List of GTS produced by [`FDWT`](/doc/FDWT)\\n\\n@param `result` Splited GTS\\n\\n@param `lresult` List of splited GTS\\n\\n\",\"signature\":\"DWTSPLIT( gts:GTS label-name:STRING ): result:GTS\\nDWTSPLIT( lgts:LIST<GTS> label-name:STRING ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"DWTSPLIT\"},\"E\":{\"description\":\"Alias of [e](/doc/OF).\\n\\nThe `E` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"signature\":\"E(): eValue:DOUBLE\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"GF\"},\"ECDH\":{\"description\":\"The `ECDH` function uses the [Elliptic-curve Diffie–Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) key agreement protocol to establish a secret.\\n\\nThe secret is derived from two ECC keys, one public, one private. This secret can be established independently by two parties who only need to share their ECC public keys and combine them with their private keys.\\n\\nThe public and private keys must use the same curve.\\n\\n@param `public` ECC public key.\\n\\n@param `private` ECC private key.\\n\\n@param `secret` Hex encoded secret.\\n\\n\",\"signature\":\"ECDH( private:KEY public:KEY ): secret:STRING\",\"tags\":[\"crypto\"],\"since\":\"2.7.2\",\"OPB64name\":\"ECDH\"},\"ECGEN\":{\"description\":\"The `ECGEN` function generates a public/private key pair parameters suitable for performing [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography).\\n\\nThe resulting parameters can serve as input to [`ECPRIVATE`](/doc/ECPRIVATE) and [`ECPUBLIC`](/doc/ECPUBLIC) to generate the actual private and public keys.\\n\\nThe following curves are supported:\\n\\n`c2pnb272w1`, `c2tnb191v3`, `c2pnb208w1`, `c2tnb191v2`, `c2tnb191v1`, `prime192v3`, `c2tnb359v1`, `prime192v2`, `prime192v1`, `c2tnb239v3`, `c2pnb163v3`, `c2tnb239v2`, `c2pnb163v2`, `c2tnb239v1`, `c2pnb163v1`, `c2pnb176w1`, `prime256v1`, `c2pnb304w1`, `c2pnb368w1`, `c2tnb431r1`, `prime239v3`, `prime239v2`, `prime239v1`, `sect233r1`, `secp112r2`, `secp112r1`, `secp256k1`, `sect113r2`, `secp521r1`, `sect113r1`, `sect409r1`, `secp192r1`, `sect193r2`, `sect131r2`, `sect193r1`, `sect131r1`, `secp160k1`, `sect571r1`, `sect283k1`, `secp384r1`, `sect163k1`, `secp256r1`, `secp128r2`, `secp128r1`, `secp224k1`, `sect233k1`, `secp160r2`, `secp160r1`, `sect409k1`, `sect283r1`, `sect163r2`, `sect163r1`, `secp192k1`, `secp224r1`, `sect239k1`, `sect571k1`, `B-163`, `P-521`, `P-256`, `B-233`, `P-224`, `B-409`, `P-384`, `B-283`, `B-571`, `P-192`, `brainpoolp512r1`, `brainpoolp384t1`, `brainpoolp256r1`, `brainpoolp192r1`, `brainpoolp512t1`, `brainpoolp256t1`, `brainpoolp224r1`, `brainpoolp320r1`, `brainpoolp192t1`, `brainpoolp160r1`, `brainpoolp224t1`, `brainpoolp384r1`, `brainpoolp320t1`, `brainpoolp160t1`\\n\\n@param `curve` Name of the elliptic curve to use.\\n\\n@param `public` Map containing the public key parameters.\\n\\n@param `private` Map containing the private key parameters.\\n\\n\",\"signature\":\"ECGEN( curve:STRING ): private:MAP public:MAP\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECGEN\"},\"ECHOOFF\":{\"description\":\"Turns off the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"ECHOOFF(): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOOFF\"},\"ECHOON\":{\"description\":\"Turns on the automatic display of topmost stack levels after each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of topmost stack levels to display after each WarpScript™ line, truncated if floating-point.\\n\\n\",\"signature\":\"ECHOON( levels:NUMBER ): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"ECHOON\"},\"ECPRIVATE\":{\"description\":\"The `ECPRIVATE` function generates a private key from private key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\n@param `private` Map containing ECC private key parameters.\\n\\n@param `key` ECC private key.\\n\\n\",\"signature\":\"ECPRIVATE( private:MAP ): key:KEY\\nECPRIVATE( key:KEY ): private:MAP\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPRIVATE\"},\"ECPUBLIC\":{\"description\":\"The `ECPUBLIC` function generates a public key from public key parameters generated by [`ECGEN`](/doc/ECGEN) and vice versa.\\n\\nThe function can also produce a public key from a private key produced by [`ECPRIVATE`](/doc/ECPRIVATE).\\n\\n@param `private` Private key generated by `ECPRIVATE`.\\n\\n@param `public` Map containing ECC public key parameters.\\n\\n@param `key` ECC public key.\\n\\n\",\"signature\":\"ECPUBLIC( public:MAP ): key:KEY\\nECPUBLIC( key:KEY ): public:MAP\\nECPUBLIC( private:KEY ): key:KEY\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECPUBLIC\"},\"ECRECOVER\":{\"description\":\"The `ECRECOVER` function allows to infer from a hash and an associated [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) signature a list of public keys whose associated private keys may have generated the signature. From those candidate keys and some additional information, for example a [bitcoin](https://en.bitcoin.it/wiki/Invoice_address) or [Ethereum](https://en.wikipedia.org/wiki/Ethereum#Addresses) address, one can identify the correct public key whose companion private key signed the hash.\\n\\nThe function takes as input a parameter map with the following elements:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `curve` | The name of the ECC curve used by the key to recover. |\\n| `hash` | Byte array of the hash which was signed. |\\n| `sig` | Byte array of the signature, as generated by [`ECSIGN`](/doc/ECSIGN). |\\n| `coords` | Optional boolean flag indicating whether or not to return the coordinates of the `R` point. |\\n\\n@param `params` Parameter map. See description of keys above.\\n\\n@param `keys` List of candidate public keys. The list contains the `Q` public keys or maps with `Q` and the `R.x` and `R.y` coordinates of the `R` point computed during the signature process. Those `Q` public keys can be converted to a map format using [`ECPUBLIC`](/doc/ECPUBLIC).\\n\\n\",\"signature\":\"ECRECOVER( params:MAP ): keys:LIST<KEY>\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"ECRECOVER\"},\"ECSIGN\":{\"description\":\"The `ECSIGN` function generates a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) private key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Content to sign.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `private` Private key to use for signining.\\n\\n@param `signature` Resulting signature.\\n\\n\",\"signature\":\"ECSIGN( data:BYTES alg:STRING private:KEY ): signature:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECSIGN\"},\"ECVERIFY\":{\"description\":\"The `ECVERIFY` function verifies a cryptographic signature using an [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) public key.\\n\\nThe supported signature algorithms are those related to ECC by [Bouncy Castle](https://www.bouncycastle.org/):\\n\\n```\\nECDSAWITHSHA1\\nSHA1WITHECDSA\\nSHA224WITHECDSA\\nSHA256WITHECDSA\\nSHA384WITHECDSA\\nSHA512WITHECDSA\\n```\\n\\n@param `data` Signed data.\\n\\n@param `alg` Signing algorithm to use.\\n\\n@param `public` Public key to use for verification.\\n\\n@param `signature` Signature to verify.\\n\\n@param `result` Validity of the signature.\\n\\n\",\"signature\":\"ECVERIFY( data:BYTES signature:BYTES alg:STRING public:KEY ): result:BOOLEAN\",\"tags\":[\"crypto\"],\"since\":\"2.6.0\",\"OPB64name\":\"ECVERIFY\"},\"EIP712.HASH\":{\"description\":\"Computes the hash of a typed structure conforming to [EIP-712](https://eips.ethereum.org/EIPS/eip-712).\\n\\n@param `structure` EIP-712 conformant structure to hash.\\n\\n@param `hash` Hash of the structure. Can be used to verify signature using `ETH.VERIFY`.\\n\\n\",\"signature\":\"EIP712.HASH( structure:MAP ): hash:BYTES\",\"tags\":[\"extensions\"],\"OPB64name\":\"EIP712.HASH\"},\"ELAPSED\":{\"description\":\"The `ELAPSED` function pushes onto the stack a list containing timing informations. The first element of the list is the timestamp at which \\nthe script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution \\nof the associated script line.\\n\\nTiming informations are only collected after a call to [`TIMINGS`](/doc/TIMINGS) (its line included) and before a call to [`NOTIMINGS`](/doc/NOTIMINGS)\\n (its line excluded).\\n\\n@param `result` The first element of the list is the timestamp at which the script was started (in ns). The other elements are the elapsed nanoseconds from the beginning of the script to the end of the execution of the associated script line.\\n\\n\",\"signature\":\"ELAPSED(): result:LIST<LONG>\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELAPSED\"},\"ELEVATIONS\":{\"description\":\"The `ELEVATIONS` function consumes a Geo Time Series™ or a list thereof from the stack, extracts its elevations, puts them in a list and pushes the list onto the stack.\\n\\n@param `gts` The Geo Time Series™ from which to extract the elevations\\n\\n@param `lgts` The list of Geo Time Series™ from which to extract the elevations\\n\\n@param `elevations` The elevations of the given Geo Time Series™\\n\\n@param `lelevations` The list of elevations of the given Geo Time Series™\\n\\n\",\"signature\":\"ELEVATIONS( gts:GTS ): elevations:LIST<LONG>\\nELEVATIONS( lgts:LIST<GTS> ): lelevations:LIST<LIST<LONG>>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"ELEVATIONS\"},\"EMPTY\":{\"description\":\"Reject GTS instances with values.\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of GTS with empty values\\n\\n\",\"signature\":\"EMPTY( gtsList:LIST<GTS> ): result:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"EMPTY\"},\"ENCODER->\":{\"description\":\"The `ENCODER->` functions convert an encoder into a list of ( timestamp, latitude, longitude, elevation, value ) list. It also pushes attributes, labels and name on the stack.\\nFunction also accepts wrapped or raw-wrapped encoders or gts.\\n\\nAn encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored. An encoder can also have a name, labels and attributes.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` Encoder input.\\n\\n@param `wrappedinput` Encoder or GTS after WRAP. \\n\\n@param `rawwrappedinput` Encoder or GTS after WRAPRAW.\\n\\n@param `output` List of list of ( timestamp, latitude, longitude, elevation, value ). Missing values in the encoder or GTS are replaced by NaN.\\n\\n@param `name` Name of encoder or GTS. If no name was defined, will be NULL.\\n\\n@param `attributes` Attributes of encoder or GTS input. If none defined, will be an empty map.\\n\\n@param `labels` Labels of encoder or GTS input. If none defined, will be an empty map.\\n\\n\",\"signature\":\"ENCODER->( encoder:GTSENCODER ): name:STRING attributes:MAP labels:MAP output:LIST\\nENCODER->( wrappedinput:STRING ): name:STRING attributes:MAP labels:MAP output:LIST\\nENCODER->( rawwrappedinput:BYTES ): name:STRING attributes:MAP labels:MAP output:LIST\",\"tags\":[\"encoder\",\"conversion\",\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"GJt2IoG4JXoy\"},\"ERROR\":{\"description\":\"Pushes onto the stack a list containing the current error (as caught by a [`TRY`](/doc/TRY)) and its causes. Each error is a map with the following fields:\\n\\n| Field | Description |\\n| --- | --- |\\n| type | Type of the error, the Java class of the underlying exception |\\n| message | The message associated with the error |\\n| stacktrace | A list of lists, each containing `filename`, `line number`, `class name`, `method name` |      \\n\\nThe current error is the first element of the list.\\n\\nIf there is no current error, the returned list will be empty.\\n\\n@param `error` List of maps describing the current error and its causes.\\n\\n\",\"signature\":\"ERROR(): error:LIST<MAP>\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ERROR\"},\"ESDTEST\":{\"description\":\"The `ESDTEST` function detects outliers in a GTS (or a **LIST** of GTS), by applying a [generalized extreme studentized deviate test](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h3.htm).\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nA [Grubbs’](/doc/GRUBBSTEST)test is done for one candidate at a time. Then, the candidate is removed from the set and another [Grubbs’](/doc/GRUBBSTEST)test\\nis performed. This process is iterated a given number of times. The detected outliers are the removed values and the current candidate of the last successful\\ntest.\\n\\nA **LIST** of ticks (or a **LIST** of **LIST** of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"signature\":\"ESDTEST( gts:GTS k:LONG mad:BOOLEAN alpha:DOUBLE ): result:LIST<LONG>\\nESDTEST( gts:GTS k:LONG mad:BOOLEAN ): result:LIST<LONG>\\nESDTEST( gtsList:LIST<GTS> k:LONG mad:BOOLEAN alpha:DOUBLE ): resultList:LIST<LIST<LONG>>\\nESDTEST( gtsList:LIST<GTS> k:LONG mad:BOOLEAN ): resultList:LIST<LIST<LONG>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ESDTEST\"},\"ETH.BIP32\":{\"description\":\"The `ETH.BIP32` function generates an ECC private key from a seed phrase, optional passphrase and derivation path.\\n\\n@param `seed` Valid (English) seed phrase to use for generating the ECC private key.\\n\\n@param `passphrase` Optional passphrase.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `key` Generated ECC private key.\\n\\n\",\"signature\":\"ETH.BIP32( { path:STRING passphrase:STRING seed:STRING  } ): key:KEY\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP32\"},\"ETH.BIP39\":{\"description\":\"The `ETH.BIP39` function validates a seed phrase according to the English [BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md) word list. The function will return the validated seed or throw an exception if validation failed.\\n\\n@param `seed` Seed phrase to validate.\\n\\n@param `validated` Validated seed phrase.\\n\\n\",\"signature\":\"ETH.BIP39( seed:STRING ): validated:STRING\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.BIP39\"},\"ETH.CALL\":{\"description\":\"The `ETH.CALL` function generates a transaction payload which represents a smart contract function call.\\n\\n@param `abi` `MAP` containing the description of the endpoint to call, as generated by `ABI->`.\\n\\n@param `args` `LIST` of arguments to the call, in the order in which they appear in the function signature.\\n\\n@param `margs` `MAP` of argument names to values. The function arguments will be extracted from this `MAP` based on their name.\\n\\n@param `payload` Hex encoded payload representing the function call.\\n\\n\",\"signature\":\"ETH.CALL( args:LIST abi:MAP ): payload:STRING\\nETH.CALL( margs:MAP abi:MAP ): payload:STRING\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.CALL\"},\"ETH.KEY\":{\"description\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `private` ECC private `KEY`. If not set, then `seed` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `result` Extracted public and private key and associated Ethereum address.\\n\\n\",\"signature\":\"ETH.KEY( { path:STRING passphrase:STRING seed:STRING private:KEY  } ): result:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.KEY\"},\"ETH.LOG\":{\"description\":\"The `ETH.RETURN` function decodes a log entry from a transaction receipt.\\n\\n@param `abi` `MAP` containing the description of the `event` to decode.\\n\\n@param `log` Log entry to decode. Typically a `MAP` from the `log` list present in a transaction receipt returned by `ETH.RECEIPT`.\\n\\n@param `result` Decoded event.\\n\\n\",\"signature\":\"ETH.LOG( log:MAP abi:MAP ): result:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.LOG\"},\"ETH.NONCE\":{\"description\":\"The `ETH.NONCE` function retrieves the latest used nonce for a given address from a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce. Defaults to `http://localhost:3545/`.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path`, or `address` must be set.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address whose nonce must be retrieved. If unset, use `seed` or `private`.\\n\\n@param `nonce` The nonce retrieved from the blockchain for the given address.\\n\\n\",\"signature\":\"ETH.NONCE( { private:KEY passphrase:STRING path:STRING seed:STRING address:STRING url:STRING  } ): nonce:STRING\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.NONCE\"},\"ETH.RECEIPT\":{\"description\":\"The `ETH.RECEIPT` function retrieves a transaction receipt from a network node.\\n\\n@param `txid` Id of the transaction whose receipt should be retrieved.\\n\\n@param `url` URL of the blockchain node to query.\\n\\n@param `receipt` Receipt of the transaction as stored in the blockchain.\\n\\n\",\"signature\":\"ETH.RECEIPT( { url:STRING txid:STRING  } ): receipt:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RECEIPT\"},\"ETH.RETURN\":{\"description\":\"The `ETH.RETURN` function decodes the encoded return value of a function call (obtained via `ETH.CALL` and `ETH.TXN`).\\n\\n@param `abi` `MAP` containing the description of the `function` return value or `error` to decode, as generated by `ABI->`.\\n\\n@param `value` Hex encoded return value to decode.\\n\\n@param `result` Decoded `value`.\\n\\n\",\"signature\":\"ETH.RETURN( value:STRING abi:MAP ): result:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.RETURN\"},\"ETH.TXN\":{\"description\":\"The `ETH.TXN` function allows to perform various actions related to Ethereum/EVM transactions.\\n\\nIt can retrieve a transaction from a network node, generate raw or signed transactions and optionally submit transactions to a network node.\\n\\n@param `url` `URL` of the network node to use for retrieving the nonce, if none was given, and sending the transaction or function call. Defaults to `http://localhost:3545/`.\\n\\n@param `raw` Raw transaction, hex encoded with `0x` prefix. This is mutually exclusive with the `MAP` returned when `send` is `true`.\\n\\n@param `data` Call data to include in the transaction. This is either `BYTES` or a `STRING`. The `STRING` is assumed to be hex encoded if it starts with `0x`, otherwise its `UTF-8` encoding is used.\\n\\n@param `to` Ethereum address or ECC public `KEY` of the recipient.\\n\\n@param `value` Value (in `wei`) associated with the transaction. Can be expressed as a `LONG` or as a `STRING` for large values.\\n\\n@param `private` ECC private `KEY` to use for signing the transaction. If this is not set, then `seed` and possibly `passphrase` and `path` must be set, except for calls where `address` can simply be specified since no signing takes place.\\n\\n@param `seed` Seed phrase used to generate the [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) master key. The `STRING` is used as is, make sure to use `ETH.BIP39` is you want to ensure the `STRING` only uses valid BIP-39 words.\\n\\n@param `passphrase` Passphrase to use jointly with `seed` to generate the ECC private key.\\n\\n@param `path` HD-Wallet derivation path, defaults to `m/44'/60'/0'/0/0`.\\n\\n@param `address` Ethereum address of the calling party, can only be used when `call` is `true` since calls do not require signing.\\n\\n@param `nonce` `nonce` value to use for the transaction. If not set `ETH.TXN` will attempt to retrieve the last used nonce from the blockchain.\\n\\n@param `chainid` Chain ID to use for encoding the transaction. Defaults to `0`.\\n\\n@param `gaslimit` Maximum amount of gas that can be spent when submitting the transaction. Defaults to `21000` which is sufficient for an Ether tranfer.\\n\\n@param `gasprice` Maximum gas price per gas unit, expressed in `wei`. This is for legacy transactions.\\n\\n@param `maxfeepergas` Maximum base + priority fee, as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 2,000,000,000 `wei`, *i.e.* 2 `gwei`.\\n\\n@param `maxpriorityfeepergas` Maximum priority fee (tip), as per EIP-1559, per gas unit. Expressed in `wei`. Defaults to 1,000,000,000 `wei`, *i.e.* 1 `gwei`.\\n\\n@param `sign` Flag indicating whether or not to sign the transaction. If set to `true` then `private` or `seed` must be set.\\n\\n@param `send` Flag indicating whether or not to submit the transaction to a network node.\\n\\n@param `txid` The transaction id (TxID, or transaction hash) of the submitted transaction.\\n\\n@param `call` Flag indicating if the *transaction* is really a function call.\\n\\n@param `response` The raw response returned by the network node. Hex encoded.\\n\\n@param `result` A `MAP` containing the result of the operation. Content will depend on the actual input parameters.\\n\\n@param `txn` A `MAP` containing retrieved transaction infos.\\n\\n\",\"signature\":\"ETH.TXN( { txid:STRING url:STRING  } ): txn:MAP\\nETH.TXN( { to:STRING private:KEY passphrase:STRING path:STRING seed:STRING address:STRING data:BYTES call:BOOLEAN url:STRING  } ): result:MAP\\nETH.TXN( { send:BOOLEAN sign:BOOLEAN maxpriorityfeepergas:LONG maxfeepergas:LONG gaslimit:LONG chainid:LONG nonce:LONG path:STRING seed:STRING private:KEY value:LONG to:STRING data:STRING raw:BYTES url:STRING  } ): raw:STRING { txid:STRING' txid:undefined \\n\\n response:STRING' response:undefined \\n\\n }\\nETH.TXN( { send:BOOLEAN sign:BOOLEAN gasprice:LONG gaslimit:LONG chainid:LONG nonce:LONG path:STRING seed:STRING private:KEY value:LONG to:STRING data:STRING raw:BYTES url:STRING  } ): raw:STRING { txid:STRING' txid:undefined \\n\\n response:STRING' response:undefined \\n\\n }\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.TXN\"},\"ETH.VERIFY\":{\"description\":\"Verify an ECDSA signature and extracts the signing public key and the associated address.\\n\\nIf the signature cannot be verified, an exception is thrown.\\n\\n@param `signature` Ethereum ECDSA signature to verify.\\n\\n@param `hash` Signed hash.\\n\\n@param `result` Map containing the signing public key and associated address.\\n\\n\",\"signature\":\"ETH.VERIFY( hash:BYTES signature:BYTES ): result:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"ETH.VERIFY\"},\"EVAL\":{\"description\":\"The `EVAL` function evaluates the statements contained in the string at the top of the stack as if they had been entered individually or runs the macro at the top os the stack.\\n\\n@param `string` String to evaluate\\n\\n@param `macro` Macro to run\\n\\n@param `function` Function to run\\n\\n\",\"signature\":\"EVAL( macro:MACRO ): \\nEVAL( string:STRING ): \\nEVAL( function:FUNCTION ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVAL\"},\"EVALSECURE\":{\"description\":\"The `EVALSECURE` function executes a secure script. The script must have been created on a platform with the same secure script cryptographic key as the current platform (note that this is not the *secret* set using [`SECUREKEY`](doc/SECUREKEY)).\\n\\n@param `secure` String containing the secure script to execute.\\n\\n@param `return` The return values depend on the actual code of the secure script.\\n\\n\",\"signature\":\"EVALSECURE( secure:STRING ): return:ANY\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVALSECURE\"},\"EVERY\":{\"description\":\"When called via the `/mobius` endpoint, the `EVERY` function sets the repeat interval for the preceding macro. This interval is in milliseconds.\\n\\nWhen called outside of `/mobius`, the `EVERY` function simply executes the macro.\\n\\n@param `repeat` The repeat interval to enforce, in milliseconds.\\n\\n@param `macro` The macro to execute.\\n\\n\",\"signature\":\"EVERY( macro:MACRO repeat:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"EVERY\"},\"EXP\":{\"description\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a floating point value x consumed from the top of the stack,\\n i.e. e<sup>x</sup>.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List where each value is e<sup>x</sup>\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>, for x in the the given GTS values\\n\\n\",\"signature\":\"EXP( value:NUMBER ): result:DOUBLE\\nEXP( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nEXP( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXP\"},\"EXPM1\":{\"description\":\"The `EXP` function pushed on the stack the Euler’s number [`e`](/doc/OF) raised to the power of a DOUBLE value x consumed from the top of the stack then subtracts one, i.e. e<sup>x</sup>-1.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Power to raise e to\\n\\n@param `result` e<sup>x</sup>-1\\n\\n@param `lvalue` List of power to raise e to\\n\\n@param `lresult` List of e<sup>x</sup>-1\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are e<sup>x</sup>-1, for x in the the given GTS values\\n\\n\",\"signature\":\"EXPM1( value:NUMBER ): result:DOUBLE\\nEXPM1( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nEXPM1( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"EXPM1\"},\"EXPORT\":{\"description\":\"The `EXPORT` function allows you to set or update a list of symbols which will be dumped upon script termination. This proves handy when \\ndebugging a script as you can visualize, even in the case of errors, the value of specific symbols.\\n\\nThe function expects either a symbol name (a **STRING**) which will be added to the current list of exported symbols, a list of symbol \\nname which will replace the current list of exported symbols, an empty list to disable symbol export altogether, or a list with a single\\n**NULL** element to instruct the WarpScript engine to export all existing symbols.\\n\\nWhen symbols should be exported, the debug mode is implied (see [`DEBUGON`](/doc/DEBUGON)).\\n\\n@param `symbol` Symbol name\\n\\n@param `symbols` List of symbols\\n\\n\",\"signature\":\"EXPORT( symbol:STRING ): \\nEXPORT( symbols:LIST ): \",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.2\",\"OPB64name\":\"EXPORT\"},\"EXTLOADED\":{\"description\":\"Checks if a WarpScript extension is loaded or not and therefore available.      \\n\\n@param `ext` Name of extension to check.\\n\\n@param `loaded` Boolean indicating whether or not the specified extension is loaded in the WarpScript environment.\\n\\n\",\"signature\":\"EXTLOADED( ext:STRING ): loaded:BOOLEAN\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"EXTLOADED\"},\"F\":{\"description\":\"`F` stand for `false`. It is a boolean constant.\\n\\n\\n@param `b` false\\n\\n\",\"signature\":\"F(): b:BOOLEAN\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"F\"},\"FAIL\":{\"description\":\"The `FAIL` function stops the execution of the WarpScript scripts by throwing an exception.\\n\\n\",\"signature\":\"\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FAIL\"},\"FDWT\":{\"description\":\"The `FDWT` function performs a [Forward Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Fast_wavelet_transform#Forward_DWT) on a Geo Time Series™.\\n\\nA number of different [Wavelets](https://en.wikipedia.org/wiki/Wavelet) are available, the list is inspired by that available on \\nthe [Wavelet Browser](http://wavelets.pybytes.com/).\\n\\nThe list of Wavelets which can be used is the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\nThe FDWT can only be applied to Geo Time Series™ with a number of values which is a power of 2.\\n\\nAssuming the input GTS has 2<sup>n</sup> values, the result of the FDWT transformation is a GTS with 2<sup>n</sup> values (the wavelet coefficients) with timestamps from 0 to 2<sup>n</sup>-1.\\n\\nThe ticks of the `n` levels are contiguous, with the first tick being for level `n`, the next 2 for level `n-1`, the next 4 for level `n-2`, up to the last 2<sup>n-1</sup> for level 1.\\n\\nLevel 1 has the finest time resolution but the coarsest frequency resolution. Each level has half (coarser) the time resolution and double (finer) the frequency resolution as the previous level.\\n\\n@param `wavelet` Name of wavelet to use for the transformation.\\n\\n@param `gts` Geo Time Series™ instance on which to perform the FDWT.\\n\\n@param `lgts` List of Geo Time Series™ on which to apply the FDWT.\\n\\n@param `fdwt` Transformed Geo Time Series™.\\n\\n@param `lfdwt` List of transformed Geo Time Series™.\\n\\n\",\"signature\":\"FDWT( gts:GTS wavelet:STRING ): fdwt:GTS\\nFDWT( lgts:LIST<GTS> wavelet:STRING ): lfdwt:LIST<GTS>\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FDWT\"},\"FETCH\":{\"description\":\"The `FETCH` function interacts with the Warp 10 Storage Engine to retrieve data according to given criteria.\\n\\n`FETCH` either accepts a list of 5 parameters or a map with the parameters. Those are defining the **read access rights**, the **concerned Geo Time Series** and the **time window**. Other parameters in the map input are optional. \\n\\nThe list input is here to keep backward compatibility with old WarpScripts. The map input allows a great flexibility, as described below.\\n\\n### Access rights\\nA valid read token is needed to read data with fetch. If you use a [metaset](/doc/METASET) and also specify a token, the token included in the metaset will be ignored.\\n\\n### Concerned Geo Time Series\\n`FETCH` selects Geo Time Series according to:\\n+ The `selectors` parameter, which is a list of selector.\\n+ If `selectors` is not found, `FETCH` uses the `selector` parameter which is a single selector.\\n+ If `selector` is not found, `FETCH`  uses both `class` and `labels` parameters.  \\n\\n### Time window\\n`FETCH`  begins from the newest value and stop when the oldest value is collected. Thus, `end` must be defined in your request and defines the newest included value in your time window. If `end` is anterior to your oldest value, the result will be empty (no Geo Time Series). The span of the time window ending at `end` is then defined according to:\\n+ The `timespan` parameter.\\n+ If `timespan` is not defined, `FETCH` collects a maximum of `count` point.\\n+ If `count` is not defined, `FETCH` determines `timespan` with `start`. If `start` is more recent than `end`, `end` and `start` are permuted internally. Both `start` and `end` are included in the time window.\\n\\n### Boundaries\\nSince version 2.3.0, you can define *boundaries* around the requested data. When fetching data based on a time range, both a *pre* and *post* boundaries can be specified. When fetching by count, only a *pre* boundary can be requested.\\nBoundaries are a number of datapoints which are either before (*pre* boundary) or after (*post* boundary) the fetched data. Fetching boundaries is very useful when storing only the changes of values as they enable you to always fetch datapoints even if the requested time range does not contain any. They can also be used to fetch the first `N` datapoints after a given timestamp.\\nNote that fetching *post* boundaries is less efficient than fetching the requested range or a *pre* boundary as the data has to be scanned in reverse order which has an impact on I/Os and ultimately on performance.\\n\\n### Sampling options\\n+ Since version 2.3.0, you can randomly sample points with the `sample` parameter. If `sample` equals 0.1, `FETCH` will randomly return one point out of ten. This implementation is the fastest way to resample data.\\n+ Since version 2.3.0, you can `skip` the N newest datapoints in the time window specified.\\n\\n### Query without looking into directory\\nThe fetch time to read one gts among millions of gts recorded with the same classname, the same application and the same owner can take time. Use the `gts` parameter to select if you exactly know the classname and all the labels.\\n\\nIf you want to read only Geo Time Series attributes or labels, using [FIND](/doc/FIND) is more efficient than fetching the last value.\\n\\n### FETCH availability \\nYou cannot use FETCH within macro unit tests. When macro are loaded, directory and storage are not ready yet, so you will have a null pointer exception during macro loading. To build your unit tests, [WRAP](/doc/WRAP) your data and use [UNWRAP](/doc/UNWRAP) from a string instead of fetch.\\n\\n\\n@param `token` Read token to use to fetch the data.\\n\\n@param `class` Selector for the GTS classes. Can either be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `labels` Map of labels selectors. The key is the label name, the value a selector which can be an exact match or a regular expression (the value should then start with a *~*).\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `gts` Explicit list of Geo Time Series™ to fetch. The class and labels will be used as is and not serve as selectors.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `extra` List of extraneous classes to fetch. For each GTS matching the selection criteria, GTS with those extra class names will be fetched too (with the *exact* same set of labels).\\n\\n@param `metaset` A set of Geo Time Series™ produced by the [`METASET`](/doc/METASET) function.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `end` Newest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `start` Oldest timestamp to consider when fetching datapoints. In platform time unit or [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601).\\n\\n@param `timespan` Depth to consider when fetching the datapoints. If the value is positive then it is interpreted as a duration in time units, if it is negative then as the maximum number of datapoints to fetch. If negative, incompatible with 'count'.\\n\\n@param `count` Maximum number of datapoints to fetch for each GTS. Incompatible with negative 'timespan'.\\n\\n@param `boundary` Number of datapoints to include in both *pre* and *post* boundaries.\\n\\n@param `boundary.pre` Number of datapoints in the *pre* boundary.\\n\\n@param `boundary.post` Number of datapoints in the *post* boundary.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer, which is the most efficient.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n@param `encoders` Whether to return **GTSENCODER** or **GTS**. Defauts to False.\\n\\n@param `merge` Whether to merge or not the splitted encoders because they exceed *max.encoder.size* or *standalone.max.encoder.size*. Defaults to True.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `type` Name of type to force for the GTS, either LONG, DOUBLE, BOOLEAN or STRING.\\n\\n@param `typeattr` Name of label to use for storing the GTS type. This option is incompatible with 'type', when set values of different types are ventilated in separate GTS with the same set of class and labels and an additional *type* label of the given name.\\n\\n@param `wtimestamp` Whether to return or not the HBase cell timestamp instead of the value. Only for distributed instances, defaults to False.\\n\\n@param `ttl` Whether to return or not the HBase cells TTL instead of the value. Only for distributed instances, defaults to False. Only works if KeyValueCodecWithTags codec is enabled.\\n\\n@param `data` List of fetched Geo Time Series or **GTSECODERS**.\\n\\n@param `gskip` Number of GTS to skip before considering GTS.\\n\\n@param `gcount` Maximum number of GTS to consider.\\n\\n\",\"signature\":\"FETCH( [ token:STRING class:STRING labels:MAP end:LONG timespan:LONG ] ): data:LIST<GTS>\\nFETCH( [ token:STRING class:STRING labels:MAP start:STRING end:STRING ] ): data:LIST<GTS>\\nFETCH( { gcount:LONG gskip:LONG ttl:BOOLEAN wtimestamp:BOOLEAN typeattr:STRING type:STRING showuuid:BOOLEAN merge:BOOLEAN encoders:BOOLEAN skip.count:LONG sampling.ratio:DOUBLE timestep:LONG step:LONG boundary.post:LONG boundary.pre:LONG boundary:LONG count:LONG timespan:LONG start:STRING end:LONG priority:LIST<STRING> metaset:STRING extra:LIST<STRING> active.after:LONG quiet.after:LONG gts:LIST<GTS> selectors:LIST<STRING> selector:STRING labels:MAP class:STRING token:STRING  } ): data:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCH\"},\"FETCHBOOLEAN\":{\"description\":\"The `FETCHBOOLEAN` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type BOOLEAN.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"FETCHBOOLEAN( linput:LIST ): data:LIST<GTS>\\nFETCHBOOLEAN( minput:MAP ): data:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHBOOLEAN\"},\"FETCHDOUBLE\":{\"description\":\"The `FETCHDOUBLE` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type DOUBLE.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"FETCHDOUBLE( linput:LIST ): data:LIST<GTS>\\nFETCHDOUBLE( minput:MAP ): data:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHDOUBLE\"},\"FETCHLONG\":{\"description\":\"The `FETCHLONG` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type LONG.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"FETCHLONG( linput:LIST ): data:LIST<GTS>\\nFETCHLONG( minput:MAP ): data:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHLONG\"},\"FETCHSTRING\":{\"description\":\"The `FETCHSTRING` function behaves just like [`FETCH`](doc/FETCH) but forces the resulting Geo Time Series™ to be of type STRING.\\n\\nPlease read the [`FETCH`](doc/FETCH) documentation for the detailed usage.\\n\\n@param `linput` List of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `minput` Map of parameters, see [`FETCH`](doc/FETCH) documentation\\n\\n@param `data` List of fetched Geo Time Series™.\\n\\n\",\"signature\":\"FETCHSTRING( linput:LIST ): data:LIST<GTS>\\nFETCHSTRING( minput:MAP ): data:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FETCHSTRING\"},\"FFT\":{\"description\":\"The `FFT` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFT` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe real parts of the `FFT` coefficients, the second the imaginary parts. The scale factor is equal to X/(n * bucketspan) where n is the number\\nof elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the number\\nof values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFT` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the real parts of the `FFT` coefficients, the second the imaginary parts.\\n\\n\",\"signature\":\"FFT( gts:GTS ): result:LIST<GTS>\\nFFT( gtsList:LIST<GTS> ): result:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFT\"},\"FFTAP\":{\"description\":\"The `FFTAP` function computes a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) on a Geo Time Series™ or a list\\nthereof it expects on top of the stack.\\n\\nThe result of the `FFTAP` execution is a list of two Geo Time Series™ and a frequency scale factor per input GTS. The first resulting GTS contains\\nthe amplitude of the coefficient at that frequency and the second the associated phase. The scale factor is equal to X/(n * bucketspan) where n is\\nthe number of elements in the origin GTS and X is the number of time units per second. The ticks of those Geo Time Series™ are indices from 0 to the\\nnumber of values in the original series minus one. The frequency associated with each tick is tick * factor, with the exception of tick 0 which is n * factor.\\n\\n`FFTAP` can only be applied to [bucketized](/doc/BUCKETIZE) numerical Geo Time Series™ which contains a number of values which is a power of 2.\\n\\n@param `gts` Bucketized numerical GTS\\n\\n@param `gtsList` List of bucketized numerical GTS\\n\\n@param `result` List of GTS: The first resulting GTS contains the amplitude of the coefficient at that frequency and the second the associated phase.\\n\\n\",\"signature\":\"FFTAP( gts:GTS ): result:LIST<GTS>\\nFFTAP( gtsList:LIST<GTS> ): result:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FFTAP\"},\"FFTWINDOW\":{\"description\":\"The `FFTWINDOW` transforms Geo Time Series™ by applying a [window function](https://en.wikipedia.org/wiki/Window_function) to its values. The function supports the following windows:\\n\\n| Name | Window |\\n| --- | --- |\\n| `triangular` | [Triangular](https://en.wikipedia.org/wiki/Window_function#Triangular_window) |\\n| `parzen` | [Parzen](https://en.wikipedia.org/wiki/Window_function#Parzen_window) |\\n| `welch` | [Welch](https://en.wikipedia.org/wiki/Window_function#Welch_window) |\\n| `sine` | [Sine](https://en.wikipedia.org/wiki/Window_function#Sine_window) |\\n| `hann` | [Hann](https://en.wikipedia.org/wiki/Window_function#Hann_window) |\\n| `hamming` | [Hamming](https://en.wikipedia.org/wiki/Window_function#Hamming_window) |\\n| `blackman` | [Blackman](https://en.wikipedia.org/wiki/Window_function#Blackman_window) |\\n| `nuttall` | [Nuttall](https://en.wikipedia.org/wiki/Window_function#Nuttall_window,_continuous_first_derivative) | \\n| `blackman-nuttall` | [Blackman-Nuttall](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Nuttall_window) |\\n| `blackman-harris` | [Blackman-Harris](https://en.wikipedia.org/wiki/Window_function#Blackman%E2%80%93Harris_window) |\\n| `flattop` | [Flat top](https://en.wikipedia.org/wiki/Window_function#Flat_top_window) |\\n| `rectangular` | [Rectangular](https://en.wikipedia.org/wiki/Window_function#Rectangular_window) |\\n\\n@param `window` Name of the window function to apply.\\n\\n@param `gts` Single Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `windowed` Tranformed Geo Time Series™.\\n\\n@param `lwindowed` List of transformed Geo Time Series™.\\n\\n\",\"signature\":\"FFTWINDOW( gts:GTS window:STRING ): windowed:GTS\\nFFTWINDOW( lgts:LIST<GTS> window:STRING ): lwindowed:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"FFTWINDOW\"},\"FILL\":{\"description\":\"The `FILL` function fills missing values in two Geo Time Series™ so they end up with identical ticks.\\n\\nThe filling is done using a *filler* function which applies a given strategy. Filler functions can be created using macros via the [`MACROFILLER`](/doc/MACROFILLER) function.\\n\\n@param `gtsa` First Geo Time Series™ to fill.\\n\\n@param `gtsb` Second Geo Time Series™ to fill.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\"FILL( gtsa:GTS gtsb:GTS filler:FILLER ): gtsa:GTS gtsb:GTS\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"FILL\"},\"FILLNEXT\":{\"description\":\"The `FILLNEXT` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation of the \\nnext non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"signature\":\"FILLNEXT( gts:GTS ): result:GTS\\nFILLNEXT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLNEXT\"},\"FILLPREVIOUS\":{\"description\":\"The `FILLPREVIOUS` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance by re-using the value/location/elevation \\nof the previous non empty bucket to fill each empty bucket. It expects a GTS or a list thereof on the top of the stack.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n\",\"signature\":\"FILLPREVIOUS( gts:GTS ): result:GTS\\nFILLPREVIOUS( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLPREVIOUS\"},\"FILLTICKS\":{\"description\":\"The `FILLTICKS` function add values to a Geo Time Series™ instance or a list thereof for ticks in the given **LIST**.\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` Filled GTS\\n\\n@param `resultList` List of filled GTS\\n\\n@param `data` List of (latitude, longitude, elevation, ticks) where ticks is a list of ticks.\\n\\n\",\"signature\":\"FILLTICKS( gts:GTS data:LIST ): result:GTS\\nFILLTICKS( gtsList:LIST<GTS> data:LIST ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLTICKS\"},\"FILLVALUE\":{\"description\":\"The `FILLVALUE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with a fixed value/location/elevation.\\n\\nIt expects a GTS or a list thereof on the top of the stack after having consumed a list of parameters (latitude, longitude, elevation, value)\\nsitting on top of the stack prior to the call.\\n\\nLocation must be floating point numbers (e.g. 0.0 not 0). Elevation must be an integer. If no location or elevation should be set, **NaN** can\\nbe used instead of specific value.\\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n\\n\\nThe value is cast to the type of the GTS value\\n\\n@param `gts` The Geo Time Series™ to fill\\n\\n@param `gtsList` The list of Geo Time Series™ to fill\\n\\n@param `result` The filled Geo Time Series™\\n\\n@param `resultList` The list of filled Geo Time Series™\\n\\n@param `data` The list of parameters (latitude, longitude, elevation, value)\\n\\n\",\"signature\":\"FILLVALUE( gts:GTS data:LIST ): result:GTS\\nFILLVALUE( gtsList:LIST<GTS> data:LIST ): resultList:LIST<GTS>\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILLVALUE\"},\"FILTER\":{\"description\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `FILTER` framework allows for advanced filtering using N-ary functions\\n(functions which accept N parameters).\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A single list containing only the selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `FILTER`.\\n\\n\",\"signature\":\"FILTER( [ gtsList:LIST<GTS> labels:LIST<STRING> filter:FILTER ] ): result:LIST<GTS>\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"FILTER\"},\"FILTERBY\":{\"description\":\"The `FILTERBY` function selects elements of a list based on the boolean return value of a macro evaluated for each element.\\n\\n@param `macro` Macro used for filtering. This macro should consume the element of the list pushed on top of the stack and leave a boolean on the stack. If this boolean is `true`, the element will be retained.\\n\\n@param `list` List of elements to filter.\\n\\n@param `sublist` List with the selected elements from `list`.\\n\\n\",\"signature\":\"FILTERBY( list:LIST macro:MACRO ): sublist:LIST\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"FILTERBY\"},\"FIND\":{\"description\":\"The `FIND` function finds Geo Time Series™ labels and attributes of GTS, not their values. It is the fastest way to read attributes of GTS. `FIND` asks only `directory` component of Warp&nbsp;10™, while [FETCH](/doc/FETCH) first ask `directory`, then ask `store` to read GTS values. \\n\\nSyntax is close to [FETCH](/doc/FETCH), without time boundaries or data point count.\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `data` List of fetched Geo Time Series™. These GTS does not contain any value.\\n\\n@param `selector` A Geo Time Series™ selector with the syntax `class{labels}` where `class` is an exact match or a regular expression starting with *~* and `labels` a comma separated list of labels selector of the form `name=exact` or `name~regexp`. Names and values must be percent URL encoded if needed.\\n\\n@param `selectors` A list of GTS selectors, each with a syntax identical to that of 'selector'.\\n\\n@param `active.after` Timestamp after which a GTS must have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `quiet.after` Timestamp after which a GTS must not have been updated to be considered for the fetch. This parameter is only considered when activity tracking is enabled.\\n\\n@param `priority` Priority of the labels when looking in the Directory, first in the list being looked first. Prioritising rare labels can speed up the retreival. Defaults to the order defined by the *warpscript.labels.priority* configuration.\\n\\n@param `showuuid` Whether to add or not an *.uuid* attribute to each **GTS**. These UUIDs are based on the internal class and label IDs so they are unique for each **GTS**.\\n\\n@param `gskip` Number of GTS to skip before returning results.\\n\\n@param `gcount` Maximum number of GTS to return.\\n\\n\",\"signature\":\"FIND( [ token:STRING classSelector:STRING labelsSelector:MAP ] ): data:LIST<GTS>\\nFIND( [ showuuid:BOOLEAN token:STRING classSelector:STRING labelsSelector:MAP ] ): data:LIST<GTS>\\nFIND( { gcount:LONG gskip:LONG showuuid:BOOLEAN priority:LIST<STRING> active.after:LONG quiet.after:LONG selectors:LIST<STRING> selector:STRING classSelector:STRING labelsSelector:MAP token:STRING  } ): data:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIND\"},\"FINDSETS\":{\"description\":\"The `FINDSETS` function returns sets of values for the classes, labels and attributes of the Geo Time Series™ which matched the selection criteria.\\n\\nThose results can be used for example to update a UI with lists of possible values for labels when exploring a corpus of GTS.\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label names to exact match or regular expression (if the value starts with a *~*) for matching labels and attributes.\\n\\n@param `attributes` Map of attribute names to value list.\\n\\n@param `labels` Map of label names to value list.\\n\\n@param `classes` List of class names.\\n\\n\",\"signature\":\"FINDSETS( [ token:STRING classSelector:STRING labelsSelector:MAP ] ): classes:LIST<STRING> labels:MAP attributes:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSETS\"},\"FINDSTATS\":{\"description\":\"The `FINDSTATS` function computes statistics on matching Geo Time Series™. The estimations are based on the use of [HyperLogLogPlus](https://en.wikipedia.org/wiki/HyperLogLog) estimators.\\n\\nThe function returns a map containing information about the matching Geo Time Series. The fields of the map are the following:\\n\\n| Key | Value |\\n|-----|-------|\\n| `gts.estimate` | Estimation of the number of matching Geo Time Series™ |\\n| `classes.estimate` | Estimation of the number of distinct class names |\\n| `labelnames.estimate` | Estimation of the number of distinct label names |\\n| `labelvalues.estimate` | Estimation of the number of distinct label values |\\n| `per.class.estimate` | If the number of matching classes is below the `directory.stats.class.maxcardinality`, this key will be associated with a map containing per class estimate of number of GTS |\\n| `per.label.value.estimate` | If the number of label names in the matching GTS is below `directory.stats.labels.maxcardinality`, this key will be associated with a map containing an estimation of distinct label values per label name |\\n| `error.rate` | This is the error rate of the estimators used for computing the estimations |\\n| `partial.results` | When accessing a sharded Directory, this will be set to `true` if only partial results were collected |\\n\\n\\n@param `token` Read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Exact match or regular expression (if the value starts with a *~*) for matching classes.\\n\\n@param `labelsSelector` Map of label name to exact match or regular expression (if the value strts with a *~*) for matching labels and attributes.\\n\\n@param `result` Map containing stats such as error rate or whether estimates on classes, gts, or labels.\\n\\n\",\"signature\":\"FINDSTATS( [ token:STRING classSelector:STRING labelsSelector:MAP ] ): result:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FINDSTATS\"},\"FIRSTTICK\":{\"description\":\"The `FIRSTTICK` function returns the timestamp of the oldest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its first bucket.\\n\\nWhen applied to a list of GTS, `FIRSTTICK` will return the lowest first tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MAX_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` Oldest timestamp. If the GTS does not have values, **Long.MAX_VALUE** is pushed.\\n\\n\",\"signature\":\"FIRSTTICK( gts:GTS ): result:LONG\\nFIRSTTICK( lgts:LIST<GTS> ): result:LONG\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FIRSTTICK\"},\"FLATTEN\":{\"description\":\"The function `FLATTEN` inspects the top of the stack.\\n\\nIf it is a LIST of values,\\nit inspects each value and replaces each value which was a LIST with its content.\\n`FLATTEN` proceed recursively until all LISTs have been flattened.\\n\\nIf it is not a LIST, the function exits and let the stack in the same state.\\n\\n@param `input` Input is a list who may contains lists\\n\\n@param `notAList` An object which is not a list\\n\\n@param `output` Output list do not contains anymore nested lists\\n\\n\",\"signature\":\"FLATTEN( input:LIST ): output:LIST\\nFLATTEN( notAList:ANY ): notAList:ANY\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLATTEN\"},\"FLOAD\":{\"description\":\"The `FLOAD` function allows to read the content of a file on the local file system or in HDFS and output that content as a byte array.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `content` Content of the file.\\n\\n\",\"signature\":\"FLOAD( path:STRING ): content:BYTES\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FLOAD\"},\"FLOATBITS->\":{\"description\":\"Converts the **LONG** on top of the stack to a **DOUBLE** by considering the 32 lower bits of the **LONG** value as the raw bits of a **FLOAT**.\\n\\n@param `input` Value to convert\\n\\n@param `result` Converted value\\n\\n\",\"signature\":\"FLOATBITS->( input:LONG ): result:DOUBLE\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.2.3\",\"OPB64name\":\"GZlEFKG1HKGIAIs\"},\"FLOOR\":{\"description\":\"The `FLOOR` function consumes a numeric parameter from the top of the stack and pushes back the nearest long number smaller than the parameter.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Rounded-down value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of rounded-down values, for each given value.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are rounded-down of the given GTS values\\n\\n\",\"signature\":\"FLOOR( value:NUMBER ): result:DOUBLE\\nFLOOR( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nFLOOR( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"FLOOR\"},\"FLOORDIV\":{\"description\":\"The `FLOORDIV` function consumes two NUMBER values, convert them to LONGs and pushes back largest LONG value that is less than or equal to the algebraic quotient.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fDiv` The largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `lfDiv` List of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n@param `gtsdividend` Numerical GTS of dividends\\n\\n@param `gtsdivisor` Numerical GTS of divisors\\n\\n@param `gtsfDiv` Numerical GTS of largest (closest to positive infinity) int value that is less than or equal to the algebraic quotient\\n\\n\",\"signature\":\"FLOORDIV( dividend:NUMBER divisor:NUMBER ): fDiv:LONG\\nFLOORDIV( dividend:NUMBER ldivisor:LIST<NUMBER> ): lfDiv:LIST<LONG>\\nFLOORDIV( ldividend:LIST<NUMBER> divisor:NUMBER ): lfDiv:LIST<LONG>\\nFLOORDIV( dividend:NUMBER gtsdivisor:GTS ): gtsfDiv:GTS\\nFLOORDIV( gtsdividend:GTS divisor:NUMBER ): gtsfDiv:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORDIV\"},\"FLOORMOD\":{\"description\":\"The `FLOORMOD` function consumes two NUMBER values, convert them to LONGs and pushes back the floor modulus which is x - (floorDiv(x, y) * y).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` The dividend\\n\\n@param `divisor` The divisor\\n\\n@param `fMod` The floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `ldividend` List of dividends\\n\\n@param `ldivisor` List of divisors\\n\\n@param `gtsdividend` Numerical GTS, each of the value being considered as dividends\\n\\n@param `gtsdivisor` Numerical GTS, each of the value being considered as divisors\\n\\n@param `lfMod` List of floor modulus x - (floorDiv(x, y) * y)\\n\\n@param `gtsfMod` GTS of floor modulus x - (floorDiv(x, y) * y)\\n\\n\",\"signature\":\"FLOORMOD( dividend:NUMBER divisor:NUMBER ): fMod:LONG\\nFLOORMOD( dividend:NUMBER ldivisor:LIST<NUMBER> ): lfMod:LIST<LONG>\\nFLOORMOD( ldividend:LIST<NUMBER> divisor:NUMBER ): lfMod:LIST<LONG>\\nFLOORMOD( dividend:NUMBER gtsdivisor:GTS ): gtsfMod:GTS\\nFLOORMOD( gtsdividend:GTS divisor:NUMBER ): gtsfMod:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"FLOORMOD\"},\"FOR\":{\"description\":\"The `FOR` function implements a for loop. It takes three arguments from the stack: the initial and the final values of the loop index and a macro to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"FOR( initial:NUMBER final:NUMBER macro:MACRO ): \\nFOR( initial:NUMBER final:NUMBER macro:MACRO index:BOOLEAN ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOR\"},\"FOREACH\":{\"description\":\"The `FOREACH` function implements a for loop on a list or map.\\n\\nFor each iteration i on a list, the i-th element on the list is put on top of the stack, and the exec macro is then called.\\n\\nFor each iteration i on a map, the exec macro is called with the i-th value on top of the stack, and the i-th key just below on the stack.\\nYou can start your macro with `'value' STORE 'key' STORE`.\\n\\nSince release 2.1, `FOREACH` has the ability to iterate over Geo Time Series™ and GTS Encoders. When iterating over a GTS or Encoder, the macro is fed with a list of the form `[ tick lat lon elev value ]` where `lat`, `lon` and `elev` may be `NaN` if unset. In the case of an Encoder, `value` can be a byte array or a `BigDecimal` on top of `LONG`, `DOUBLE`, `STRING` or `BOOLEAN`.\\n\\nSince release 2.4.0, you can force FOREACH to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `exec` Macro to apply\\n\\n@param `list` List to iterate on\\n\\n@param `map` Map to iterate on\\n\\n@param `set` Set to iterate on\\n\\n@param `vector` Vector to iterate on\\n\\n@param `gts` GTS to iterate on\\n\\n@param `string` String to iterate on\\n\\n@param `encoder` GTSEncoder to iterate on\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"signature\":\"FOREACH( list:LIST exec:MACRO ): \\nFOREACH( map:MAP exec:MACRO ): \\nFOREACH( set:SET exec:MACRO ): \\nFOREACH( vector:VLIST exec:MACRO ): \\nFOREACH( string:STRING exec:MACRO ): \\nFOREACH( gts:GTS exec:MACRO ): \\nFOREACH( encoder:GTSENCODER exec:MACRO ): \\nFOREACH( list:LIST exec:MACRO index:BOOLEAN ): \\nFOREACH( map:MAP exec:MACRO index:BOOLEAN ): \\nFOREACH( set:SET exec:MACRO index:BOOLEAN ): \\nFOREACH( vector:VLIST exec:MACRO index:BOOLEAN ): \\nFOREACH( string:STRING exec:MACRO index:BOOLEAN ): \\nFOREACH( gts:GTS exec:MACRO index:BOOLEAN ): \\nFOREACH( encoder:GTSENCODER exec:MACRO index:BOOLEAN ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FOREACH\"},\"FORGET\":{\"description\":\"Removes a symbol from the symbol table.      \\n\\n@param `symbol` Name of the symbol to remove.\\n\\n\",\"signature\":\"FORGET( symbol:STRING ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORGET\"},\"FORSTEP\":{\"description\":\"The `FORSTEP` function implements for loop with an index step. It takes four arguments from the stack: the initial and the final values of the loop index,\\na macro step to evaluate after each iteration and an other one to be executed at each iteration.\\n\\nFor each iteration the loop index is put on top of the stack, and the exec macro is then called. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` Macro to repeat, the index of the loop is placed on the TOP of the stack\\n\\n@param `step` Macro step to evaluate after each iteration, typically to compute index\\n\\n@param `final` Final value\\n\\n@param `initial` Initial value\\n\\n@param `index` When set to true, the current index will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"FORSTEP( initial:NUMBER final:NUMBER step:MACRO macro:MACRO ): \\nFORSTEP( initial:NUMBER final:NUMBER step:MACRO macro:MACRO index:BOOLEAN ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"FORSTEP\"},\"FREAD\":{\"description\":\"The `FREAD` function reads a file line by line and passes each line (as a `STRING`) to the provided macro.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `path` Path of the file to read.\\n\\n@param `macro` Macro to call for processing each line.\\n\\n\",\"signature\":\"FREAD( macro:MACRO path:STRING ): \",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FREAD\"},\"FROMBIN\":{\"description\":\"Converts the binary representation on top of the stack into the corresponding long.\\n\\n@param `input` Binary representation of a signed long, 64 characters max.\\n\\n@param `output` Signed long of input.\\n\\n\",\"signature\":\"FROMBIN( input:STRING ): output:LONG\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBIN\"},\"FROMBITS\":{\"description\":\"**This function is deprecated. Replace it in your code by the [`DOUBLEBITS->`](/doc/G3xKFZl4FZ_JJmoy) function.**\\n\\nConverts the **LONG** on top of the stack into a **DOUBLE** by considering it a raw bit representation.\\n\\n@param `input` Raw bit representation to convert\\n\\n@param `result` Converted value\\n\\n\",\"signature\":\"FROMBITS( input:LONG ): result:DOUBLE\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMBITS\"},\"FROMHEX\":{\"description\":\"Converts an hexadecimal representation into a signed long. 64bits max.\\n\\n@param `input` Valid hexadecimal string representation.\\n\\n@param `output` Signed long\\n\\n\",\"signature\":\"FROMHEX( input:STRING ): output:LONG\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"FROMHEX\"},\"FSTORE\":{\"description\":\"The `FSTORE` function stores a `STRING` or `BYTES` object in a file, optionally overwriting any existing content. The file can be on the local file system or in HDFS.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `overwrite` Flag indicating whether or not to overwrite any existing content.\\n\\n@param `path` Path of the file to create.\\n\\n@param `string` `STRING` content to store in the file, will be encoded using `UTF-8`.\\n\\n@param `bytes` Byte array to store in the file.\\n\\n\",\"signature\":\"FSTORE( string:STRING path:STRING overwrite:BOOLEAN ): \\nFSTORE( bytes:BYTES path:STRING overwrite:BOOLEAN ): \",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"FSTORE\"},\"FUNCREF\":{\"description\":\"The `FUNCREF` function returns the function for a given function name. If the function cannot be found, `FUNCREF` fails. This function looks through all defined functions: core, enabled extensions and defined functions with [`DEF`](/doc/DEF).\\n\\n@param `functionName` The name of the function\\n\\n@param `function` The function\\n\\n\",\"signature\":\"FUNCREF( functionName:STRING ): function:FUNCTION\",\"tags\":[\"stack\"],\"since\":\"2.8.0\",\"OPB64name\":\"FUNCREF\"},\"FUNCTIONS\":{\"description\":\"FUNCTIONS returns a list of every functions available in your Warp 10 environnment, including native and extension functions.\\n\\nIt could be useful when coding your own extension to check your new functions are correctly registered.\\n\\n\\nFUNCTIONS allow anyone to discover new extensions you created on the platform, so it is deactivated by default.\\n\\nYou must add `warpscript.extension.inventory=io.warp10.script.ext.inventory.InventoryWarpScriptExtension` in your configuration file for this function to be available.\\n\\n@param `functions` List of Warp 10 functions available on this instance\\n\\n\",\"signature\":\"FUNCTIONS(): functions:LIST<STRING>\",\"tags\":[\"platform\",\"extensions\"],\"since\":\"1.2.16\",\"OPB64name\":\"FUNCTIONS\"},\"FUSE\":{\"description\":\"Fuses Geo Time Series™ chunks. The fusion process attempts to keep the bucketization parameters if all chunks are bucketized with compatible `bucketspan` and `lastbucket` values.\\n\\nAll chunks must be of the same type.\\n\\nThe fused GTS will have the common class name of the chunks or no class name if some chunks have a different class name. The labels will be those common to all chunks, so when fusing chunks created with [`CHUNK`](/doc/CHUNK), the chunk id will be dropped.\\n\\n@param `chunks` List of Geo Time Series™ to fuse.\\n\\n@param `gts` Geo Time Series™ resulting from the fusion of `chunk`.\\n\\n\",\"signature\":\"FUSE( chunks:LIST<GTS> ): gts:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"FUSE\"},\"GEO.BUFFER\":{\"description\":\"The `GEO.BUFFER` function allows to create [*buffer*](https://en.wikipedia.org/wiki/Buffer_(GIS)) **GEOSHAPE** objects. The function takes a `MAP` instance as input. This map can contain the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `dist` | Distance of the buffer, as a central angle expressed in degrees. |\\n| `mdist` | Distance of the buffer expressed in meters. This key is only taken into account if `dist` is not specified. |\\n| `cap` | The end cap style to consider, use `SQUARE`, `FLAT` or `ROUND` (default). |\\n| `join` | The join style to use, use `BEVEL`, `MITRE` or `ROUND` (default). |\\n| `limit` | The mitre limit to use. Defaults to 5.0. |\\n| `segments` | Number of segments to use per quadrant, defaults to 8. |\\n| `singlesided` | Set to `true` to compute a single sided buffer. If `true`, positive distance will indicate left-hand side and negative distance right-hand side. End cap is ignored for single sided buffers. |\\n| `wkb` | Byte array containing a [WKB](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary) definition of a geographic area. |\\n| `wkt` | String containing a [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) definition of a geographic area. |\\n| `geojson` | String containing a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) definition of a geographic area. |\\n\\nIf a geographic area is defined, only one of `wkb`, `wkt` or `geojson` may be specified. The output of the function is a new definition of a geographic area with the buffer added to the original definition.\\n\\nIf no geographic area is defined, `GEO.BUFFER` will define a buffer which will be used by the next call to either [`GEO.WKT`](/doc/GEO.WKT), [`GEO.WKB`](/doc/GEO.WKB) or [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `params` Parameter map containing keys as defined above.\\n\\n@param `wkb` Area definition with the buffer added, if `params` had a value for key `wkb`.\\n\\n@param `area` Area definition with the buffer added, in WKT or GeoJSON depending on the presence of key `wkt` or `geojson` in `params`.\\n\\n\",\"signature\":\"GEO.BUFFER( params:MAP ): wkb:BYTES\\nGEO.BUFFER( params:MAP ): area:STRING\\nGEO.BUFFER( params:MAP ): \",\"tags\":[\"geo\"],\"since\":\"2.7.0\",\"OPB64name\":\"GEO.BUFFER\"},\"GEO.COVER\":{\"description\":\"The `GEO.COVER` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* in which the input Geo Time Series™ or GTS Encoder had datapoints.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"signature\":\"GEO.COVER( gts:GTS resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER( encoder:GTSENCODER resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER( list:LIST resolution:LONG ): geoshapes:LIST<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER\"},\"GEO.COVER.RL\":{\"description\":\"The `GEO.COVER.RL` function creates a WarpScript™ **GEOSHAPE** representing a geographical area at a specified resolution.\\n\\nThe area is composed of *geo cells* which cover the path of an input Geo Time Series™ or GTS Encoder. The path is considered to follow [rhumb lines](https://en.wikipedia.org/wiki/Rhumb_line), hence the function suffix `.RL`.\\n\\nThe resolution of the cells is an even number from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `gts` Input Geo Time Series™.\\n\\n@param `encoder` Input GTS Encoder.\\n\\n@param `list` Input list of Geo Time Series™ and/or GTS Encoders.\\n\\n@param `geoshape` Resulting GEOSHAPE coverage.\\n\\n@param `geoshapes` List of computed GEOSHAPEs.\\n\\n\",\"signature\":\"GEO.COVER.RL( gts:GTS resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER.RL( encoder:GTSENCODER resolution:LONG ): geoshape:GEOSHAPE\\nGEO.COVER.RL( list:LIST resolution:LONG ): geoshapes:LIST<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GEO.COVER.RL\"},\"GEO.DIFFERENCE\":{\"description\":\"The `GEO.DIFFERENCE` function computes the difference between two GEOSHAPE. The resulting GEOSHAPE instance contains cells which cover the part of the first GEOSHAPE which is not in the second. If you need to have cells up to a certain resolution, you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the result.\\n\\n@param `shapeA` GEOSHAPE instance from which to subtract the second shape.\\n\\n@param `shapeB` GEOSHAPE to subtract from 'shapeA'.\\n\\n@param `shape` GEOSHAPE containing 'shapeA' minus 'shapeB'.\\n\\n\",\"signature\":\"GEO.DIFFERENCE( shapeA:GEOSHAPE shapeB:GEOSHAPE ): shape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.DIFFERENCE\"},\"GEO.GML\":{\"description\":\"The `GEO.GML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nGML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GEO.GML( GML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.GML( GML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML\"},\"GEO.GML.UNIFORM\":{\"description\":\"The `GEO.GML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the GML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.GML`](doc/GEO.GML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GML` Description of the geographical area in GML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"GEO.GML.UNIFORM( GML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.GML.UNIFORM( GML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.GML.UNIFORM\"},\"GEO.INTERSECTION\":{\"description\":\"The `GEO.INTERSECTION` function computes the intersection of two GEOSHAPE instances. The intersection process will produce a GEOSHAPE whose cells are common to the two initial shapes. The common cells will be of various resolutions, depending on the resolutions of the cells from the initial shapes. If you need the resulting shape to contain cells up to a specific resolution, you can call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) either on the result or on the initial shapes.\\n\\n@param `shapeA` First GEOSHAPE instance.\\n\\n@param `shapeB` Second GEOSHAPE instance.\\n\\n@param `shapes` GEOSHAPE instances.\\n\\n@param `shape` Geographical area (GEOSHAPE) resulting from the intersection of the given shapes.\\n\\n\",\"signature\":\"GEO.INTERSECTION( shapeA:GEOSHAPE shapeB:GEOSHAPE ): shape:GEOSHAPE\\nGEO.INTERSECTION( shapes:LIST<GEOSHAPE> ): shape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTION\"},\"GEO.INTERSECTS\":{\"description\":\"The `GEO.INTERSECTS` function checks if a Geo Time Series or each GTS from a list has at least one data point with a position inside a given geographical area. Since `2.7.1`, the function can also check if two `GEOSHAPE` instances intersect.\\n\\n@param `shapeA` First `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shapeB` Second `GEOSHAPE` to consider when checking if `GEOSHAPE` instances intersect.\\n\\n@param `shape` Instance of GEOSHAPE containing the area which the Geo Time Series must intersect.\\n\\n@param `gts` Single instance of Geo Time Series.\\n\\n@param `lgts` List of Geo Time Series.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series had at least one datapoint in 'shape' or if the two shapes intersect.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had at least one datapoint in 'shape'.\\n\\n\",\"signature\":\"GEO.INTERSECTS( gts:GTS shape:GEOSHAPE ): result:BOOLEAN\\nGEO.INTERSECTS( lgts:LIST<GTS> shape:GEOSHAPE ): results:LIST<BOOLEAN>\\nGEO.INTERSECTS( shapeA:GEOSHAPE shapeB:GEOSHAPE ): result:BOOLEAN\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.INTERSECTS\"},\"GEO.JSON\":{\"description\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GEO.JSON( GeoJSON:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.JSON( GeoJSON:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.2.9\",\"OPB64name\":\"GEO.JSON\"},\"GEO.JSON.UNIFORM\":{\"description\":\"The `GEO.JSON` function creates a WarpScript object (GEOSHAPE) representing a geographical area. The description of the geographical area uses the [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even numbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.JSON`](doc/GEO.JSON), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the GeoJSON (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `GeoJSON` Description of the geographical area in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GEO.JSON.UNIFORM( GeoJSON:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.JSON.UNIFORM( GeoJSON:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.JSON.UNIFORM\"},\"GEO.KML\":{\"description\":\"The `GEO.KML` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\nKML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GEO.KML( KML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.KML( KML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML\"},\"GEO.KML.UNIFORM\":{\"description\":\"The `GEO.KML.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the KML format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.KML`](doc/GEO.KML), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `KML` Description of the geographical area in KML.\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"GEO.KML.UNIFORM( KML:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.KML.UNIFORM( KML:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.9.0\",\"OPB64name\":\"GEO.KML.UNIFORM\"},\"GEO.NORMALIZE\":{\"description\":\"The `GEO.NORMALIZE` function ensures that the intersection of two **GEOSHAPE**s is present in both as an identical set of cells.\\n\\n@param `shapeA` The first GEOSHAPE to normalize.\\n\\n@param `shapeB` The second GEOSHAPE to normalize.\\n\\n@param `normalizedA` A normalized copy of the first GEOSHAPE.\\n\\n@param `normalizedB` A normalized copy of the second GEOSHAPE.\\n\\n\",\"signature\":\"GEO.NORMALIZE( shapeA:GEOSHAPE shapeB:GEOSHAPE ): normalizedA:GEOSHAPE normalizedB:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEO.NORMALIZE\"},\"GEO.OPTIMIZE\":{\"description\":\"The `GEO.OPTIMIZE` function optimizes a GEOSHAPE instance by modifying its cells to either limit the finest resolution present in the shape or reduce the number of cells by merging cells which cover a whole cell at the coarser resolution.\\n\\n@param `shape` GEOSHAPE instance to optimize.\\n\\n@param `resolution` Finest resolution acceptable (even number from 2 to 32) or 0 to reduce the number of cells.\\n\\n@param `optimized` Optimized GEOSHAPE instance\\n\\n\",\"signature\":\"GEO.OPTIMIZE( shape:GEOSHAPE resolution:LONG ): optimized:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.2.13\",\"OPB64name\":\"GEO.OPTIMIZE\"},\"GEO.REGEXP\":{\"description\":\"The `GEO.REGEXP` function converts a GEOSHAPE into a regular expression to select hexadecimal [HHCode](https://en.wikipedia.org/wiki/HHCode) STRINGs which are included in the GEOSHAPE.\\n\\n@param `shape` An instance of GEOSHAPE.\\n\\n@param `regexp` A regular expression for matching HHCodes covered by 'shape'.\\n\\n\",\"signature\":\"GEO.REGEXP( shape:GEOSHAPE ): regexp:STRING\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GEO.REGEXP\"},\"GEO.UNION\":{\"description\":\"The `GEO.UNION` function computes a GEOSHAPE which is the union of two other shapes. The resulting shape will have cells covering the two original shapes. If you need to have cells up to a certain resolution you should call [`GEO.OPTIMIZE`](doc/GEO.OPTIMIZE) on the resulting shape.\\n\\n@param `shapeA` First GEOSHAPE instance to merge.\\n\\n@param `shapeB` Second GEOSHAPE instance to merge.\\n\\n@param `shapes` GEOSHAPE instances to merge.\\n\\n@param `shape` Resulting GEOSHAPE which is the union of the given shapes.\\n\\n\",\"signature\":\"GEO.UNION( shapeA:GEOSHAPE shapeB:GEOSHAPE ): shape:GEOSHAPE\\nGEO.UNION( shapes:LIST<GEOSHAPE> ): shape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.UNION\"},\"GEO.WITHIN\":{\"description\":\"The `GEO.WITHIN` function checks whether a Geo Time Series™ or each GTS from a list have all its datapoints with a location inside a given geographical area.\\n\\n@param `shape` Instance of GEOSHAPE containing the area inside which the Geo Time Series™ must be contained.\\n\\n@param `gts` Single instance of Geo Time Series™.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `result` Boolean indicating whether or not the Geo Time Series™ had all its datapoints with a location inside 'shape'.\\n\\n@param `results` List of boolean results indicating whether or not each GTS had all its datapoints with a location inside 'shape'.\\n\\n\",\"signature\":\"GEO.WITHIN( gts:GTS shape:GEOSHAPE ): result:BOOLEAN\\nGEO.WITHIN( lgts:LIST<GTS> shape:GEOSHAPE ): results:LIST<BOOLEAN>\",\"tags\":[\"geo\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WITHIN\"},\"GEO.WKB\":{\"description\":\"The `GEO.WKB` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GEO.WKB( WKB:BYTES percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKB( WKB:BYTES resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB\"},\"GEO.WKB.UNIFORM\":{\"description\":\"The `GEO.WKB.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKB`](doc/GEO.WKB), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKB (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKB` Description of the geographical area in [Well Known Binary](https://en.wikipedia.org/wiki/Well-known_binary).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"GEO.WKB.UNIFORM( WKB:BYTES percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKB.UNIFORM( WKB:BYTES resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.2.1\",\"OPB64name\":\"GEO.WKB.UNIFORM\"},\"GEO.WKT\":{\"description\":\"The `GEO.WKT` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical area uses the\\n[Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using\\n[`MAXGEOCELLS`](/doc/MAXGEOCELLS).\\n\\nSince 2.4.0, you can easily visualize geoshapes in WarpScript editors. See example.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geoshape object.\\n\\n\",\"signature\":\"GEO.WKT( WKT:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKT( WKT:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"GEO.WKT\"},\"GEO.WKT.UNIFORM\":{\"description\":\"The `GEO.WKT.UNIFORM` function creates a WarpScript object (**GEOSHAPE**) representing a geographical area. The description of the geographical\\narea uses the [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text) format.\\n\\nThe coordinates are assumed to be in [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System).\\n\\nA GEOSHAPE is a set of cells at various resolutions which cover (or are contained within) the specified area. The resolutions of the cells are even\\nnumbers from 2 (coarsest) to 30 (finest) with the following associated precisions at the equator:\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\nThe number of cells that a GEOSHAPE may contain is limited by the platform configuration, this limit can be modified up to the hard limit using [`MAXGEOCELLS`](doc/MAXGEOCELLS).\\n\\nThis function is nearly identical to [`GEO.WKT`](doc/GEO.WKT), differing only by the fact that the produced GEOSHAPE only contains cells of a single resolution.\\n\\n@param `inside` Boolean indicating whether the coverage should include only cells which are inside the area described by the WKT (`true`) or also those which simply intersect the area (`false`).\\n\\n@param `percentage` Precision of the resulting area coverage in percentage of the area bounding box diagonal. This value will determine the resolution of the smallest cells used to cover the area.\\n\\n@param `resolution` Finest resolution to use for the cells covering the area. Resolution is an even number between 2 and 30.\\n\\n@param `WKT` Description of the geographical area in [Well Known Text](https://en.wikipedia.org/wiki/Well-known_text).\\n\\n@param `geoshape` Geographical area output.\\n\\n\",\"signature\":\"GEO.WKT.UNIFORM( WKT:STRING percentage:DOUBLE inside:BOOLEAN ): geoshape:GEOSHAPE\\nGEO.WKT.UNIFORM( WKT:STRING resolution:LONG inside:BOOLEAN ): geoshape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.2.11\",\"OPB64name\":\"GEO.WKT.UNIFORM\"},\"GEOCELL->\":{\"description\":\"The `GEOCELL->` function converts a **LONG** geocell to a **STRING** HHCode prefix. The resulting string length is half the resolution of the geocell.\\n\\nThis function cannot convert to **BYTES** because this representation is limited to resolutions multiple of 4.\\n\\nA geocell is a **LONG** where the 4 MSBs store the resolution and the 60 LSBs store a trimmed HHCode. The value stored in the 4 MSBs must be multiplied by 2 to give the resolution of the trimmed HHCode, thus only even resolutions can be represented in a geocell. A resolution of 0 is considered invalid and the highest resolution is 30. The value stored in the 60 LSBs are the 60 MSBs of a HHCode but only the 2*resolution MSBs must be considered.\\n\\nHere is an example of the bits representation of a geocell and their meaning:\\n\\n```\\n1001101101010111001001011000100010101111000000000000000000000000\\n\\\\__/\\\\__________________________________/\\\\______________________/\\n ||                  ||                            ||\\nRes: 9*2=18          ||                            ||\\n        18*2 relevant bits of HHCode     60-18*2 unrelevant bits\\n```\\n\\nA **GEOSHAPE** is simply a list of geocells, see [\\\\->GEOSHAPE](/doc/AIt6GJxIH34FGF) to build a **GEOSHAPE** from geocells.\\n\\n@param `geocell` A geocell.\\n\\n@param `hhPrefix` A HHCode prefix representing the given cell.\\n\\n\",\"signature\":\"GEOCELL->( geocell:LONG ): hhPrefix:STRING\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEFoKBI1oy\"},\"GEOHASH->\":{\"description\":\"The `GEOHASH->` converts a [Geohash](https://en.wikipedia.org/wiki/Geohash), exposing the latitude and longitude it contains, or transforms a list of Geohashes into a `GEOSHAPE`.\\n\\n@param `geohash` Geohash to unpack.\\n\\n@param `geohashes` List of Geohashes defining a geographical area.\\n\\n@param `lat` Unpacked latitude.\\n\\n@param `lon` Unpacked longitude.\\n\\n@param `toHHCodeString` Set to `true` to convert the GeoHash to a HHCode STRING or to `false` to convert it to a LONG HHCode instead of extracting its latitude and longitude.\\n\\n@param `hhcode` The HHCode for `geohash`, as a LONG or STRING.\\n\\n@param `shape` Warp 10 `GEOSHAPE` covering the same geographic area as the Geohashes in `geohashes`.\\n\\n\",\"signature\":\"GEOHASH->( geohash:STRING ): lat:DOUBLE lon:DOUBLE\\nGEOHASH->( geohash:STRING toHHCodeString:BOOLEAN ): hhcode:ANY\\nGEOHASH->( geohashes:LIST<STRING> ): shape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"GoKEH34IH1oy\"},\"GEOPACK\":{\"description\":\"The `GEOPACK` function takes a **GEOSHAPE** and packs it into a String.\\n\\n@param `shape` The GEOSHAPE instance to pack.\\n\\n@param `packed` The packed string representation of the GEOSHAPE.\\n\\n\",\"signature\":\"GEOPACK( shape:GEOSHAPE ): packed:STRING\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOPACK\"},\"GEOSHAPE->\":{\"description\":\"The `GEOSHAPE->` function converts **GEOSHAPE** to a list of **LONG** geocells or **STRING** HHCode prefixes. Conversion to list of **BYTES** is not supported, because this representation only supports resolution multiple of 4.\\n\\n@param `geoshape` The geoshape to get the cells from.\\n\\n@param `toString` Whether to convert the cells to **STRING** HHCode prefix (true) or geocells (false).\\n\\n@param `geocells` List of geocells.\\n\\n@param `geocellsOrHHPrefixes` List of **LONG** geocells or **STRING** HHCode prefixes.\\n\\n\",\"signature\":\"GEOSHAPE->( geoshape:GEOSHAPE ): geocells:LIST<LONG>\\nGEOSHAPE->( geoshape:GEOSHAPE toString:BOOLEAN ): geocellsOrHHPrefixes:LIST<ANY>\",\"tags\":[\"geo\"],\"since\":\"2.6.0\",\"OPB64name\":\"GoKEJoW0J3JhEV\"},\"GEOSHIFT\":{\"description\":\"`GEOSHIFT` functions shifts a geoshape on the earth. It is able to safely overlap the poles or the 180th meridian.\\n- Longitude shift keeps distances.\\n- Latitude shift keeps angles, not distances.\\n- When doing latitude shift, you can specify a meridian to shift along this meridian. It means a positive shift became a negative shift behind this meridian +/- 90°.\\n\\nSet precision parameter to zero for safe shifting operation. See [`GEO.WKT`](/doc/GEO.WKT) for precision encoding.\\n\\nUse [`->GEOJSON`](/doc/AIt6GJx9JoxD) to visualize shapes and the results. GeoJson could be visualized on the map, if you let a special object on the map. See example.\\n\\n@param `lon` degrees of longitude to shift (-360 to 360).\\n\\n@param `lat` degrees of latitude to shift (-180 to 180).\\n\\n@param `precision` even number from 0 to 30. Set to 0 for automatic resolution. Force to another value if you know the input resolution to be finer and you want a coarser resolution.\\n\\n@param `shape` The input geoshape.\\n\\n@param `output` The shifted geoshape.\\n\\n@param `meridian` When doing latitude shift, you can specify a meridian to shift along this meridian. (-180 to 180)\\n\\n\",\"signature\":\"GEOSHIFT( shape:GEOSHAPE lat:DOUBLE lon:DOUBLE precision:LONG ): output:GEOSHAPE\\nGEOSHIFT( shape:GEOSHAPE meridian:DOUBLE lat:DOUBLE lon:DOUBLE precision:LONG ): output:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSHIFT\"},\"GEOSPLIT\":{\"description\":\"The `GEOSPLIT` function splits a **GEOSHAPE** into a set of **GEOSHAPE**s which have no adjacent cells (each shape is a connected space).\\n\\nAdjacent cells share part of their side. Adjacency is not provided by corners and cells on each side of the international date line are not considered adjacent either.\\n\\n@param `shape` The GEOSHAPE instance to split.\\n\\n@param `subshapes` The shapes whose union form `shape` and which each form a connected space.\\n\\n\",\"signature\":\"GEOSPLIT( shape:GEOSHAPE ): subshapes:LIST<GEOSHAPE>\",\"tags\":[\"geo\"],\"since\":\"2.5.0\",\"OPB64name\":\"GEOSPLIT\"},\"GEOUNPACK\":{\"description\":\"The `GEOUNPACK` function unpacks a GEOSHAPE previously packed using [`GEOPACK`](/doc/GEOPACK).\\n\\n@param `packed` A packed string representation of a GEOSHAPE.\\n\\n@param `packedbytes` A byte array representation of a GEOSHAPE.\\n\\n@param `shape` The decoded instance of GEOSHAPE.\\n\\n\",\"signature\":\"GEOUNPACK( packed:STRING ): shape:GEOSHAPE\\nGEOUNPACK( packedbytes:BYTES ): shape:GEOSHAPE\",\"tags\":[\"geo\"],\"since\":\"1.0.7\",\"OPB64name\":\"GEOUNPACK\"},\"GET\":{\"description\":\"Retreive a value in a **MAP** or a **LIST**.\\n\\nThe `GET` function consumes on the top of the stack a list, a byte array, or a map, and the index (or the key), \\nthen put the result on the stack. \\n\\nIf key is not found, it returns NULL on the stack.\\n\\nIf index is out of bound, `GET` raises an error.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, `GET` can operate recursively on nested lists. In this case, the index is a list.\\n\\nSince 2.7.3, GET can operate on a **STRING** to get a single character, as a **STRING**. The recursive version can also work on any type supported by `GET` as long as the top element is a **LIST**.\\n\\n@param `map` The input MAP.\\n\\n@param `key` Depending on map construction, could be a number, a string, a list, another map, a GTS, a boolean.\\n\\n@param `mapvalue` The value for the requested key. If key do not exists in map, returns NULL\\n\\n@param `index` The index number in the list. Valid values in [-size; size-1]\\n\\n@param `list` The input LIST.\\n\\n@param `value` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `array` Byte array from which to read a byte.\\n\\n@param `bytevalue` The value of the byte, always unsigned (from 0 to 255).\\n\\n@param `str` A string from which a character should be taken.\\n\\n@param `character` The character at the given index.\\n\\n\",\"signature\":\"GET( map:MAP key:ANY ): mapvalue:ANY\\nGET( list:LIST index:LONG ): value:ANY\\nGET( list:LIST index:LIST ): value:ANY\\nGET( array:BYTES index:LONG ): bytevalue:LONG\\nGET( str:STRING index:LONG ): character:STRING\",\"tags\":[\"lists\",\"maps\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"GET\"},\"GETEXPONENT\":{\"description\":\"The `GETEXPONENT` function consumes a DOUBLE, a LONG casted as a DOUBLE or a COUNTER caster as DOUBLE and pushes back the unbiased exponent used in the representation of this DOUBLE.\\n\\n@param `n` The decimal value to get the exponent from, will be converted to DOUBLE if not already the case.\\n\\n@param `exponent` the unbiased exponent of the argument\\n\\n\",\"signature\":\"GETEXPONENT( n:NUMBER ): exponent:LONG\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"GETEXPONENT\"},\"GETHOOK\":{\"description\":\"Extracts the macro associated with a token hook and pushes it onto the stack wrapped as a secure script.\\n\\nIf the token does not contain the given hook, an empty macro will be wrapped.\\n\\n@param `hook` Name of the hook to extract from the token.\\n\\n@param `token` Read token from which to extract the hook.\\n\\n@param `secure` Hook macro wrapped in a secure script.\\n\\n\",\"signature\":\"GETHOOK( token:STRING hook:STRING ): secure:STRING\",\"tags\":[\"platform\"],\"since\":\"1.0.8\",\"OPB64name\":\"GETHOOK\"},\"GETSECTION\":{\"description\":\"The `GETSECTION` function pushes onto the stack the name of the current section.\\n\\n@param `section` Name of the current section.\\n\\n\",\"signature\":\"GETSECTION(): section:STRING\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"GETSECTION\"},\"GITFIND\":{\"description\":\"The `GITFIND` function identifies files which match a provided regular expression from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `regexp` Regular expression that the relative pathes must match to be selected.\\n\\n@param `files` List of relative pathes matching `regexp`.\\n\\n\",\"signature\":\"GITFIND( { regexp:STRING repo:STRING  } ): files:LIST<STRING>\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITFIND\"},\"GITLOAD\":{\"description\":\"The `GITLOAD` function retrieves content stored in a git repository accessible by the extension. The load operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `content` Byte array containing the content of `path` or `NULL` if it was not found.\\n\\n\",\"signature\":\"GITLOAD( { rev:STRING path:STRING repo:STRING  } ): content:BYTES\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOAD\"},\"GITLOG\":{\"description\":\"The `GITLOG` function retrieves log entries for the given pathes. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\nThe log entries returned are maps with the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `rev` | The git revision string for the entry. |\\n| `type` | The type of entry. |\\n| `message` | The message associated with the entry. |\\n| `author.name` | The name of the author of the change. |\\n| `author.email` | The email address of the author of the change. |\\n| `author.timestamp` | The timestamp of the change, expressed in your platform time units. |\\n| `committer.name` | The name of the committer of the change. |\\n| `committer.email` | The email address of the committer of the change. |\\n| `committer.timestamp` | The timestamp of the commit. |\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `count` Optional maximum number of log entries to return.\\n\\n@param `skip` Optional number of log entries to skip before returning entries.\\n\\n\",\"signature\":\"GITLOG( { skip:LONG count:LONG path:STRING repo:STRING  } ): \",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITLOG\"},\"GITRM\":{\"description\":\"The `GITRM` removes files from a git repository accessible by the extension. The operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`. This entry can also be a `LIST` of pathes.\\n\\n@param `message` Commit message for the deletion operation.\\n\\n\",\"signature\":\"GITRM( { path:STRING repo:STRING message:STRING  } ): \",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITRM\"},\"GITSTORE\":{\"description\":\"The `GITSTORE` function stores some content in a file in a git repository accessible by the extension. The store operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `message` The commit message to associated with the file creation or modification.\\n\\n@param `content` The `STRING` or `BYTES` content to store under `path` in the repository. If `content` is of type `STRING`, the `UTF-8` charset will be used for converting it to `BYTES`.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `path` Path relative to `repo`. If the current `git.subdir` capability is set, the path will be relative to that subdirectory in `repo`.\\n\\n@param `workdir` If set to `false`, the file at `path` will be removed from the working directory after the commit.\\n\\n@param `rev` Revision string of the commit.\\n\\n\",\"signature\":\"GITSTORE( { workdir:BOOLEAN path:STRING repo:STRING content:STRING message:STRING  } ): rev:STRING\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITSTORE\"},\"GITTAG\":{\"description\":\"The `GITTAG` function tags a git repository accessible by the extension. The tag operation will only succeed if the execution environment currently contains capabilities for the target repository.\\n\\n@param `repo` Name of git repository to access.\\n\\n@param `rev` Optional git revision to consider. The default is `HEAD`. `rev` can be a hash, a tag name, or a revision relative to another revision.\\n\\n@param `message` Message to attach to the annotated tag.\\n\\n@param `tag` Name of the tag to attach.\\n\\n@param `force` Flag indicating whether or not to force the tag if it already exists. Defaults to false.\\n\\n@param `ref` Name of the created reference.\\n\\n\",\"signature\":\"GITTAG( { message:STRING force:BOOLEAN tag:STRING rev:STRING repo:STRING  } ): ref:STRING\",\"tags\":[\"extensions\"],\"since\":\"2.7.2\",\"OPB64name\":\"GITTAG\"},\"GOLDWRAP\":{\"description\":\"The `GOLDWRAP` function wraps a Geo Time Series™ or a GTS Encoder in a deterministic way, by sorting on timestamps but also on values, locations and elevations.\\n\\nThis version of a `WRAP` like function is meant to create a *gold standard* blob from its input. In order to ensure reproducibility of the processs, attributes should be dropped prior to calling `GOLDWRAP`.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `wrap` Wrapped Geo Time Series™ instance to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders to wrap.\\n\\n\",\"signature\":\"GOLDWRAP( encoder:GTSENCODER ): wrapped:BYTES\\nGOLDWRAP( gts:GTS ): wrapped:BYTES\\nGOLDWRAP( wrap:BYTES ): wrapped:BYTES\\nGOLDWRAP( list:LIST<GTS> ): lwrapped:LIST<BYTES>\\nGOLDWRAP( list:LIST<GTSENCODER> ): lwrapped:LIST<BYTES>\\nGOLDWRAP( list:LIST<BYTES> ): lwrapped:LIST<BYTES>\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"GOLDWRAP\"},\"GOST\":{\"description\":\"The `GOST` function digests a byte array on the stack with the cryptographic hash function [GOST](https://en.wikipedia.org/wiki/GOST_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"GOST( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"GOST\"},\"GROUPBY\":{\"description\":\"The `GROUPBY` function groups the elements of a list according to the value returned by a macro.\\n\\n@param `macro` Macro used for grouping, consumes an element off the stack and produces a value on the stack.\\n\\n@param `list` List of elements to group.\\n\\n@param `grouped` List of groups, each group is a list whose first element is the group key and whose second element is the sublist of `list` for which `macro` produced the same value.\\n\\n\",\"signature\":\"GROUPBY( list:LIST macro:MACRO ): grouped:LIST\",\"tags\":[\"lists\"],\"since\":\"1.2.22\",\"OPB64name\":\"GROUPBY\"},\"GRUBBSTEST\":{\"description\":\"The `GRUBBSTEST` function detects an outlier in a GTS (or a LIST of GTS), by applying a \\n[Grubbs’](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h1.htm) test.\\n\\nThis test is done under the assumption that the GTS follows an approximately normal distribution.\\n\\nIt tests whether there is exactly a single outlier in a GTS or not. For an iterative version which can detect multiple outliers, use instead\\n[`ESDTEST`](/doc/ESDTEST).\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n> ### Reference \\n> Grubbs, Frank (February 1969). “Procedures for Detecting Outlying Observations in Samples”. Technometrics (Technometrics, Vol. 11, No. 1).\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `mad` A flag indicating whether to use the mean (False), or the median (True) to calculate the Z-score\\n\\n@param `gts` GTS\\n\\n@param `gtsList` List of GTS\\n\\n@param `result` List of ticks corresponding to the outliers\\n\\n@param `resultList` List of list of ticks corresponding to the outliers\\n\\n\",\"signature\":\"GRUBBSTEST( gts:GTS mad:BOOLEAN alpha:DOUBLE ): result:LIST<LONG>\\nGRUBBSTEST( gts:GTS mad:BOOLEAN ): result:LIST<LONG>\\nGRUBBSTEST( gtsList:LIST<GTS> mad:BOOLEAN alpha:DOUBLE ): resultList:LIST\\nGRUBBSTEST( gtsList:LIST<GTS> mad:BOOLEAN ): resultList:LIST<LIST<LONG>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"GRUBBSTEST\"},\"GTSHHCODE->\":{\"description\":\"The `GTSHHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude. This function is very similar to [`HHCODE->`](/doc/H3W2IoG4AIs) except that when given the internal value used by Geo Time Series™ for a missing location it pushes back `NaN NaN`.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"signature\":\"GTSHHCODE->( hhcode:LONG ): lat:DOUBLE lon:DOUBLE\\nGTSHHCODE->( hhcode:STRING ): lat:DOUBLE lon:DOUBLE\\nGTSHHCODE->( hhcode:BYTES ): lat:DOUBLE lon:DOUBLE\",\"tags\":[\"geo\"],\"since\":\"2.2.0\",\"OPB64name\":\"GpGIH3W2IoG4AIs\"},\"GUARD\":{\"description\":\"The `GUARD` function executes a macro, like [EVAL](/doc/EVAL), while ensuring sensitive information is protected. This is achieved by clearing part or all the stack, symbols and registers.\\n\\n@param `symbols` List of symbols to be cleared after the execution of the macro, whether it fails or succeeds.\\n\\n@param `hide` Number of level to hide before the macro execution. If the macro fails, the stack is cleared and hidden levels are set visible again. See [HIDE](/doc/HIDE) and [SHOW](/doc/SHOW) for more explanation on accepted parameters.\\n\\n@param `macro` Macro to be executed.\\n\\n@param `context` Context to be restored after the execution of the macro, whether it fails or succeeds.\\n\\n\",\"signature\":\"GUARD( macro:MACRO symbols:LIST ): \\nGUARD( macro:MACRO symbols:LIST hide:LONG ): \\nGUARD( macro:MACRO context:CONTEXT ): \\nGUARD( macro:MACRO context:CONTEXT hide:LONG ): \",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"GUARD\"},\"GZIP\":{\"description\":\"The `GZIP` function compresses a STRING or a byte array using the [gzip](https://en.wikipedia.org/wiki/Gzip) algorithm. When compressing a STRING, the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) byte representation is first extracted.\\n\\n@param `string` STRING instance to compress.\\n\\n@param `bytes` Byte array to compress.\\n\\n@param `compressed` Compressed byte array.\\n\\n\",\"signature\":\"GZIP( string:STRING ): compressed:BYTES\\nGZIP( bytes:BYTES ): compressed:BYTES\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"GZIP\"},\"HASH\":{\"description\":\"Computes a 64 bits hash of the string or byte array on top of the stack.\\n\\n@param `str` String to hash\\n\\n@param `bytes` Bytes to hash\\n\\n@param `result` 64bit hash\\n\\n\",\"signature\":\"HASH( str:STRING ): result:LONG\\nHASH( bytes:BYTES ): result:LONG\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"HASH\"},\"HAVERSINE\":{\"description\":\"The `HAVERSINE` function consumes two coordinates and pushes back a **DOUBLE** [great-circle distance](https://en.wikipedia.org/wiki/Great-circle_distance) in meters.\\n\\n@param `p2_longitude` Point 2 longitude.\\n\\n@param `p2_latitude` Point 2 latitude.\\n\\n@param `p1_longitude` Point 1 longitude.\\n\\n@param `p1_latitude` Point 1 latitude.\\n\\n@param `haversineDistance` Great circle distance using the haversine function.\\n\\n\",\"signature\":\"HAVERSINE( p1_latitude:NUMBER p1_longitude:NUMBER p2_latitude:NUMBER p2_longitude:NUMBER ): haversineDistance:DOUBLE\",\"tags\":[\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"HAVERSINE\"},\"HEADER\":{\"description\":\"The `HEADER` function allows you to set custom headers which should be returned in the HTTP response. This obviously works only for the `/exec` Warp 10 endpoint.\\n\\n@param `name` Name of HTTP header to return, MUST start with `X-`, *i.e.* be a custom header.\\n\\n@param `value` Value to return for the `name` header. If `NULL`, the specified header is removed from the list of headers to return.\\n\\n\",\"signature\":\"HEADER( name:STRING value:STRING ): \",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"HEADER\"},\"HEX->\":{\"description\":\"Converts a hexadecimal string representation into a bytes array.\\nBytes array cannot be represented on the stack.\\n\\n@param `input` A valid hexadecimal string.\\n\\n@param `output` Bytes Array from input. Seen as null on the stack.\\n\\n\",\"signature\":\"HEX->( input:STRING ): output:BYTES\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H3KNAIs\"},\"HEXTOB64\":{\"description\":\"Decodes the hex encoded content on top of the stack and \\nimmediately re-encode it in base64. This enables you to \\nconvert encoded content which would not be valid UTF-8 encoding \\nfrom hexadecimal to base64.      \\n\\n@param `input` A valid hexadecimal string\\n\\n@param `output` Base64 representation of input\\n\\n\",\"signature\":\"HEXTOB64( input:STRING ): output:STRING\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOB64\"},\"HEXTOBIN\":{\"description\":\"Converts a string representing a hexadecimal number into a string representing a binary number.\\n\\nThe `HEXTOBIN` function consumes on the top of the stack a string and pushes back its conversion. This enables you to convert encoded content which would not be valid UTF-8 encoding from hexadecimal to binary.\\n\\n@param `input` The string representing a hexadecimal number\\n\\n@param `output` The string representing a binary number\\n\\n\",\"signature\":\"HEXTOBIN( input:STRING ): output:STRING\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"HEXTOBIN\"},\"HFCAT\":{\"description\":\"The `HFCAT` function creates catalog files for a History File Store. The files are created in the root directory of the History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfcat` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to catalog.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfcat` capability.\\n\\n@param `macro` Optional macro which will be called with each matched `GTS`. The macro can modify the attributes and return a `GTS` or an `ENCODER` or not return anything to ignore the GTS.\\n\\n@param `token` Optional token to use for retrieving GTS.\\n\\n@param `selector` Selector to match Geo Time Series, syntax is `class{labels}`.\\n\\n@param `hfcat.info` Optional name of the catalog *info* file, defaults to `hfcat.info`. If the name ends with `.gz`, the content will be gzipped.\\n\\n@param `hfcat.gts` Optional name of the catalog *gts* file, defaults to `hfcat.gts`. If the name ends with `.gz`, the content will be gzipped.\\n\\n\",\"signature\":\"HFCAT( { hfcat.gts:STRING hfcat.info:STRING selector:STRING token:STRING macro:MACRO store:STRING secret:STRING  } ): \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCAT\"},\"HFCLOSE\":{\"description\":\"The `HFCLOSE` function closes a History File Store.\\n\\nThe stores which can be accessed can be controlled using the `hfclose` capability by setting its value to a regular expression matching the name of the accessible stores.\\n\\n@param `store` Name of History File Store to close.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. The secret should not be specified when relying on the `hfclose` capability.\\n\\n\",\"signature\":\"HFCLOSE( store:STRING secret:STRING ): \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFCLOSE\"},\"HFDUMP\":{\"description\":\"The `HFDUMP` function produces a HFile from Geo Time Series data. The function produces a file in the directory from which the Warp 10 instance was launched, unless the configuration key `hfdump.dir` was set in which case the file will be created in this directory. The function will not overwrite an existing file.\\n\\nIf capability `hfdump` is set, its value will be treated as the root directory in which the file will be created.\\n\\nOn top of the input parameters described below, the `HFDUMP` function also supports the parameters of the [`FETCH`](https://warp10.io/doc/FETCH) function with the exclusion of `ttl`, `wtimestamp`, `type`, `typeattr`, `gts`, `merge`, `priority` and `selectors`.\\n\\nThe function will return a MAP containing various information about the file that was just created. This information, among with others, are also stored in the HFile and in the accompanying `.info` file.\\n\\nThe list of GTS included in the HFile are stored in the companion `.gts` file.\\n\\n@param `secret` Secret configured in `hfdump.secret`. The selector will not be modified with extra `.producer`, `.owner` or `.app` label selectors. This parameter is ignored if `token` is set. Secret is not checked if the `hfdump` capability is set.\\n\\n@param `token` Token to use for matching Geo Time Series, if set then `secret` is ignored.\\n\\n@param `path` Path to the file to create. Only the last part of `path` is considered, relative to either `hfdump.dir`, the launch directory or the path specified in capability `hfdump`.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `format` Format of the produced wrappers, either `WRAPPER` or `ZWRAPPER`. Defaults to `WRAPPER`.\\n\\n@param `compress` HFile compression to use, `NONE` and `GZ` (the default) are always supported, `SNAPPY`, `LZ4` and `LZO` may be supported if the required libraries are in the classpath.\\n\\n@param `blocksize` HFile block size in bytes, defaults to 65536.\\n\\n@param `keepempty` Flag indicating whether or not Geo Time Series with no data points should be included in the target file. Doing so can be useful to create a single file that `HFINDEX` can use for populating the Directory.\\n\\n@param `checksums` Flag indicating whether or not write checksums should be output in a companion file.\\n\\n@param `macro` Macro called for each GTS Encoder to store in the file. The macro can transform the `ENCODER` prior to storing, for example to perform a [RANGECOMPACT](https://warp10.io/doc/RANGECOMPACT) or any other transformation. Class name and labels modifications will be ignored. The macro must return an `ENCODER` or a `GTS`.\\n\\n@param `infos` Map with information related to the produced file.\\n\\n@param `catalog` Flag indicating whether or not to generate the `.info` and `.gts` files alongside the `.hfile`. Defaults to `true`.\\n\\n@param `gzipinfo` Flag indicating whether or not the `.info` file should be compressed (default).\\n\\n@param `gzipgts` Flag indicating whether or not the `.gts` file should be compressed (default).\\n\\n@param `bloomfilter` Flag indicating whether or not to generate a Bloom Filter in the HFile (defaults to `true`).\\n\\n@param `conf` Map of parameters to pass to the filesystem when using HDFS.\\n\\n@param `dfs.block.size` Block size to use (in bytes) when using HDFS.\\n\\n@param `dfs.replication` Replication count to use when using HDFS.\\n\\n\",\"signature\":\"HFDUMP( { dfs.replication:LONG dfs.block.size:LONG conf:MAP catalog:BOOLEAN bloomfilter:BOOLEAN gzipgts:BOOLEAN gzipinfo:BOOLEAN macro:MACRO checksums:BOOLEAN keepempty:BOOLEAN blocksize:LONG compress:STRING format:STRING selector:STRING timespan:LONG end:LONG path:STRING token:STRING secret:STRING  } ): infos:MAP\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFDUMP\"},\"HFFETCH\":{\"description\":\"The `HFFETCH` function retrieves data from a History File Store available in a Warp 10 instance.\\n\\n@param `token` Token to use for matching Geo Time Series.\\n\\n@param `end` End timestamp to consider when fetching data points.\\n\\n@param `timespan` Span of time before and including `end` to consider when fetching data points. Ignored if `start` is specified.\\n\\n@param `count` Number of data points to retrieve.\\n\\n@param `start` Start timestamp to consider when fetching data points. It has priority over `timespan`.\\n\\n@param `selector` Selector for matching Geo Time Series, the syntax is `class_selector{label_selectors}`.\\n\\n@param `class` Class selector. Not used if `selector` is set.\\n\\n@param `labels` Labels selectors. Not used if `selector` is set.\\n\\n@param `store` Name of History File Store to access. This can also be specified via the `.hfstore` token attribute.\\n\\n@param `result` List of GTS Encoders or Geo Time Series containing the fetched data.\\n\\n@param `encoders` Set to `true` (default) to produce `ENCODERS`, and to `false` to produce Geo Time Series.\\n\\n@param `gskip` Number of GTS to skip.\\n\\n@param `gcount` Number of GTS to consider.\\n\\n@param `merge` Flag indicating whether or not `ENCODERS` from different files should be merged prior to being returned. This defaults to `true`. Use `false` for faster retrieval.\\n\\n@param `clip` Flag indicating whether or not the data should be clipped to the specified time range or if the complete data from each scanned HFile should be returned. Defaults to `true`.\\n\\n@param `lineage` Optional attribute name which, if defined, will contain the tab separated list of file names from which the data was fetched. The attribute can also be set via the `.hflineage` token attribute.\\n\\n@param `step` Step at which to return data point for each GTS. A step of 3 will return 1 point, then skip 2, then return 1, then skip 2, etc. Defaults to 1, which will not skip any point.\\n\\n@param `timestep` Minimum time between two returned data points while scanning from newest to oldest point. Points not respecting this parameter are skipped.\\n\\n@param `sampling.ratio` A probability between 0.0 (excluded, no datapoints returned) and 1.0 (all datapoints returned). The random sampling is done by the storage layer.\\n\\n@param `skip.count` Set fetch to ignore the N newest points in the time window you specified.\\n\\n\",\"signature\":\"HFFETCH( { token:STRING class:STRING labels:MAP end:LONG timespan:LONG start:LONG count:LONG skip.count:LONG sampling.ratio:DOUBLE timestep:LONG step:LONG gcount:LONG gskip:LONG encoders:BOOLEAN lineage:STRING clip:BOOLEAN merge:BOOLEAN store:STRING selector:STRING  } ): result:LIST\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFFETCH\"},\"HFID\":{\"description\":\"The `HFID` function computes a GTS Id for a given GTS or ENCODER using the specified keys. The GTS or ENCODER must have a class name set.\\n\\n@param `keys` List of keys to use for generating the Id. This list can contain keys as 4 `LONG`s, 2 byte arrays of length 16 each, 2 hex encoded `STRING` representing 16 bytes each, a combination of `BYTES` and hex encoded `STRING`, or a combination of `BYTES` or hex encoded `STRING` and two `LONG`s.\\n\\n@param `id` Id of the GTS or ENCODER, as a byte array of length 16.\\n\\n@param `gts` Geo Time Serie for which to compute the Id.\\n\\n@param `encoder` GTS Encoder for which to compute the Id.\\n\\n\",\"signature\":\"HFID( gts:GTS keys:LIST ): id:BYTES\\nHFID( encoder:ENCODER keys:LIST ): id:BYTES\",\"tags\":[\"extensions\",\"commercial\"],\"OPB64name\":\"HFID\"},\"HFINDEX\":{\"description\":\"The `HFINDEX` function reads a HFile from a History File Store and registers all of its Geo Time Series with the Warp 10 instance Directory.\\n\\nThe stores which can be accessed can be controlled using the `hfindex` capability by setting its value to a regular expression matching the names of the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfindex` capability.\\n\\n@param `file` File to consider within the History File Store.\\n\\n@param `attr` Optional attribute to set on all Geo Time Series with the name of the History File Store. This makes deletion of the GTS easier.\\n\\n@param `count` The number of Geo Time Series registered.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be registered or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"signature\":\"HFINDEX( { gts:BOOLEAN infos:BOOLEAN macro:MACRO secret:STRING attr:STRING store:STRING file:STRING  } ): { count:LONG' count:undefined \\n\\n infos:MAP' infos:undefined \\n\\n gts:LIST<ENCODER>' gts:undefined \\n\\n }\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINDEX\"},\"HFINFO\":{\"description\":\"The `HFINFO` function retrieves information for a History File Store or one of its files.\\n\\nThe stores which can be accessed can be controlled using the `hfinfo` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`. Do not use when relying on the `hfinfo` capability.\\n\\n@param `file` Name of `.hfile` file to consider within the History File Store. Use `NULL` to retrieve information about the whole store.\\n\\n@param `macro` Optional macro which will be called with an `ENCODER` for each Geo Time Series found in `file` and is expected to return a `BOOLEAN` specifying if the GTS should be retained or not.\\n\\n@param `infos` Flag indicating whether or not the file information structure should be returned. The information structure is returned under this key too. Defaults to `true`.\\n\\n@param `gts` Flag indicating whether or not the GTS registered should be returned. The list of GTS is returned under this key too. Defaults to `false`.\\n\\n\",\"signature\":\"HFINFO( { gts:BOOLEAN infos:BOOLEAN macro:MACRO secret:STRING store:STRING file:STRING  } ): { infos:MAP' infos:undefined \\n\\n gts:LIST<ENCODER>' gts:undefined \\n\\n }\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFINFO\"},\"HFKEYS\":{\"description\":\"The `HFKEYS` function finds Geo Time Series matching critera and packs them in a blob suitable for use with `HFileInputFormat`.\\n\\nThe packed keys must be specified in the `hfileinputformat.keys` configuration when using `HFileInputFormat`.\\n\\n@param `README` The parameters used by `HFKEYS` are identical to those used by [`FIND`](https://warp10.io/doc/FIND), please refer to the documentation of this function.\\n\\n@param `keys` Blob containing packed keys. To be specified as the `hfileinputformat.keys` configuration when using the `HFileInputFormat`.\\n\\n\",\"signature\":\"HFKEYS( { README:STRING  } ): keys:STRING\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFKEYS\"},\"HFOPEN\":{\"description\":\"The `HFOPEN` function opens a History File Store, making it available in a Warp 10 instance.\\n\\nThe files which are open are those specified in the `hfcat.info` file.\\n\\nThe files which can be accessed can be controlled using the `hfopen` capability by setting its value to a regular expression matching the accessible roots from which the files can be read.\\n\\n@param `store` Name under which the History File Store will be available in Warp 10.\\n\\n@param `secret` General secret of the History File Store plugin.\\n\\n@param `storeSecret` Secret which will be associated with the newly open store.\\n\\n@param `root` Root directory from which the files should be loaded.\\n\\n@param `rescan` Rescan period (in ms). Defaults to 0. Only set this if you intend to load all the files present in `root` over time.\\n\\n@param `register` `BOOLEAN` indicating whether or not the GTS declared in the GTS metadata file `hfcat.gts` (or the one specified in `hfcat.gts`) should be registered with the Directory.\\n\\n@param `macro` Optional macro used to select which GTS from the GTS metadata `hfcat.gts` should be registered. The macro takes as input an `ENCODER` and returns a `BOOLEAN`.\\n\\n@param `attr` Optional attribute name whose value will be set to the store name when registering the GTS.\\n\\n@param `hfcat.info` Optional name of the catalog file containing the store infos. Defaults to `hfcat.info`.\\n\\n@param `hfcat.gts` Optional name of the catalog file containing the Geo Time Series. Defaults to `hfcat.gts`.\\n\\n@param `ignore.missing` `BOOLEAN` indicating whether missing `.hfile` should be ignored or produce an error.\\n\\n@param `fileorder` How should files be ordered in the store, one of `NAME`, `REVNAME`, `MINTS`, `MAXTS`.\\n\\n@param `maxreaders` Maximum number of open readers per store, defaults to 1024.\\n\\n\",\"signature\":\"HFOPEN( { maxreaders:LONG fileorder:STRING ignore.missing:BOOLEAN attr:STRING hfcat.gts:STRING hfcat.info:STRING register:BOOLEAN macro:MACRO rescan:LONG root:STRING storeSecret:STRING store:STRING  }secret:STRING ): \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFOPEN\"},\"HFRESCAN\":{\"description\":\"The `HFRESCAN` function triggers a rescan of the directory of a defined History File Store. The rescan happens asynchronously.\\n\\nThe HFStores which can be rescanned can be specified using a regular expression as the value of capability `hfrescan`.\\n\\n@param `store` Name of History File Store to consider.\\n\\n@param `secret` Secret associated with the History File Store specified in `store`, checked only if capability `hfrescan` is not set when using capabilities.\\n\\n\",\"signature\":\"HFRESCAN( secret:STRING store:STRING ): \",\"tags\":[\"extensions\"],\"OPB64name\":\"HFRESCAN\"},\"HFTOKEN\":{\"description\":\"The `HFTOKEN` produces a token envelope which can be used to generate a read token to access data in a History File Store.\\n\\nThe Geo Time Series in a History File Store may have been generated with a wide array of producers, owners and applications. The goal of this function is to retrieve those informations and return a `MAP` containing them plus some additional elements.\\n\\nThe returned `MAP` can be used as argument to the [`TOKENGEN`](https://warp10.io/doc/TOKENGEN) function. Please set the `application`, `ttl` and `owner` fields to suitable values for your environment first.\\n\\nThe stores which can be accessed can be controlled using the `hftoken` capability by setting its value to a regular expression matching the accessible stores.\\n\\n@param `store` Name of the History File Store for which a token envelope should be generated.\\n\\n@param `secret` General secret for the History File Store plugin. Not used when the capability `hftoken` is set.\\n\\n@param `envelope` Map containing parameters for generating a token suitable for accessing data in the specified History File Store.\\n\\n\",\"signature\":\"HFTOKEN( store:STRING ): envelope:MAP\\nHFTOKEN( store:STRING secret:STRING ): envelope:MAP\",\"tags\":[\"extensions\"],\"OPB64name\":\"HFTOKEN\"},\"HHCODE->\":{\"description\":\"The `HHCODE->` function splits a [HHCode](https://en.wikipedia.org/wiki/HHCode) into a latitude and a longitude.\\n\\nThe extracted latitude and longitude are DOUBLE converted from FLOATs.\\n\\n@param `hhcode` Helical Hyperspatial Code to split, either a **LONG** or a **STRING**. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `lat` Extracted latitude\\n\\n@param `lon` Extracted longitude\\n\\n\",\"signature\":\"HHCODE->( hhcode:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE->( hhcode:STRING ): lat:DOUBLE lon:DOUBLE\\nHHCODE->( hhcode:BYTES ): lat:DOUBLE lon:DOUBLE\",\"tags\":[\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"H3W2IoG4AIs\"},\"HHCODE.BBOX\":{\"description\":\"The `HHCODE.BBOX` function returns the bounding box of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the bounding box representing the lat/lon of North-Easth and South-West corners of the bbox.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `latSW` Latitude of the south west corner of the bounding box\\n\\n@param `lonSW` Longitude of the south west corner of the bounding box\\n\\n@param `latNE` Latitude of the north east corner of the bounding box\\n\\n@param `lonNE` Longitude of the north east corner of the bounding box\\n\\n\",\"signature\":\"HHCODE.BBOX( hhCode:STRING resolution:LONG ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:LONG resolution:LONG ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:BYTES resolution:LONG ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:STRING ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\\nHHCODE.BBOX( hhCode:BYTES ): latSW:DOUBLE lonSW:DOUBLE latNE:DOUBLE lonNE:DOUBLE\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.BBOX\"},\"HHCODE.CENTER\":{\"description\":\"The `HHCODE.CENTER` function returns the center of the given hhcode at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the center and returns its lat/lon.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `hhCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n@param `lat` Latitude of the center of the given HHCode\\n\\n@param `lon` Longitude of the center of the given HHCode\\n\\n\",\"signature\":\"HHCODE.CENTER( hhCode:STRING resolution:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:LONG resolution:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:BYTES resolution:LONG ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:STRING ): lat:DOUBLE lon:DOUBLE\\nHHCODE.CENTER( hhCode:BYTES ): lat:DOUBLE lon:DOUBLE\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.CENTER\"},\"HHCODE.EAST\":{\"description\":\"The `HHCODE.EAST` function returns the cell east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.EAST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.EAST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.EAST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.EAST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.EAST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.EAST\"},\"HHCODE.NORTH\":{\"description\":\"The `HHCODE.NORTH` function returns the cell north of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.NORTH( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.NORTH( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.NORTH( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.NORTH( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.NORTH( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH\"},\"HHCODE.NORTH.EAST\":{\"description\":\"The `HHCODE.NORTH.EAST` function returns the cell north east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.NORTH.EAST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.NORTH.EAST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.NORTH.EAST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.NORTH.EAST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.NORTH.EAST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.EAST\"},\"HHCODE.NORTH.WEST\":{\"description\":\"The `HHCODE.NORTH.WEST` function returns the cell north west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.NORTH.WEST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.NORTH.WEST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.NORTH.WEST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.NORTH.WEST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.NORTH.WEST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.NORTH.WEST\"},\"HHCODE.SOUTH\":{\"description\":\"The `HHCODE.SOUTH` function returns the cell south of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.SOUTH( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.SOUTH( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.SOUTH( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.SOUTH( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.SOUTH( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH\"},\"HHCODE.SOUTH.EAST\":{\"description\":\"The `HHCODE.SOUTH.EAST.EAST` function returns the cell south east of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.SOUTH.EAST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.SOUTH.EAST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.SOUTH.EAST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.SOUTH.EAST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.SOUTH.EAST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.EAST\"},\"HHCODE.SOUTH.WEST\":{\"description\":\"The `HHCODE.SOUTH.WEST` function returns the cell south west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.SOUTH.WEST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.SOUTH.WEST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.SOUTH.WEST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.SOUTH.WEST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.SOUTH.WEST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.SOUTH.WEST\"},\"HHCODE.WEST\":{\"description\":\"The `HHCODE.WEST` function returns the cell west of the given one at the given resolution.\\n\\nIt will first convert the HHCode to the resolution and then compute the new cell.\\n\\nThe function accepts 3 different types of HHCode and will return the same type for the resulting HHCode.\\n\\nSince 2.6.0, the resolution is optional. In that case the length of the input is used to determine the resolution.\\n\\n@param `inputHHCode` HHCode to use as reference, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `outputHHCode` The new HHCode, either a **LONG**, a **STRING** or a bytes array. **STRING** values can contain from 1 to 16 hexadecimal digits.\\n\\n@param `resolution` Resolution to use for the cells. Resolution is an even number between 2 and 32.\\n\\n\",\"signature\":\"HHCODE.WEST( inputHHCode:STRING resolution:LONG ): outputHHCode:STRING\\nHHCODE.WEST( inputHHCode:LONG resolution:LONG ): outputHHCode:LONG\\nHHCODE.WEST( inputHHCode:BYTES resolution:LONG ): outputHHCode:BYTES\\nHHCODE.WEST( inputHHCode:STRING ): outputHHCode:STRING\\nHHCODE.WEST( inputHHCode:BYTES ): outputHHCode:BYTES\",\"tags\":[\"geo\"],\"since\":\"2.4.0\",\"OPB64name\":\"HHCODE.WEST\"},\"HIDE\":{\"description\":\"The `HIDE` function hides some levels of the stack to the rest of the executing code. This allows a kind of protection for levels which should not be accessed by a macro call for example. Note that this is not a real protection since a call to [`SHOW`](/doc/SHOW) could reveal the hidden levels.\\n\\nThe hidden levels are always the deepest. Depending on the `levels` parameter to the call to `HIDE`, the hidden levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there remains at most a certain number ((*abs(`levels`)*) with `levels` < 0).\\n\\nWhen called with `NULL` as parameter, `HIDE` will hide all the visible levels.\\n\\nThe number of newly hidden levels is returned.\\n\\n@param `levels` Number of levels to hide or to remain visible, or `NULL` to hide them all.\\n\\n@param `hidden` Number of levels actually hidden.\\n\\n\",\"signature\":\"HIDE( levels:LONG ): hidden:LONG\",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"HIDE\"},\"HLOCATE\":{\"description\":\"The `HLOCATE` function locates the HBase regions containing a list of Geo Time Series™.\\n\\nThis function only works with the distributed version of Warp 10™.\\n\\nIt outputs a list of lists containing a GTS selector, the host and port of the RegionServer currently serving the region and the region id of a region containing data for this GTS.\\n\\n@param `gts` List of Geo Time Series™ to locate.\\n\\n@param `result` List of GTS, RegionServer, region tuples.\\n\\n\",\"signature\":\"HLOCATE( gts:LIST<GTS> ): result:LIST\",\"tags\":[\"extensions\"],\"since\":\"1.2.13\",\"OPB64name\":\"HLOCATE\"},\"HTTP\":{\"description\":\"The `HTTP` function sends an HTTP request, waits for the response then returns it.\\nThe input is a MAP with at least the field `url`.\\nThe response is a MAP with the fields `status.code`, `status.message`, `headers` and `content`.\\n\\nThe `HTTP` function can also be used in streaming mode by providing a positive `chunk.size` argument.\\nIn streaming mode, whenever `chunk.size` bytes are downloaded, a response MAP with the additional field `chunk.number` is pushed onto the stack and the macro given as `chunk.macro` argument is being executed.\\nFinally, a last `chunk.macro` execution is done on a chunk response that has empty `content` and `chunk.number = -1`.\\n\\nThe `HTTP` function makes use of token's capabilities to raise the initial limits per warpscript (set from configurations).\\n\\n| Description | Capability | Initial limit | Default value\\n|----------|------|------|------|\\n| Maximum number of calls | http.requests | warpscript.http.maxrequests | 1 |\\n| Maximum number of downloadable bytes | http.size | warpscript.http.maxsize | 65536 |\\n| Maximum number of bytes per chunk | http.chunksize | warpscript.http.maxchunksize | 65536 |\\n\\nOther configurable options:\\n| Description | Configuration | Default value\\n|----------|------|------|\\n| If true, authentication is required to call HTTP | warpscript.http.authentication.required | false |\\n| If set, it is a capability that is required to call HTTP | warpscript.http.capability | *none* |\\n| List of patterns to include/exclude for hosts. If not set, use the value of webcall.host.patterns | warpscript.http.host.patterns | *none* |\\n\\n\\n@param `url` The URL to send the HTTP request to\\n\\n@param `method` Optional HTTP method (aka verb), default to GET or POST whether there is a body\\n\\n@param `headers` Optional request headers\\n\\n@param `body` Optional body. BYTES or UTF-8 encoded STRING\\n\\n@param `chunkMacro` Optional macro that is executed whenever a chunk has been downloaded. It expects a MAP that contains chunk number (LONG), status code (LONG), status message (STRING), headers (MAP), and chunk content (BYTES)\\n\\n@param `chunkSize` Optional chunk size. Activate streaming mode if positive\\n\\n@param `chunkNumber` The index of the current chunk (starting from 1). This field is only set for intermediate chunk responses\\n\\n@param `username` Optional username. It works with basic authentication scheme\\n\\n@param `password` Optional password. It works with basic authentication scheme\\n\\n@param `statusCode` The response status code\\n\\n@param `statusMessage` The response status message\\n\\n@param `responseHeaders` The response headers\\n\\n@param `content` The content of the response\\n\\n\",\"signature\":\"HTTP( { url:STRING  } ): { content:BYTES' content:undefined \\n\\n responseHeaders:MAP' headers:undefined \\n\\n statusMessage:STRING' status.message:undefined \\n\\n statusCode:LONG' status.code:undefined \\n\\n }\\nHTTP( { url:STRING method:STRING headers:MAP body:OBJECT  } ): { content:BYTES' content:undefined \\n\\n responseHeaders:MAP' headers:undefined \\n\\n statusMessage:STRING' status.message:undefined \\n\\n statusCode:LONG' status.code:undefined \\n\\n }\\nHTTP( { url:STRING method:STRING headers:MAP body:OBJECT chunkMacro:MACRO chunkSize:LONG username:STRING password:STRING  } ): { chunkNumber:LONG' chunk.number:undefined \\n\\n content:BYTES' content:undefined \\n\\n responseHeaders:MAP' headers:undefined \\n\\n statusMessage:STRING' status.message:undefined \\n\\n statusCode:LONG' status.code:undefined \\n\\n }\",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.8.1\",\"OPB64name\":\"HTTP\"},\"HULLSHAPE\":{\"description\":\"Return the shape of a tensor (or multidimensional array) that would be able to contain all the values of an input nested list. The size of the returned shape is equal to the deepest level of nesting plus one. Its i-th value is equal to the size of the largest list that is nested i levels deep.\\n\\n@param `list` The input list.\\n\\n@param `shape` The hull shape of the input list.\\n\\n\",\"signature\":\"HULLSHAPE( list:LIST ): shape:LIST\\nHULLSHAPE( { list:LIST  } ): shape:LIST\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"HULLSHAPE\"},\"HUMANDURATION\":{\"description\":\"The `HUMANDURATION` function consumes a **LONG** duration and push back an easily readable **STRING** representation of this duration.\\n\\nThe format of the pushed back **STRING** is **[Dd][Hh][Mm]S.XXXXXXs** with D as days, H as hours, M as minutes, S as seconds and XXXXXX the number of ms (3 digits), us (6 digits) or ns (9 digits) depending on the platform configuration. If the duration is less than a day, Dd is omitted, sames goes with Hh and Mm.\\n\\n@param `duration` Duration expressed in the platform time unit.\\n\\n@param `humanReadableDuration`  A representation of the duration, easily readable for a human.\\n\\n\",\"signature\":\"HUMANDURATION( duration:LONG ): humanReadableDuration:STRING\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"HUMANDURATION\"},\"HYBRIDTEST\":{\"description\":\"The `HYBRIDTEST` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\nLike [`STLESDTEST`](/doc/STLESDTEST), `HYBRIDTEST` performs an [`ESDTEST`](/doc/ESDTEST) onto a GTS that have been relieved of its seasonal and trend part. \\nBut unlike the mentioned test, [`STL`](/doc/STL) and [`ESDTEST`](/doc/ESDTEST) are performed piecewise. Plus, the trend is approximated with the piecewise \\nmedian instead of the trend part of the [`STL`](/doc/STL) decomposition.\\n\\nA LIST of ticks (or a LIST of LIST of ticks), corresponding to the outliers, is pushed back onto the stack.\\n\\nThis technique was first developped at [Twitter](https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series).\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ## References\\n> - Owen Vallis, Jordan Hochenbaum, Arun Kejariwal. “A Novel Technique for Long-Term Anomaly Detection in the Cloud”, Twitter Inc (2014).\\n> - Cleveland, Robert B., et al. “STL: A seasonal-trend decomposition procedure based on loess.” Journal of Official Statistics 6.1 (1990): 3-73.\\n> - Rosner, Bernard (May 1983), “Percentage Points for a Generalized ESD Many-Outlier Procedure”,Technometrics, 25(2), pp. 165-172.\\n\\n\\n@param `parameters` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `lgts` List of [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n\",\"signature\":\"HYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG alpha:DOUBLE parameters:MAP ): result:LIST<LONG>\\nHYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LONG>\\nHYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG ): result:LIST<LONG>\\nHYBRIDTEST( gts:GTS period:LONG piece:LONG k:LONG parameters:MAP ): result:LIST<LONG>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG alpha:DOUBLE parameters:MAP ): result:LIST<LIST<LONG>>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LIST<LONG>>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG ): result:LIST<LIST<LONG>>\\nHYBRIDTEST( lgts:LIST<GTS> period:LONG piece:LONG k:LONG parameters:MAP ): result:LIST<LIST<LONG>>\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST\"},\"HYBRIDTEST2\":{\"description\":\"The `HYBRIDTEST2` function detects outliers in a GTS (or a LIST of GTS) which has a seasonal part.\\n\\n`HYBRIDTEST2` is almost the same procedure than [`HYBRIDTEST`](/doc/HYBRIDTEST) except that it does not use [`STL`](/doc/STL) decomposition for the \\nseasonal extract.\\n\\nThe seasonal part is approximated by pondering each value with the [entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29) of the \\n[modified Z-score](http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h.htm) of its seasonal subseries (series with only the values of the \\nsame season).\\n\\nThis test is usually preferred when it is meaningful to think in term of entropy, for example when the GTS represents counters of events. Also as it \\ndoes not use [`STL`](/doc/STL) decomposition, it is not prone to border effects, but at the cost of not detecting slight outliers.\\n\\nThis function only applies to [`bucketized`](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upper-bound of the number of outliers to detect per piece\\n\\n@param `piece` Number of periods that compose a piece\\n\\n@param `period` Number of buckets that compose a period\\n\\n@param `gts` [`Bucketized`](/doc/BUCKETIZE) GTS\\n\\n@param `result` A LIST of ticks corresponding to the outliers\\n\\n@param `gtsList` List of GTS\\n\\n\",\"signature\":\"HYBRIDTEST2( gts:GTS period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LONG>\\nHYBRIDTEST2( gts:GTS period:LONG piece:LONG k:LONG ): result:LIST<LONG>\\nHYBRIDTEST2( gtsList:LIST<GTS> period:LONG piece:LONG k:LONG alpha:DOUBLE ): result:LIST<LIST<LONG>>\\nHYBRIDTEST2( gtsList:LIST<GTS> period:LONG piece:LONG k:LONG ): result:LIST<LIST<LONG>>\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYBRIDTEST2\"},\"HYPOT\":{\"description\":\"HYPOT function returns the radius r from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta), r = sqrt(x²+y²).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `x` x coordinate.\\n\\n@param `y` y coordinate.\\n\\n@param `lx` List of x coordinates.\\n\\n@param `ly` List of y coordinates.\\n\\n@param `gtsx` Numerical GTS of x coordinates.\\n\\n@param `gtsy` Numerical GTS of y coordinates.\\n\\n@param `result` radius r in polar coordinates\\n\\n@param `lresult` List of radiuses r in polar coordinates\\n\\n@param `gtsresult` Numerical GTS of radiuses r in polar coordinates\\n\\n\",\"signature\":\"HYPOT( x:NUMBER y:NUMBER ): result:DOUBLE\\nHYPOT( x:NUMBER ly:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nHYPOT( lx:LIST<NUMBER> y:NUMBER ): lresult:LIST<DOUBLE>\\nHYPOT( x:NUMBER gtsy:GTS ): gtsresult:GTS\\nHYPOT( gtsx:GTS y:NUMBER ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"HYPOT\"},\"IDENT\":{\"description\":\"The `IDENT` function pushes onto the stack the value of the system property `warp.ident`.\\n\\n@param `ident` The value of the `warp.ident` property.\\n\\n\",\"signature\":\"IDENT(): ident:STRING\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDENT\"},\"IDWT\":{\"description\":\"The `IDWT` function computes an Inverse [Discrete Wavelet Transform](https://en.wikipedia.org/wiki/Discrete_wavelet_transform) on a Geo Time Series™.\\n\\nThe names of the available Wavelet are the following:\\n\\n| Name | Wavelet |\\n| --- | --- |\\n| haar | [Haar](http://wavelets.pybytes.com/wavelet/haar/) |\\n| db1 | [Daubechies 1](http://wavelets.pybytes.com/wavelet/db1/) |\\n| db2 | [Daubechies 2](http://wavelets.pybytes.com/wavelet/db2/) |\\n| db3 | [Daubechies 3](http://wavelets.pybytes.com/wavelet/db3/) |\\n| db4 | [Daubechies 4](http://wavelets.pybytes.com/wavelet/db4/) |\\n| db5 | [Daubechies 5](http://wavelets.pybytes.com/wavelet/db5/) |\\n| db6 | [Daubechies 6](http://wavelets.pybytes.com/wavelet/db6/) |\\n| db7 | [Daubechies 7](http://wavelets.pybytes.com/wavelet/db7/) |\\n| db8 | [Daubechies 8](http://wavelets.pybytes.com/wavelet/db8/) |\\n| db9 | [Daubechies 9](http://wavelets.pybytes.com/wavelet/db9/) |\\n| db10 | [Daubechies 10](http://wavelets.pybytes.com/wavelet/db10/) |\\n| db11 | [Daubechies 11](http://wavelets.pybytes.com/wavelet/db11/) |\\n| db12 | [Daubechies 12](http://wavelets.pybytes.com/wavelet/db12/) |\\n| db13 | [Daubechies 13](http://wavelets.pybytes.com/wavelet/db13/) |\\n| db14 | [Daubechies 14](http://wavelets.pybytes.com/wavelet/db14/) |\\n| db15 | [Daubechies 15](http://wavelets.pybytes.com/wavelet/db15/) |\\n| db16 | [Daubechies 16](http://wavelets.pybytes.com/wavelet/db16/) |\\n| db17 | [Daubechies 17](http://wavelets.pybytes.com/wavelet/db17/) |\\n| db18 | [Daubechies 18](http://wavelets.pybytes.com/wavelet/db18/) |\\n| db19 | [Daubechies 19](http://wavelets.pybytes.com/wavelet/db19/) |\\n| db20 | [Daubechies 20](http://wavelets.pybytes.com/wavelet/db20/) |\\n| sym2 | [Symlets 2](http://wavelets.pybytes.com/wavelet/sym2/) |\\n| sym3 | [Symlets 3](http://wavelets.pybytes.com/wavelet/sym3/) |\\n| sym4 | [Symlets 4](http://wavelets.pybytes.com/wavelet/sym4/) |\\n| sym5 | [Symlets 5](http://wavelets.pybytes.com/wavelet/sym5/) |\\n| sym6 | [Symlets 6](http://wavelets.pybytes.com/wavelet/sym6/) |\\n| sym7 | [Symlets 7](http://wavelets.pybytes.com/wavelet/sym7/) |\\n| sym8 | [Symlets 8](http://wavelets.pybytes.com/wavelet/sym8/) |\\n| sym9 | [Symlets 9](http://wavelets.pybytes.com/wavelet/sym9/) |\\n| sym10 | [Symlets 10](http://wavelets.pybytes.com/wavelet/sym10/) |\\n| sym11 | [Symlets 11](http://wavelets.pybytes.com/wavelet/sym11/) |\\n| sym12 | [Symlets 12](http://wavelets.pybytes.com/wavelet/sym12/) |\\n| sym13 | [Symlets 13](http://wavelets.pybytes.com/wavelet/sym13/) |\\n| sym14 | [Symlets 14](http://wavelets.pybytes.com/wavelet/sym14/) |\\n| sym15 | [Symlets 15](http://wavelets.pybytes.com/wavelet/sym15/) |\\n| sym16 | [Symlets 16](http://wavelets.pybytes.com/wavelet/sym16/) |\\n| sym17 | [Symlets 17](http://wavelets.pybytes.com/wavelet/sym17/) |\\n| sym18 | [Symlets 18](http://wavelets.pybytes.com/wavelet/sym18/) |\\n| sym19 | [Symlets 19](http://wavelets.pybytes.com/wavelet/sym19/) |\\n| sym20 | [Symlets 20](http://wavelets.pybytes.com/wavelet/sym20/) |\\n| coif1 | [Coiflets 1](http://wavelets.pybytes.com/wavelet/coif1/) |\\n| coif2 | [Coiflets 2](http://wavelets.pybytes.com/wavelet/coif2/) |\\n| coif3 | [Coiflets 3](http://wavelets.pybytes.com/wavelet/coif3/) |\\n| coif4 | [Coiflets 4](http://wavelets.pybytes.com/wavelet/coif4/) |\\n| coif5 | [Coiflets 5](http://wavelets.pybytes.com/wavelet/coif5/) |\\n| bior1.1 | [Biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/bior1.1/) |\\n| bior1.3 | [Biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/bior1.3/) |\\n| bior1.5 | [Biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/bior1.5/) |\\n| bior2.2 | [Biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/bior2.2/) |\\n| bior2.4 | [Biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/bior2.4/) |\\n| bior2.6 | [Biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/bior2.6/) |\\n| bior2.8 | [Biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/bior2.8/) |\\n| bior3.1 | [Biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/bior3.1/) |\\n| bior3.3 | [Biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/bior3.3/) |\\n| bior3.5 | [Biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/bior3.5/) |\\n| bior3.7 | [Biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/bior3.7/) |\\n| bior3.9 | [Biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/bior3.9/) |\\n| bior4.4 | [Biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/bior4.4/) |\\n| bior5.5 | [Biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/bior5.5/) |\\n| bior6.8 | [Biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/bior6.8/) |\\n| rbio1.1 | [Reverse biorthogonal 1.1](http://wavelets.pybytes.com/wavelet/rbio1.1/) |\\n| rbio1.3 | [Reverse biorthogonal 1.3](http://wavelets.pybytes.com/wavelet/rbio1.3/) |\\n| rbio1.5 | [Reverse biorthogonal 1.5](http://wavelets.pybytes.com/wavelet/rbio1.5/) |\\n| rbio2.2 | [Reverse biorthogonal 2.2](http://wavelets.pybytes.com/wavelet/rbio2.2/) |\\n| rbio2.4 | [Reverse biorthogonal 2.4](http://wavelets.pybytes.com/wavelet/rbio2.4/) |\\n| rbio2.6 | [Reverse biorthogonal 2.6](http://wavelets.pybytes.com/wavelet/rbio2.6/) |\\n| rbio2.8 | [Reverse biorthogonal 2.8](http://wavelets.pybytes.com/wavelet/rbio2.8/) |\\n| rbio3.1 | [Reverse biorthogonal 3.1](http://wavelets.pybytes.com/wavelet/rbio3.1/) |\\n| rbio3.3 | [Reverse biorthogonal 3.3](http://wavelets.pybytes.com/wavelet/rbio3.3/) |\\n| rbio3.5 | [Reverse biorthogonal 3.5](http://wavelets.pybytes.com/wavelet/rbio3.5/) |\\n| rbio3.7 | [Reverse biorthogonal 3.7](http://wavelets.pybytes.com/wavelet/rbio3.7/) |\\n| rbio3.9 | [Reverse biorthogonal 3.9](http://wavelets.pybytes.com/wavelet/rbio3.9/) |\\n| rbio4.4 | [Reverse biorthogonal 4.4](http://wavelets.pybytes.com/wavelet/rbio4.4/) |\\n| rbio5.5 | [Reverse biorthogonal 5.5](http://wavelets.pybytes.com/wavelet/rbio5.5/) |\\n| rbio6.8 | [Reverse biorthogonal 6.8](http://wavelets.pybytes.com/wavelet/rbio6.8/) |\\n| dmey | [Discrete Meyer, FIR approximation](http://wavelets.pybytes.com/wavelet/dmey/) |\\n\\n\\n@param `wavelet` Wavelet to consider\\n\\n@param `gts` Geo Time Series™ which contains the wavelet coefficients as is returned by [`FDWT`](/doc/FDWT).\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"signature\":\"IDWT( gts:GTS wavelet:STRING ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IDWT\"},\"IEEEREMAINDER\":{\"description\":\"The `IEEEREMAINDER` function consumes two parameters, a dividend f1 and a divisor f2. This function push the remainder onto the stack as\\nprescribed by the [IEEE 754 standard](https://en.wikipedia.org/wiki/IEEE_754-1985).\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `dividend` Dividend, converted as DOUBLE if not already the case.\\n\\n@param `divisor` Divisor, converted as DOUBLE if not already the case.\\n\\n@param `result` Remainder\\n\\n@param `ldividend` List of dividends, converted as DOUBLE if not already the case.\\n\\n@param `ldivisor` List of divisors, converted as DOUBLE if not already the case.\\n\\n@param `lresult` List of remainders\\n\\n@param `gtsdividend` Numerical GTS of dividends, converted as DOUBLE if not already the case.\\n\\n@param `gtsdivisor` Numerical GTS of divisors, converted as DOUBLE if not already the case.\\n\\n@param `gtsresult` GTS of remainders\\n\\n\",\"signature\":\"IEEEREMAINDER( dividend:NUMBER divisor:NUMBER ): result:LONG\\nIEEEREMAINDER( dividend:NUMBER ldivisor:LIST<NUMBER> ): lresult:LIST<LONG>\\nIEEEREMAINDER( ldividend:LIST<NUMBER> divisor:NUMBER ): lresult:LIST<LONG>\\nIEEEREMAINDER( dividend:NUMBER gtsdivisor:GTS ): gtsresult:GTS\\nIEEEREMAINDER( gtsdividend:GTS divisor:NUMBER ): gtsresult:GTS\",\"tags\":[\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"IEEEREMAINDER\"},\"IFFT\":{\"description\":\"The `IFFT` function computes an Inverse [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) of two Geo Time Series™ \\nrepresenting real and imaginary parts of FFT coefficients.\\n\\nThe result is the reconstructed Geo Time Series™. The ticks of this reconstructed GTS are the coefficient indices. They must be multipled by the original \\nbucketspan to space the ticks according to the decomposed Geo Time Series™. The bucketspan is equal to `X / (n * factor)` where `X` is the number of time \\nunits in a second, `n` is the number of coefficients and `factor` is the scale factor returned by `FFT`.\\n\\n@param `im` GTS containing the imaginary part\\n\\n@param `real` GTS containing the real parts of the `FFT` coefficients\\n\\n@param `result` Reconstructed Geo Time Series™\\n\\n\",\"signature\":\"IFFT( real:GTS im:GTS ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFFT\"},\"IFT\":{\"description\":\"The `IFT` function is a conditional construct which will run a macro only if a boolean condition is true. The condition can either be a boolean on the stack or the result of a macro run.\\n\\n@param `check` Boolean which will be checked as the conditional test.\\n\\n@param `if` Macro which will be executed to determine the conditional test. This macro must leave a boolean on the stack.\\n\\n@param `then` Macro which is executed if the conditional test is `true`.\\n\\n@param `result` State of the stack after the `then` macro is executed.\\n\\n\",\"signature\":\"IFT( if:MACRO then:MACRO ): result:ANY*\\nIFT( check:BOOLEAN then:MACRO ): result:ANY*\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFT\"},\"IFTE\":{\"description\":\"The `IFTE` function is a conditional construct which evaluates a condition and executes one of two macros depending on the condition (`true` or `false`). The condition can either be a BOOLEAN value on the stack or a macro which will be executed and must leave a BOOLEAN on the stack.\\n\\n@param `else` Macro executed if the condition is `false`.\\n\\n@param `then` Macro executed if the condition is `true`.\\n\\n@param `if` Macro executed to evaluate the condition. Must leave a BOOLEAN on top of the stack.\\n\\n@param `condition` Boolean value used as the condition.\\n\\n@param `result` Result of the execution of either the `then` or `else` macro.\\n\\n\",\"signature\":\"IFTE( if:MACRO then:MACRO else:MACRO ): result:ANY*\\nIFTE( condition:BOOLEAN then:MACRO else:MACRO ): result:ANY*\",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"IFTE\"},\"IMMUTABLE\":{\"description\":\"Transforms a collection (**LIST**, **MAP**, **VLIST**, **SET**) into an immutable one. Any attempt to modify the immutable collection will fail. The original collection is not modified.\\n\\n@param `list` List to wrap into an immutable wrapper.\\n\\n@param `map` Map to wrap into an immutable wrapper.\\n\\n@param `set` Set to wrap into an immutable wrapper.\\n\\n@param `vector` Vector to wrap into an immutable wrapper.\\n\\n@param `immutableList` Immutable version of 'list'.\\n\\n@param `immutableMap` Immutable version of 'map'.\\n\\n@param `immutableSet` Immutable version of 'set'.\\n\\n@param `immutableVector` Immutable version of 'vector'.\\n\\n\",\"signature\":\"IMMUTABLE( list:LIST ): immutableList:LIST\\nIMMUTABLE( map:MAP ): immutableMap:MAP\\nIMMUTABLE( set:SET ): immutableSet:SET\\nIMMUTABLE( vector:VLIST ): immutableVector:VLIST\",\"tags\":[\"lists\",\"maps\",\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"IMMUTABLE\"},\"IMPORT\":{\"description\":\"The `IMPORT` function allows to create aliases for macro name prefixes. This is handy when accessing macros from WarpFleet™ repositories which might have multiple versions and/or long group and artifact ids. When fetching a macro, the *imported* prefixes will be scanned and the longest matching one will be replaced by the associated alias.\\n\\n@param `prefix` Original prefix to *import*.\\n\\n@param `as` Name under which `prefix` will be imported.\\n\\n\",\"signature\":\"IMPORT( prefix:STRING as:STRING ): \",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"IMPORT\"},\"INCREMENTEXACT\":{\"description\":\"The `INCREMENTEXACT` function consumes one NUMBER from the top of the stack and puts back the value incremented by one. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be incremented by one\\n\\n@param `result` The incremented value\\n\\n@param `lvalue` List of values to be incremented by one\\n\\n@param `lresult` List of incremented values\\n\\n@param `gts` GTS whose values are to be incremented by one\\n\\n@param `gtsresult` GTS of incremented values\\n\\n\",\"signature\":\"INCREMENTEXACT( value:NUMBER ): result:LONG\\nINCREMENTEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nINCREMENTEXACT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"INCREMENTEXACT\"},\"INDEXOF\":{\"description\":\"      This function allows you to find: \\n\\n- the indexes of an item in a list\\n- the indexes of an item in a byte array\\n- the indexes of a substring in a string\\n- the keys of an item in a map\\n- the timestamps of a value in a GTS\\n\\n@param `collection` The collection in wich to look for the object\\n\\n@param `objectToLookFor` The item to look for\\n\\n@param `numberOfIndexes` The number of indexes to return, 0 for all the indexes\\n\\n@param `indexes` The indexes of the searched item\\n\\n\",\"signature\":\"INDEXOF( collection:LIST objectToLookFor:ANY numberOfIndexes:LONG ): indexes:LIST<LONG>\\nINDEXOF( collection:MAP objectToLookFor:ANY numberOfIndexes:LONG ): indexes:LIST<ANY>\\nINDEXOF( collection:BYTES objectToLookFor:LONG numberOfIndexes:LONG ): indexes:LIST<LONG>\\nINDEXOF( collection:GTS objectToLookFor:ANY numberOfIndexes:LONG ): indexes:LIST<LONG>\\nINDEXOF( collection:STRING objectToLookFor:STRING numberOfIndexes:LONG ): indexes:LIST<LONG>\",\"tags\":[\"lists\",\"maps\",\"strings\",\"gts\"],\"since\":\"2.10.1\",\"OPB64name\":\"INDEXOF\"},\"INFLATE\":{\"description\":\"Decompresses a byte array containing data compressed by [`DEFLATE`](doc/DEFLATE).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"signature\":\"INFLATE( compressed:BYTES ): uncompressed:BYTES\",\"tags\":[\"conversion\"],\"since\":\"2.1.0\",\"OPB64name\":\"INFLATE\"},\"INFO\":{\"description\":\"Generate documentation of a function or a macro.\\n\\n@param `conf` String list of related configuration keys existing in the Warp 10 configuration.\\n\\n@param `examples` String list of WarpScript examples.\\n\\n@param `related` String list of related functions.\\n\\n@param `params` Map describing the parameters defined in `sig`.\\n\\n@param `sig` List of signatures. Each signature is a **LIST** with 2 lists (input and output) which contain parameter definitions: *eg* `param1:STRING` in stack order (top first)\\n\\n@param `desc` Description of the function or macro.\\n\\n@param `tags` String list tags (*eg* categories).\\n\\n@param `version` Version of the Warp 10 distribution on which this funcion is available (`standalone` | `distributed` | `all` | `pkg` | `ext` | `plugin`)\\n\\n@param `deleted` Version's number of Warp 10 where this function (or macro) was deleted.\\n\\n@param `deprecated` Version's number of Warp 10 where this function (or macro) was deprecated.\\n\\n@param `since` Version's number of Warp 10 where this function (or macro) was included.\\n\\n@param `name` Name of the function or macro.\\n\\n@param `ext` Fully qualified class name of the WarpScript Extension defining the function.\\n\\n@param `plugin` Fully qualified class name of the WarpScript Plugin defining the function.\\n\\n\",\"signature\":\"INFO( { plugin:STRING ext:STRING name:STRING since:STRING deprecated:STRING deleted:STRING version:STRING tags:LIST desc:STRING sig:LIST params:MAP related:LIST examples:LIST conf:LIST  } ): \",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFO\"},\"INFOMODE\":{\"description\":\"Toggles the info mode ON or OFF depending on its current state. Default is OFF when the stack is created.\\n\\nWhen info mode is ON, the [`INFO`](/doc/INFO) function pushes its map parameter on the stack and stops the current execution as [`STOP`](/doc/STOP) would do.\\n\\n\",\"signature\":\"INFOMODE(): \",\"tags\":[\"platform\",\"help\"],\"since\":\"1.2.14\",\"OPB64name\":\"INFOMODE\"},\"INTEGRATE\":{\"description\":\"The `INTEGRATE` function takes a GTS or a list thereof and integrates it/them, considering the value at each tick is a rate of change per second.\\n\\n@param `initial` Initial value\\n\\n@param `gts` GTS to integrate\\n\\n@param `lgts` List of GTS to integrate\\n\\n@param `result` Integrated GTS\\n\\n@param `lresult` List of integrated GTS\\n\\n\",\"signature\":\"INTEGRATE( gts:GTS initial:NUMBER ): result:GTS\\nINTEGRATE( lgts:LIST<GTS> initial:NUMBER ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTEGRATE\"},\"INTERPOLATE\":{\"description\":\"The `INTERPOLATE` function fills gaps in a [bucketized](/doc/BUCKETIZE) Geo Time Series™ instance with by interpolating linearly. \\n\\nThis function has no effect on non bucketized GTS instances.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `gtsList` List of bucketized GTS\\n\\n@param `result` Filled bucketized GTS\\n\\n@param `resultList` list of filled bucketized GTS\\n\\n\",\"signature\":\"INTERPOLATE( gts:GTS ): result:GTS\\nINTERPOLATE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERPOLATE\"},\"INTERSECTION\":{\"description\":\"Computes the intersection &#x2229; of two sets.\\n\\nThe `INTERSECTION` function consumes two sets from the top of the stack and pushes back its mathematical intersection (ie: the elements in common).\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x2229; *B*\\n\\n\",\"signature\":\"INTERSECTION( setA:SET setB:SET ): output:SET\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"INTERSECTION\"},\"INV\":{\"description\":\"Inverts a matrix. The inversion is attempted using the [LU Decomposition](https://en.wikipedia.org/wiki/LU_decomposition) algorithm.\\n\\nIf the matrix is singular or not square an error will be raised.\\n\\n@param `matrix` Matrix to invert.\\n\\n@param `inverse` Inverse of the original matrix.\\n\\n\",\"signature\":\"INV( matrix:MATRIX ): inverse:MATRIX\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"INV\"},\"ISAUTHENTICATED\":{\"description\":\"Returns true or false whether or not the stack is authenticated\\n\\n@param `result` True if the stack is authenticated, false otherwise\\n\\n\",\"signature\":\"ISAUTHENTICATED(): result:BOOLEAN\",\"tags\":[\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"ISAUTHENTICATED\"},\"ISNULL\":{\"description\":\"The `ISNULL` function consumes a parameter p from the top of the stack and pushes onto the stack true if p is null, else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p is null\\n\\n\",\"signature\":\"ISNULL( p:ANY ): result:BOOLEAN\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNULL\"},\"ISNaN\":{\"description\":\"The `ISNaN` function consumes a numeric parameter p from the top of the stack and pushes onto the stack true if p is Not a Number (NaN), else it pushes false.\\n\\n@param `p` Parameter\\n\\n@param `result` True if p a Double and is NaN, false  otherwise\\n\\n\",\"signature\":\"ISNaN( p:ANY ): result:BOOLEAN\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISNaN\"},\"ISO8601\":{\"description\":\"The `ISO8601` function consumes an optional **STRING** timezone and a **LONG** UTC timestamp and pushes back a **STRING** representing the date and time according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard.\\n\\nDepending on the platform time unit, the part representing seconds can have 3, 6 or 9 significant figures respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time representation.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `iso8601dateAndTime` Representation of the date and time of the given timestamp for the givent timezone according to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard\\n\\n\",\"signature\":\"ISO8601( timestamp:LONG ): iso8601dateAndTime:STRING\\nISO8601( timestamp:LONG timezone:STRING ): iso8601dateAndTime:STRING\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISO8601\"},\"ISODURATION\":{\"description\":\"The `ISODURATION` function consumes a **LONG** duration in platform unit and pushes back a **STRING** reresenting an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). Whatever the platform time unit is, the representation maximum resolution is milliseconds.\\n\\nThe format of the ISO 8601 representation is `PThHmMs.xS` with `h` as hours, `m` as minutes, `s` as seconds and `x` as milliseconds. If any of these value is zero, the value and unit are omitted. The only exception is for a duration of 0 which is represented as `PT0S`. If the duration is negative, `h`, `m` and `s`, if displayed, are negative numbers. \\n\\n@param `duration` A duration expressed in platform time unit.\\n\\n@param `iso8601duration` A representation of the consumed duration according to ISO 8601.\\n\\n\",\"signature\":\"ISODURATION( duration:LONG ): iso8601duration:STRING\",\"tags\":[\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISODURATION\"},\"ISONORMALIZE\":{\"description\":\"The `ISONORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between -1 and 1 (i.e. it replaces X by \\n(X - mean)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"signature\":\"ISONORMALIZE( gts:GTS ): result:GTS\\nISONORMALIZE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ISONORMALIZE\"},\"JOIN\":{\"description\":\"Join N strings with the given separator.\\n\\n@param `n` Number of elements to join that it needs to take from the top of the stack.\\n\\n@param `sep` Separator used to join the strings.\\n\\n@param `string` One or more string on the stack.\\n\\n@param `objects` List of objects whose string representations are to be joined.\\n\\n@param `result` Joined string.\\n\\n\",\"signature\":\"JOIN( string:STRING* sep:STRING n:LONG ): result:STRING\\nJOIN( objects:LIST sep:STRING ): result:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"JOIN\"},\"JSON->\":{\"description\":\"The `JSON->` function parses a string as [JSON](http://json.org/) from the top of the stack and pushes the result onto the stack.\\n\\n@param `json` String JSON representation\\n\\n@param `resultMap` Map JSON representation if it is a JSON object\\n\\n@param `resultList` List JSON representation if it is a JSON array\\n\\n\",\"signature\":\"JSON->( json:STRING ): resultMap:MAP\\nJSON->( json:STRING ): resultList:LIST\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"H_CEIXoy\"},\"JSONCOMPACT\":{\"description\":\"The `JSONCOMPACT` function configures the stack to output compact [JSON](http://json.org/) format. This means the generated JSON will contain no line return and no space which makes it perfect to exchange data between programs.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONCOMPACT\"},\"JSONLOOSE\":{\"description\":\"The `JSONLOOSE` function configures the stack to output loose [JSON](http://json.org/) format where `NaN` and `Infinite` are valid values.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\nIf the [JSON](http://json.org/) parser you’re using is strict, you should either configure the [`JSONSTRICT`](/doc/JSONSTRICT) mode or dealing with `NaN` and `Infinite` values outside the parser.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONLOOSE\"},\"JSONPRETTY\":{\"description\":\"The `JSONPRETTY` function configures the stack to output pretty [JSON](http://json.org/) format. This means the generated JSON will contain line returns and will be indented to make it easier for human to read.\\n\\nBy default, the generated JSON is compact.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"JSONPRETTY\"},\"JSONSTACK\":{\"description\":\"Select the JSON format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"JSONSTACK(): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"JSONSTACK\"},\"JSONSTRICT\":{\"description\":\"The `JSONSTRICT` function configures the stack to output strict [JSON](http://json.org/) format.\\n\\nIn strict [JSON](http://json.org/) format the `NaN` and `Infinite` values aren’t allowed and they are replaced by `null`. By default, loose JSON is generated.\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"JSONSTRICT\"},\"KECCAK.128\":{\"description\":\"The `KECCAK.128` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"KECCAK.128( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.128\"},\"KECCAK.224\":{\"description\":\"The `KECCAK.224` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"KECCAK.224( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.224\"},\"KECCAK.256\":{\"description\":\"The `KECCAK.256` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"KECCAK.256( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.256\"},\"KECCAK.288\":{\"description\":\"The `KECCAK.288` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"KECCAK.288( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.288\"},\"KECCAK.384\":{\"description\":\"The `KECCAK.384` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"KECCAK.384( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.384\"},\"KECCAK.512\":{\"description\":\"The `KECCAK.512` function digests a byte array on the stack with the hash function [KECCAK](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"KECCAK.512( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"KECCAK.512\"},\"KEYLIST\":{\"description\":\"Gets keys from a **MAP**.\\n\\nThe function `KEYLIST` extracts the keys of a map on the top of the stack and pushes on the stack a list with those keys. The map is consumed.      \\n\\n@param `map` Map from which you want to extract keys\\n\\n@param `result` List of keys\\n\\n\",\"signature\":\"KEYLIST( map:MAP ): result:LIST\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"KEYLIST\"},\"KURTOSIS\":{\"description\":\"The `KURTOSIS` function computes the [kurtosis](https://en.wikipedia.org/wiki/Kurtosis) of a Geo Time Series™ or a list thereof.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the kurtosis.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `kurtosis` Computed kurtosis of the Geo Time Series™ instance.\\n\\n@param `lkurtosis` List of computed kurtosis of the Geo Time Series™ instances.\\n\\n\",\"signature\":\"KURTOSIS( gts:GTS bessel:BOOLEAN ): kurtosis:DOUBLE\\nKURTOSIS( lgts:LIST<GTS> bessel:BOOLEAN ): lkurtosis:LIST<DOUBLE>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.2.13\",\"OPB64name\":\"KURTOSIS\"},\"LABELS\":{\"description\":\"The `LABELS` function consumes a GTS from the stack, extracts its labels, puts them in a map and pushes the map onto the stack.\\n\\n@param `gts` The Geo Time Series™ to get the labels from.\\n\\n@param `encoder` The Geo Time Series™ Encoder to get the labels from.\\n\\n@param `return` Labels MAP\\n\\n\",\"signature\":\"LABELS( gts:GTS ): return:MAP\\nLABELS( encoder:GTSENCODER ): return:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LABELS\"},\"LASTACTIVITY\":{\"description\":\"Extracts the timestamp of last activity recorded in the Geo Time Series™ metadata.\\n\\nThe timestamp is expressed as platform time units elapsed since the Unix Epoch.\\n\\n@param `gts` Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `encoder` Geo Time Series™ encoder from which to extract the last activity timestamp.\\n\\n@param `lgts` List of Geo Time Series™ from which to extract the last activity timestamp.\\n\\n@param `lencoder` List of Geo Time Series™ encoders from which to extract the last activity timestamp.\\n\\n@param `lastactivity` Timestamp of last activity.\\n\\n@param `llastactivity` List of timestamps of last activity.\\n\\n\",\"signature\":\"LASTACTIVITY( gts:GTS ): lastactivity:LONG\\nLASTACTIVITY( encoder:GTSENCODER ): lastactivity:LONG\\nLASTACTIVITY( lgts:LIST<GTS> ): llastactivity:LONG\\nLASTACTIVITY( lencoder:LIST<GTSENCODER> ): llastactivity:LONG\",\"tags\":[\"gts\"],\"since\":\"2.0.0\",\"OPB64name\":\"LASTACTIVITY\"},\"LASTBUCKET\":{\"description\":\"The function `LASTBUCKET` consumes a GTS off the stack and pushes its lastbucket onto the stack.\\n\\nNote: when called on a non bucketized GTS instance, it returns 0.\\n\\n@param `gts` Bucketized GTS\\n\\n@param `result` Last bucket timestamp\\n\\n\",\"signature\":\"LASTBUCKET( gts:GTS ): result:LONG\",\"tags\":[\"bucketize\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTBUCKET\"},\"LASTSORT\":{\"description\":\"Sorts a list of Geo Time Series™ according to their most recent value. If most recent values are identical, ticks will be compared, the most recent\\nappearing first. If the ticks are also identical, then metadata will be compared, classname first then labels then attributes.\\n\\nWhen comparing on metadata, labels and attributes lists are first sort in a lexicographic order, then label values are compared when label names match. Same for the attributes\\n\\nUse this function to compute Top N queries.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Sorted list of Geo Time Series™\\n\\n\",\"signature\":\"LASTSORT( gtsList:LIST<GTS> ): result:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTSORT\"},\"LASTTICK\":{\"description\":\"The `LASTTICK` function returns the newest tick of a Geo Time Series™ or, if the GTS is bucketized, the timestamp of its last bucket.\\n\\nWhen applied to a list of GTS, `LASTTICK` will return the greatest last tick found across all Geo Time Series™.\\n\\nIf the GTS does not have values, `Long.MIN_VALUE` is pushed.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `result` Newest timestamp. If the GTS does not have values, **Long.MIN_VALUE** is pushed.\\n\\n\",\"signature\":\"LASTTICK( gts:GTS ): result:LONG\\nLASTTICK( lgts:LIST<GTS> ): result:LONG\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LASTTICK\"},\"LBOUNDS\":{\"description\":\"The `LBOUNDS` function computes bounds which divide a specified interval into `n` intervals of equal length.\\n\\nThe result of `LBOUNDS` is a list of `n+1` bounds, defining `n` intervals inside the specified range plus the two bounds of this range which define the intervals before and after the range.\\n\\n@param `n` Number of intervals to generate.\\n\\n@param `upper` Upper bound of the range to subdivide.\\n\\n@param `lower` Lower bound of the range to subdivide.\\n\\n@param `bounds` List of computed bounds.\\n\\n\",\"signature\":\"LBOUNDS( lower:DOUBLE upper:DOUBLE n:LONG ): bounds:LIST<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LBOUNDS\"},\"LEVELDBCLOSE\":{\"description\":\"Closes the LevelDB database underlying the Warp 10™ instance. While the LevelDB database is closed, any interaction with the storage layer is blocked. This enables an external tool to manipulate the LevelDB files knowing they are in a coherent state.\\n\\nThe blocked interactions will resume after `LEVELDBOPEN` is called.\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"signature\":\"LEVELDBCLOSE( secret:STRING ): \",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBCLOSE\"},\"LEVELDBOPEN\":{\"description\":\"Re-opens the LevelDB database underlying the Warp 10™ instance. It must have been closed using `LEVELDBCLOSE` prior to calling `LEVELDBOPEN`\\n\\n@param `secret` LevelDB secret as defined in the configuration file.\\n\\n\",\"signature\":\"LEVELDBOPEN( secret:STRING ): \",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBOPEN\"},\"LEVELDBSECRET\":{\"description\":\"Modifies the LevelDB secret needed to interact with the Warp 10™ LevelDB subsystem.\\n\\n@param `currentsecret` Current LevelDB secret.\\n\\n@param `newsecret` New LevelDB secret.\\n\\n\",\"signature\":\"LEVELDBSECRET( currentsecret:STRING newsecret:STRING ): \",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSECRET\"},\"LEVELDBSNAPSHOT\":{\"description\":\"Creates a LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files. Once those hard links are created, the LevelDB subsystem is reopen.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"signature\":\"LEVELDBSNAPSHOT( snapshot:STRING secret:STRING ): nfiles:LONG\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOT\"},\"LEVELDBSNAPSHOTINC\":{\"description\":\"Creates an incremental LevelDB snapshot.\\n\\nThe snapshot creation process first closes the LevelDB subsystem, then creates a directory under the `snapshots` directory in the LevelDB data directory and then creates hard links to the SST files and the log, manifest and CURRENT files which are only in the current LevelDB file set. Once those hard links are created, the LevelDB subsystem is reopen and the files which were both in the current LevelDB file set and the reference snapshot are linked from the reference snapshot. This allows for the snapshot process to only close the LevelDB subsystem during the linking of files which were created since the reference snapshot was created.\\n\\nSince the snapshot mechanism works by creating hard links, it can only work if the `snapshots` directory is on the same device (volume) as the LevelDB data directory.\\n\\nThe content of the newly created snapshot can be copied to third party storage for archival purposes.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `snapshot` Name of the snapshot to create.\\n\\n@param `nfiles` Number of hard links created.\\n\\n\",\"signature\":\"LEVELDBSNAPSHOTINC( snapshot:STRING secret:STRING ): nfiles:LONG\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"LEVELDBSNAPSHOTINC\"},\"LFILTER\":{\"description\":\"The `LFILTER` function filters the element of a **LIST** according to the result of a macro execution on each element of the **LIST**. It produces a **LIST** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of filered elements\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"LFILTER( inputlist:LIST macro:MACRO ): results:LIST\\nLFILTER( inputlist:LIST macro:MACRO index:BOOLEAN ): results:LIST\",\"tags\":[\"lists\"],\"since\":\"2.9.0\",\"OPB64name\":\"LFILTER\"},\"LFLATMAP\":{\"description\":\"The `LFLATMAP` function applies a macro on each element of a list, producing a list \\nwith the element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the list index on top and the element \\nat that particular index below it. Since Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\nDifference with `LMAP`: if the macro returns a list, then LFLATMAP will produce a \\nlist with the elements of the macro output list (_i.e._ it will _flatten_ the list). \\n\\nDifference with `LMAP FLATTEN`: flatten will do the list flattening recursively. \\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count -1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"LFLATMAP( inputlist:LIST macro:MACRO ): results:LIST\\nLFLATMAP( inputlist:LIST macro:MACRO index:BOOLEAN ): results:LIST\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LFLATMAP\"},\"LIMIT\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and \\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `LIMIT` function modifies the maximum number of datapoints which can be fetched during a script execution by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call `AUTHENTICATE` with a valid token.\\n\\n@param `maxDataPoints` Maximal data points retrieved from database in a single FETCH\\n\\n\",\"signature\":\"LIMIT( maxDataPoints:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"LIMIT\"},\"LINEOFF\":{\"description\":\"The `LINEOFF` function disables the automatic labelling of WarpScript code as enabled by `LINEON`.      \\n\\n\",\"signature\":\"\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEOFF\"},\"LINEON\":{\"description\":\"The `LINEON` function enables the automatic section labelling at the beginning of each line of the input WarpScript code. This handy feature greatly simplifies the debug process as the exact line number where an error happens will appear in the error message embedded as a section name of the form `[Line #xx]`.\\n\\nThis automatic labelling only works with the `/exec` endpoint of Warp 10.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.15\",\"OPB64name\":\"LINEON\"},\"LIST->\":{\"description\":\"The `LIST->` function extracts the elements of the **LIST** at the top of the stack\\nand pushes them onto the stack one by one. The function then pushes\\nonto the stack the number of elements that were in the **LIST**.\\n\\n@param `input` The input list, will be consumbed\\n\\n@param `listlength` The length N of input\\n\\n@param `elements` N elements pushed on the stack\\n\\n\",\"signature\":\"LIST->( input:LIST ): elements:ANY* listlength:LONG\",\"tags\":[\"lists\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"I3_IK1oy\"},\"LMAP\":{\"description\":\"The `LMAP` function applies a macro on each element of a **LIST**. It produces a **LIST** with the resulting element on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **LIST** index on top and the element at that particular index below it. \\n\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each element in inputlist.\\n\\n@param `inputlist` List of items\\n\\n@param `results` List of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"LMAP( inputlist:LIST macro:MACRO ): results:LIST\\nLMAP( inputlist:LIST macro:MACRO index:BOOLEAN ): results:LIST\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LMAP\"},\"LOAD\":{\"description\":\"The `LOAD` function pushes onto the stack the value currently associated with a symbol name.      \\n\\nIf the symbol is not defined, an error will be raised.\\n\\n@param `name` Name of symbol whose value should be retrieved.\\n\\n@param `register` Register number whose value should be retrieved.\\n\\n@param `value` Retrieved value.\\n\\n\",\"signature\":\"LOAD( name:STRING ): value:ANY\\nLOAD( register:LONG ): value:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOAD\"},\"LOCATIONOFFSET\":{\"description\":\"The `LOCATIONOFFSET` function downsamples a Geo Time Series™ by retaining the first and last datapoints and only those datapoints which are \\nmore than a given distance away.\\n\\n@param `distance` Distance in meters\\n\\n@param `gts` Geo Time Series™ to downsample\\n\\n@param `gtsList` List of Geo Time Series™ to downsample\\n\\n@param `result` Downsampled Geo Time Series™\\n\\n@param `resultList` List of downsampled Geo Time Series™\\n\\n\",\"signature\":\"LOCATIONOFFSET( gts:GTS distance:NUMBER ): result:GTS\\nLOCATIONOFFSET( gtsList:LIST<GTS> distance:NUMBER ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONOFFSET\"},\"LOCATIONS\":{\"description\":\"The `LOCATIONS` function consumes a Geo Time Series™ from the stack, extracts the locations of a Geo Time Series™, puts them in two lists\\n(a list of latitudes and a list of longitudes) and pushes the two lists onto the stack.\\n\\n@param `gts` GTS\\n\\n@param `longitudes` List of longitudes\\n\\n@param `latitudes` List of latitudes\\n\\n\",\"signature\":\"LOCATIONS( gts:GTS ): latitudes:LIST<DOUBLE> longitudes:LIST<DOUBLE>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCATIONS\"},\"LOCSTRINGS\":{\"description\":\"The `LOCSTRINGS` function extract the locations from a Geo Time Series™ and builds a list of the 64 bits hexadecimal representation of their \\n[HHCode](https://en.wikipedia.org/wiki/HHCode).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `result` List of [HHCode](https://en.wikipedia.org/wiki/HHCode)\\n\\n\",\"signature\":\"LOCSTRINGS( gts:GTS ): result:LIST<STRING>\",\"tags\":[\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOCSTRINGS\"},\"LOG\":{\"description\":\"The `LOG` function consumes a floating point number x from the top of the stack and pushes back its natural logarithm, log<sub>e</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of the given GTS values\\n\\n\",\"signature\":\"LOG( value:NUMBER ): result:DOUBLE\\nLOG( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nLOG( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG\"},\"LOG10\":{\"description\":\"The `LOG10` function consumes a floating point number x from the top of the stack and pushes back its common logarithm, log<sub>10</sub>x.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Common logarithm of the given value\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of common logarithms of the given values\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the common logarithm of the given GTS values\\n\\n\",\"signature\":\"LOG10( value:NUMBER ): result:DOUBLE\\nLOG10( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nLOG10( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG10\"},\"LOG1P\":{\"description\":\"Returns the natural logarithm of the sum of the argument and 1.\\n\\nThe `LOG1P` function consumes a number from the top of the stack and pushes back the natural logarithm for (arg + 1).\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Natural logarithm of (value + 1)\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of natural logarithm of (x + 1), for each value in the given list.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the natural logarithm of (x + 1), for each values in the given GTS\\n\\n\",\"signature\":\"LOG1P( value:NUMBER ): result:DOUBLE\\nLOG1P( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nLOG1P( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOG1P\"},\"LOGEVENT->\":{\"description\":\"Warp&nbsp;10™ runner execution logs are encrypted. See [this documentation](/content/03_Documentation/06_Operations/05_Logs/).\\n\\nThe easiest way to read logs is to copy the log output and use this function.\\n\\n\\n@param `logline` The opb64 representation of the aes encrypted log line\\n\\n@param `decodedlog` The decoded logs.\\n\\n\",\"signature\":\"LOGEVENT->( logline:STRING ): decodedlog:STRING\",\"tags\":[\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"I3x6GKO4I_FhEV\"},\"LOGMSG\":{\"description\":\"`LOGMSG` function prints millisecond timestamp and input text on the standard output.\\n\\nThe `LOGMSG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"signature\":\"LOGMSG( msg:STRING ): \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOGMSG\"},\"LOWESS\":{\"description\":\"The `LOWESS` function consumes a bandwidth (a **LONG**) from the top of the stack, then smooths a GTS or a **LIST** of GTS that are below by using\\nlocal regression.\\n\\nTo obtain a good smoothing, it is advised to choose an odd number of at least 5 as the bandwidth parameter.\\n\\n@param `bandwidth` The bandwidth parameter is the number of nearest neighbors to consider when applying the local regression.\\n\\n@param `gts` Geo Time Series™.\\n\\n@param `gtsList` List of Geo Time Series™.\\n\\n@param `lresult` List of Geo Time Series™ result.\\n\\n@param `result` Geo Time Series™ result.\\n\\n\",\"signature\":\"LOWESS( gts:GTS bandwidth:LONG ): result:GTS\\nLOWESS( gtsList:LIST<GTS> bandwidth:LONG ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"LOWESS\"},\"LR\":{\"description\":\"Compute the [simple linear regression](https://en.wikipedia.org/wiki/Linear_regression) parameters `alpha` (y-intercept) and `beta` (line slope) for the given numerical Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ on which to compute linear regression.\\n\\n@param `beta` The slope of the line fitted on the GTS values.\\n\\n@param `alpha` The y-intercept of the lined fitted on the GTS values.\\n\\n\",\"signature\":\"LR( gts:GTS ): alpha:DOUBLE beta:DOUBLE\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.13\",\"OPB64name\":\"LR\"},\"LSORT\":{\"description\":\"The `LSORT` function sorts the list on the top of the stack.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `inputlist` The reference of the list to sort\\n\\n@param `sortedlist` The original list sorted, this is not a new list object\\n\\n\",\"signature\":\"LSORT( inputlist:LIST ): sortedlist:LIST\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"LSORT\"},\"LTTB\":{\"description\":\"The `LTTB` function downsamples a Geo Time Series™ or list thereof using the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"signature\":\"LTTB( gts:GTS samples:LONG ): downsampled:GTS\\nLTTB( lgts:LIST<GTS> samples:LONG ): ldownsampled:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"LTTB\"},\"MACRO->\":{\"description\":\"The `MACRO->` function converts a `MACRO` into a `LIST` of statements.\\n\\n@param `macro` `MACRO` to convert.\\n\\n@param `statements` List of statements from `macro`.\\n\\n\",\"signature\":\"MACRO->( macro:MACRO ): statements:LIST\",\"tags\":[\"platform\"],\"since\":\"2.8.0\",\"OPB64name\":\"IJ42JZwhEV\"},\"MACROBUCKETIZER\":{\"description\":\"`MACROBUCKETIZER` converts a macro into a bucketizer which can be used with the [`BUCKETIZE`](/doc/BUCKETIZE) framework.\\n\\nFor each tick in the mapped GTS, the macro will be called with a list containing the following elements on the stack:\\n\\n```js\\n[tick_of_computation,[gts_classes],[label_bucketize],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n@param `macro` Macro used as a bucketizer\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"MACROBUCKETIZER( macro:MACRO ): result:AGGREGATOR\",\"tags\":[\"bucketize\",\"bucketizer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROBUCKETIZER\"},\"MACROCONFIG\":{\"description\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration keys looked up are those built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIG`.\\n\\n`MACROCONFIG` will check if the keys exists, if not it will remove the part of the macro name after the last `/` and will try that new key. It will successively try all names up to the last part of the macro name.\\n\\nIf none of those keys existed, the call will end in error.\\n\\nSo for example, if `MACROCONFIG` is called from a macro `my/test/macro` to retrieve the value associated with `mykey`, it will look up the following keys in the configuration:\\n\\n```\\nmykey@my/test/macro\\nmykey@my/test\\nmykey@my\\n```\\n\\n@param `key` Configuration key to look up.\\n\\n\",\"signature\":\"MACROCONFIG( key:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIG\"},\"MACROCONFIGDEFAULT\":{\"description\":\"When called from a macro loaded from a local macro repository, a jar in the class path or via the WarpFleet™ resolver, this function accesses the value of a configuration key present in the Warp 10™ configuration.\\n\\nThis allows to define macro properties outside of the macro itself, which proves very handy when exposing macros via WarpFleet™ for example.\\n\\nThe typical use case would be a macro which needs a token to interact with Warp 10™, the token can be set in the configuration file.\\n\\nThe configuration key looked is built by adding `@` and the macro name to the key specified as parameter to `MACROCONFIGDEFAULT`.\\n\\n`MACROCONFIGDEFAULT` will check if the keys exists, if not it will push the provided default value onto the stack, or fail with an error if the default was `NULL`. If the key is found, the associated value is pushed on the stack.\\n\\n@param `key` Configuration key to look up.\\n\\n@param `default` Default value to use if the key was not found, or `NULL` to fail if the key is absent.\\n\\n\",\"signature\":\"MACROCONFIGDEFAULT( key:STRING default:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGDEFAULT\"},\"MACROCONFIGSECRET\":{\"description\":\"The `MACROCONFIGSECRET` macro consumes 2 elements on the stack, the current and new secret to be set. If no secret has been set, the function will throw an error.\\n\\nThe secret set by this function is the secret used by [`SETMACROCONFIG`](/doc/SETMACROCONFIG).\\n\\n@param `newSecret` New secret to override the current one.\\n\\n@param `oldSecret` Currently set secret.\\n\\n\",\"signature\":\"MACROCONFIGSECRET( oldSecret:STRING newSecret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"MACROCONFIGSECRET\"},\"MACROFILLER\":{\"description\":\"`MACROFILLER` converts a macro into a *filler* which can be used with the [`FILL`](/doc/FILL) function.\\n\\nThe macro will find the following elements on the stack when it is called:\\n\\n```\\n6: Geo Time Series™ to fill. Both this GTS and the one above are only meant to expose the metadata\\n5: Geo Time Series™ of the *other* GTS with a value at the current tick\\n4: list of [ tick latitude longitude elevation value ] for the pre window\\n3: [ tick latitude longitude elevation value ] of the *other* Geo Time Series™\\n2: list of [ tick latitude longitude elevation value ] for the post window\\nTOP: tick which is being filled\\n```\\n\\nIt must leave on the stack a list containing the following elements, in this order:\\n\\n*tick*, *latitude* or `NaN`, *longitude* or `NaN`, *elevation* or `NaN`, *value*\\n\\n\\n@param `macro` Macro to wrap.\\n\\n@param `prewindow` Number of datapoints needed ahead of the missing datapoint.\\n\\n@param `postwindow` Number of datapoints needed after the missing datapoint.\\n\\n@param `filler` Filler instance.\\n\\n\",\"signature\":\"MACROFILLER( macro:MACRO prewindow:LONG postwindow:LONG ): filler:FILLER\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"MACROFILLER\"},\"MACROFILTER\":{\"description\":\"`MACROFILTER` converts a macro into a filter which can be used with the [`FILTER`](/doc/FILTER) framework\\n\\nFor each equivalence classes in the filter set of Geo Time Series™, the macro will be called with the following elements on the stack:\\n\\n```\\n[gts], {labels_equivalence_class}\\n```\\n\\nAfter each call the macro is expected to leave a list on the stack.\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"MACROFILTER( macro:MACRO ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROFILTER\"},\"MACROMAPPER\":{\"description\":\"`MACROMAPPER` converts a macro into a mapper which can be used with the [`MAP`](/doc/MAP) framework.\\n\\nFor each tick in the mapped Geo Time Series™, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROMAPPER` can also create a multivariate mapper, that is, a mapper that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate mapper with MAP, each input GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n\\n@param `macro` Macro to convert\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"MACROMAPPER( macro:MACRO ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROMAPPER\"},\"MACROREDUCER\":{\"description\":\"`MACROREDUCER` converts a macro into a reducer which can be used with the [`REDUCE`](/doc/REDUCE) framework\\n\\nFor each tick in the Geo Time Series™ to reduce, the macro will be called with a list containing the following elements on the stack:\\n\\n```json\\n[tick_of_computation,[gts_classes],[label_maps],[ticks],[latitudes],[longitudes],[elevations],[values]]\\n```\\n\\nEach list have a length of the number of GTSs in the partition. Each missing value are replaced by `null`, each missing tick by the minimum value of long and each missing latitude, longitude or elevation by NaN. The `label_maps` list as one more element at the end compared to the other lists: the common labels for the GTSs of the partition.\\n\\nAfter each call the macro is expected to leave on the stack a list with the following elements:\\n\\n```json\\n[tick, latitude, longitude, elevation, value]\\n```\\n\\n`MACROREDUCER` can also create a multivariate reducer, that is, a reducer that outputs multiple results. To do this, macro calls shall leave on the stack a map:\\n\\n```json\\n{\\n'result_1': [tick, latitude, longitude, elevation, value],\\n'result_2': [tick, latitude, longitude, elevation, value],\\n...\\n}\\n```\\nWhen using a multivariate reducer with REDUCE, each input List of GTS produces as much output GTS in a list, whose classnames are the keys found in the map left by the macro call on the stack.\\n\\n\\n@param `macro` Macro to apply\\n\\n@param `result` Reducer to apply\\n\\n\",\"signature\":\"MACROREDUCER( macro:MACRO ): result:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.0\",\"OPB64name\":\"MACROREDUCER\"},\"MACROTTL\":{\"description\":\"In a file defining a server side macro, the `MACROTTL` function defines the time to live of the macro code. If the macro is accessed after this delay has expired and on-demand loading of macros is enabled, it will unconditionally be reloaded from disk.\\n\\nThis feature is very useful when you have macros generated dynamically on the server side which change frequently. Using `MACROTTL` you can ensure the newest code is loaded regardless of the rescan interval of the macro directory.\\n\\nIn a file defining a server side macro, the call to `MACROTTL` should appear before or after the actual macro definition but not within.\\n\\nThe time after which the macro will no longer be valid is the time of the call to `MACROTTL` plus its parameter.\\n\\n@param `ttl` The time to live to apply to the macro, in ms.\\n\\n\",\"signature\":\"MACROTTL( ttl:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MACROTTL\"},\"MAKEGTS\":{\"description\":\"The `MAKEGTS` function builds a Geo Time Series™ from **LIST**s.\\n\\nThe timestamp and values lists must be of the exact same size.\\nHowever, as latitudes, longitudes and elevations are optional in a Geo Time Series™, these lists can be shorter than the timestamps lists or even empty. If there are missing latitudes, longitudes and elevations, use [`NaN`](/doc/NaN).\\n\\n@param `values` Values of the GTS\\n\\n@param `elevations` Elevations of the GTS\\n\\n@param `longitudes` Longitudes of the GTS\\n\\n@param `latitudes` Latitudes of the GTS\\n\\n@param `timestamps` Timestamps of the GTS\\n\\n@param `result` Geo Time Series™\\n\\n\",\"signature\":\"MAKEGTS( timestamps:LIST latitudes:LIST longitudes:LIST elevations:LIST values:LIST ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAKEGTS\"},\"MAN\":{\"description\":\"The `MAN` function returns the help link for a function name.\\n\\nIf the function does not exists, it returns http://www.warp10.io/\\n\\n\\n@param `function` The function name\\n\\n@param `any` Anything except a function name\\n\\n@param `url` URL of the online help\\n\\n\",\"signature\":\"MAN( function:STRING ): url:STRING\\nMAN( any:ANY ): url:STRING\\nMAN(): url:STRING\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.2.18\",\"OPB64name\":\"MAN\"},\"MAP\":{\"description\":\"The `MAP` framework applies a function on values of a Geo Time Series™ that fall into a sliding window.\\n\\nThe `MAP` framework is designed to use an existing MAPPER or a custom MACROMAPPER. It could also accept a macro: the current window is passed as a GTS to the macro. See examples below.\\n\\n@param `result` List of Geo Time Series™, one for each input, whose values are the results of the function application on each sliding window. If the input series is bucketized, the result series will be too unless outputTicks is non null.\\n\\n@param `gtsList` A list of Geo Time Series™, or a single Geo Time Series™\\n\\n@param `mapper` Mapper function to apply\\n\\n@param `pre` Width of the sliding window before the current tick. This parameter is interpreted as a number of ticks if its value is positive, and as a number of time units if its value is negative. A value of 0 means the sliding window does not cover the past. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the past. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `post` Width of the sliding window after the current tick. Values have the same semantics as for the `pre` parameter. A value of 0 means the sliding window does not cover the future. Use the special values `max.tick.sliding.window` or `max.time.sliding.window` to expand the window the farthest into the future. Defaults to 0.\\n\\n@param `occurrences` Limit the number of computations to that number. If the value is 0, compute a value for each tick of the input Geo Time Series™. If it is positive, compute that many values starting from the oldest to the most recent tick. In the other case, do that many computations in the reverse order. This is useful when you are interested in a single result, like the max or sum of all values. Defaults to 0. When selecting a number of ticks, the value of this parameter is limited to 2**32-1 even if a greater value was provided.\\n\\n@param `step` The step size in number of ticks. The mapper beggins at the oldest tick and goes to the tick `step` after the current one and so on. Defaults to 1.\\n\\n@param `overrideTick` If set to true, the tick value returned by the mapper is used to update the current tick, else it is ignored and the original tick is kept. Defaults to false.\\n\\n@param `outputTicks` If non null, it sets the list of ticks that is traversed to anchor the sliding windows (instead of the ticks of the input Geo Time Series™). In that case, a tick of the input Geo Time Series™ that would be equal to one of these anchor points is counted by a positive `post` if `occurences` is non-negative, or by a positive `pre` if `occurences` is negative.\\n\\n\",\"signature\":\"MAP( [ gtsList:LIST<GTS> mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG ] ): result:LIST<GTS>\\nMAP( [ gtsList:LIST<GTS> mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG step:LONG ] ): result:LIST<GTS>\\nMAP( [ gtsList:LIST<GTS> mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG step:LONG overrideTick:BOOLEAN ] ): result:LIST<GTS>\\nMAP( gtsList:LIST<GTS> { mapper:AGGREGATOR pre:LONG post:LONG occurrences:LONG step:LONG overrideTick:BOOLEAN outputTicks:LIST<LONG>  } ): result:LIST<GTS>\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAP\"},\"MAP->\":{\"description\":\"The `MAP->` function expands the **MAP** on top of the stack into pairs of elements followed by the number of elements extracted. If the **MAP** was \\ncreated by a call to `->MAP`, the order of the elements will be the same as prior to calling `->MAP`.\\n\\n@param `map` Map to expand\\n\\n@param `key` Key of the pair\\n\\n@param `value` Value of the pair\\n\\n@param `mapsize` The number of key value pushed on the stack.\\n\\n\",\"signature\":\"MAP->( map:MAP ): key:ANY* value:ANY* mapsize:LONG\",\"tags\":[\"maps\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"IJ4FAIs\"},\"MAPID\":{\"description\":\"Generates a fingerprint of a map.\\n\\n@param `input` Input map\\n\\n@param `result` Fingerprint of the map\\n\\n\",\"signature\":\"MAPID( input:MAP ): result:STRING\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAPID\"},\"MARK\":{\"description\":\"Pushes a mark onto the stack.\\n\\n@param `mark` A MARK instance.\\n\\n\",\"signature\":\"MARK(): mark:MARK\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MARK\"},\"MAT->\":{\"description\":\"The `MAT->` function converts a Matrix into nested lists.\\n\\n\\n@param `input` Matrix to convert\\n\\n@param `result` Nested list of values\\n\\n\",\"signature\":\"MAT->( input:MATRIX ): [  result:LIST<LIST<DOUBLE>>  ]\",\"tags\":[\"lists\",\"math\",\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"IJ4JAIs\"},\"MATCH\":{\"description\":\"The `MATCH` function applies a regular expression (regexp) to a string.\\n\\nIt consumes two parameters from the top of the stack: the regexp pattern and the string to test matching with.\\n\\nIf the string doesn’t match the regexp, the function return an empty list. If it matches, the function will return a list of every matching group.\\n\\nInstead of using a regular expression **STRING**, you can also use the result of [`MATCHER`](/doc/MATCHER) for improved performance.\\n\\n@param `regexp` Regular expression to apply\\n\\n@param `string` String to evaluate\\n\\n@param `result` List of every matching group.\\n\\n\",\"signature\":\"MATCH( string:STRING regexp:STRING ): result:LIST<STRING>\\nMATCH( string:STRING regexp:MATCHER ): result:LIST<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCH\"},\"MATCHER\":{\"description\":\"The `MATCHER` function will compile a regular expression into an efficient object which can be used by [`MATCH`](/doc/MATCH).\\n\\n@param `regexp` Regular expression to compile\\n\\n@param `result` Compiled regula expression\\n\\n\",\"signature\":\"MATCHER( regexp:STRING ): result:MATCHER\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"MATCHER\"},\"MAX\":{\"description\":\"Returns the greater of two numeric values.\\n\\nThe `MAX` function consumes two numeric parameters from the top of the stack and pushes back the greatest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The larger of p1 and p2.\\n\\n@param `sresult` The larger of the elements in the given list.\\n\\n@param `gresult` The larger of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the max between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the max between the element in the GTS and the given value.\\n\\n\",\"signature\":\"MAX( p1:NUMBER p2:NUMBER ): result:NUMBER\\nMAX( p1:COUNTER p2:COUNTER ): result:LONG\\nMAX( p1:COUNTER p2:NUMBER ): result:NUMBER\\nMAX( p1:NUMBER p2:COUNTER ): result:NUMBER\\nMAX( nlist:LIST<NUMBER> ): sresult:NUMBER\\nMAX( clist:LIST<COUNTER> ): sresult:LONG\\nMAX( nlist:LIST<NUMBER> value:NUMBER ): nresult:LIST<NUMBER>\\nMAX( clist:LIST<COUNTER> value:COUNTER ): nresult:LIST<LONG>\\nMAX( clist:LIST<COUNTER> value:NUMBER ): nresult:LIST<NUMBER>\\nMAX( gts:GTS ): gresult:NUMBER\\nMAX( gts:GTS value:NUMBER ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAX\"},\"MAXBUCKETS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXBUCKETS` function modifies the maximum number of buckets which can be created by a call to [`BUCKETIZE`](/doc/BUCKETIZE) by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXBUCKETS( limit:LONG ): \",\"tags\":[\"platform\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXBUCKETS\"},\"MAXDEPTH\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard \\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXDEPTH` function modifies the maximum depth (number of levels) of the execution stack by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXDEPTH( limit:LONG ): \",\"tags\":[\"platform\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXDEPTH\"},\"MAXGEOCELLS\":{\"description\":\"Modifies the maximum number of cells a **GEOSHAPE** created by [`GEO.WKT`](/doc/GEO.WKT) or [`GEO.JSON`](/doc/GEO.JSON) can have. The limit can be modified up to the configured value for `warpscript.maxgeocells.hard`.\\n\\n@param `maxcells` New limit to set.\\n\\n\",\"signature\":\"MAXGEOCELLS( maxcells:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.2.11\",\"OPB64name\":\"MAXGEOCELLS\"},\"MAXGTS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard limit \\nwhich can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe `MAXGTS` function modifies the maximum number of Geo Time Series™ which can be fetched by setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXGTS( limit:LONG ): \",\"tags\":[\"platform\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXGTS\"},\"MAXJSON\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to\\nthe hard limit value.\\n\\nThe `MAXJSON` function modifies the maximum number of characters in a json produced by [`->JSON`](/doc/AIt9JoxD).\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXJSON( limit:LONG ): \",\"tags\":[\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"MAXJSON\"},\"MAXLONG\":{\"description\":\"Pushes [Long.MAX_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MAX_VALUE) onto the stack.\\n\\n@param `result` Long.MAX_LONG\\n\\n\",\"signature\":\"MAXLONG(): result:LONG\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLONG\"},\"MAXLOOP\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a hard\\nlimit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to the hard limit value.\\n\\nThe MAXLOOP function modifies the maximum number of milliseconds which can be spent in a loop setting it to the value on top of the stack.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXLOOP( limit:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXLOOP\"},\"MAXOPS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and\\na hard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXOPS` function modifies the maximum number of operations which can be performed during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXOPS( limit:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXOPS\"},\"MAXPIXELS\":{\"description\":\"Modifies the maximum size (in pixels) of images which can be created by [`PGraphics`](/doc/PGraphics). The limit can be modified up to the value configured in `warpscript.maxpixels.hard`.\\n\\n@param `pixels` Maximum size (in pixels).\\n\\n\",\"signature\":\"MAXPIXELS( pixels:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXPIXELS\"},\"MAXRECURSION\":{\"description\":\"Modifies the maximum nesting depth of macro calls. The limit can be modified up to the value configured in `warpscript.maxrecursion.hard`.\\n\\n@param `depth` Maximum nesting depth.\\n\\n\",\"signature\":\"MAXRECURSION( depth:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.2.13\",\"OPB64name\":\"MAXRECURSION\"},\"MAXSYMBOLS\":{\"description\":\"Execution of WarpScript code is performed on a stack which has a set of limits in order to prevent bad things to happen. Those limits have both a soft and a \\nhard limit which can be configured on the backend. By default a limit is set to its soft limit value, but it can be modified from within the script up to \\nthe hard limit value.\\n\\nThe `MAXSYMBOLS` function modifies the maximum number of simultaneous symbols which can be defined on the stack during a single WarpScript execution.\\n\\nPrior to calling this function, you must call [`AUTHENTICATE`](/doc/AUTHENTICATE) with a valid token.\\n\\n@param `limit` Soft limit to override\\n\\n\",\"signature\":\"MAXSYMBOLS( limit:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MAXSYMBOLS\"},\"MAXURLFETCHCOUNT\":{\"description\":\"The `MAXURLFETCHCOUNT` function modifies the maximum number of URLs which can be fetched with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.MAXURLFETCHCOUNT.limit.hard`.\\n\\n@param `limit` The maximum number of URLs which can be fetched.\\n\\n\",\"signature\":\"MAXURLFETCHCOUNT( limit:LONG ): \",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHCOUNT\"},\"MAXURLFETCHSIZE\":{\"description\":\"The `MAXURLFETCHSIZE` function modifies the maximum cumulative size of fetched payloads with [`URLFETCH`](/doc/URLFETCH) during a single WarpScript execution. This cannot exceed `warpscript.urlfetch.maxsize.hard` and is expressed as a number of bytes.\\n\\n@param `limit` The maximum cumulative size of fetched payloads.\\n\\n\",\"signature\":\"MAXURLFETCHSIZE( limit:LONG ): \",\"tags\":[\"extensions\",\"web\"],\"since\":\"2.0.2\",\"OPB64name\":\"MAXURLFETCHSIZE\"},\"MCHECKSIG\":{\"description\":\"The `MCHECKSIG` function checks if a macro signature is valid. If the macro does not contain a signature, the function returns `false` just as if the macro was signed but the signature was not valid. You can use [`MSIGCOUNT`](/doc/MSIGCOUNT) first to determine if the macro contains a signature or not.\\n\\n@param `macro` Macro whose signature must be checked.\\n\\n@param `checked` Boolean indicating if the signature could be validated.\\n\\n\",\"signature\":\"MCHECKSIG( macro:MACRO ): macro:MACRO checked:BOOLEAN\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MCHECKSIG\"},\"MD2\":{\"description\":\"The `MD2` function digests a byte array on the stack with the cryptographic hash function [`MD2`](https://en.wikipedia.org/wiki/MD2_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"MD2( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD2\"},\"MD4\":{\"description\":\"The `MD4` function digests a byte array on the stack with the cryptographic hash function [`MD4`](https://en.wikipedia.org/wiki/MD4).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"MD4( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"MD4\"},\"MD5\":{\"description\":\"The `MD5` function digests a byte array on the stack with the cryptographic hash function [`MD5`](https://en.wikipedia.org/wiki/MD5).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"MD5( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"MD5\"},\"MDETACH\":{\"description\":\"The `MDETACH` function detaches a signature macro from a signed macro. The original macro is shrunk, it is not a shorter copy, you can use `+` right after the call to `MDETACH` to recreate the original macro.\\n\\nIf the input macro does not contain a signature, the result of applying `MDETACH` will be an empty macro and the original macro will not be modified.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"signature\":\"MDETACH( macro:MACRO ): macro:MACRO sig:MACRO\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MDETACH\"},\"MERGE\":{\"description\":\"Merge several Geo Time Series™ together.\\n\\nThe `MERGE` function expects a **LIST** of Geo Time Series™ on the top of the stack. It will consume these GTS and push onto the stack a single GTS instance\\nwith all measurements found in the GTS instances present in the **LIST**. The name and labels of the resulting GTS instance are those of the first one of the\\n**LIST**.\\n\\n`MERGE` do not override values on the same timestamp, they are appenned.\\n\\n@param `gtsList` The list of Geo Time Series™\\n\\n@param `result` The merged Geo Time Series™\\n\\n\",\"signature\":\"MERGE( gtsList:LIST<GTS> ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MERGE\"},\"META\":{\"description\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `META` is applied must have a non empty name and attributes (possibly empty).\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"signature\":\"META( gtsList:LIST<GTS> writeToken:STRING ): \",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"META\"},\"METADIFF\":{\"description\":\"Stores the attributes of a list of Geo Time Series™ in the Warp 10 backend in an incremental manner. New attributes are added and already existing attributes are updated or removed if their value is an empty string.\\n\\nThis function expects on top of the stack a write token which will be used to authenticate with the Warp 10 backend and a Geo Time Series™ or a list thereof.\\n\\nEvery Geo Time Series™ to which `METADIFF` is applied must have a non empty name and attributes (possibly empty).\\n\\nTo be able to use `METADIFF`, you must configure *ingress.attributes.allowdelta = true*. \\n\\n\\n@param `writeToken` valid write token for the set of GTS to modify\\n\\n@param `gtsList` GTS list with new or modified attributes\\n\\n\",\"signature\":\"METADIFF( gtsList:LIST<GTS> writeToken:STRING ): \",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"METADIFF\"},\"METAMATCH\":{\"description\":\"`METAMATCH` expose the [`filter.byselector`](/doc/filter.byselector) internals. It returns true if the input GTS metadata matches the given selector. Input can also be an encoder, or a list of GTS or encoders.\\n\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n\\n@param `gts` Geo Time Series™ instance to test\\n\\n@param `encoder` Encoder to test\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `match` Returns true when gts matches the selector\\n\\n@param `gtsList` List of Geo Time Series™ instances to test\\n\\n@param `encoderList` List of Geo Time Series™ instances to test\\n\\n@param `matchList` Returns true when gts or encoder of the input list matches the selector. matchList size is the same as input size, and order is preserved.\\n\\n\",\"signature\":\"METAMATCH( gts:GTS selector:STRING ): match:BOOLEAN\\nMETAMATCH( encoder:ENCODER selector:STRING ): match:BOOLEAN\\nMETAMATCH( gtsList:LIST<GTS> selector:STRING ): matchList:LIST<BOOLEAN>\\nMETAMATCH( encoderList:LIST<ENCODER> selector:STRING ): matchList:LIST<BOOLEAN>\",\"tags\":[\"filter\"],\"since\":\"2.11\",\"OPB64name\":\"METAMATCH\"},\"METAOFF\":{\"description\":\"Disables meta operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when a meta operation is attempted.\\n\\n\",\"signature\":\"METAOFF( message:STRING secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAOFF\"},\"METAON\":{\"description\":\"Enables meta operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"signature\":\"METAON( secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"METAON\"},\"METASET\":{\"description\":\"Performs a [`FIND`](/doc/FIND), retrieving a list of Geo Time Series™ and builds a *metaset* which can be distributed to allow access to those GTS without having to give away credentials.\\n\\nMetaset support is only available if a key has been set for `warp.aes.metasets`.\\n\\n@param `ttl` Time to live of the produces metaset. It will not be usable after that much time has elapsed since the current time. The ttl is specified in time units.\\n\\n@param `maxduration` The maximum span of data which can be retrieved using this metaset, in time units.\\n\\n@param `notafter` Most recent timestamp of the data this metaset can retrieve.\\n\\n@param `notbefore` Most ancient timestamp of the data this meataset can retrieve.\\n\\n@param `labels` Map of label selectors.\\n\\n@param `class` Geo Time Series™ class selector.\\n\\n@param `token` Read token to use for retrieving the GTS.\\n\\n@param `metaset` Encrypted metaset which can be used with a [`FETCH`](/doc/FETCH).\\n\\n\",\"signature\":\"METASET( [ token:STRING class:STRING labels:MAP notbefore:LONG notafter:LONG maxduration:LONG ttl:LONG ] ): metaset:STRING\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"METASET\"},\"METASORT\":{\"description\":\"Sorts a list of Geo Time Series™ according to elements of their metadata. The list of elements to consider for sorting can contain label/attribute names or NULL to consider the classname. Elements will be considered in the order in which they appear in the list.\\nIf two GTSs match the same criteria, the order considered is the one given in the list of Geo Time Series™.\\n\\nIf the list of elements is empty, the sort will apply on class name then on label and last on attributes.\\n\\nWhen sorting on a label/attribute, if 2 GTS match the same criterion, the one with the smallest number of labels is the first.\\nWhen sorting on a label/attribute, the GTS who does not have the label will be considered first.\\n\\n@param `gts` List of Geo Time Series™ to sort.\\n\\n@param `elements` Metadata elements to consider for sorting.\\n\\n@param `considerAttributes` Set to true to consider attributes as labels\\n\\n@param `sorted` Sorted list of GTS.\\n\\n\",\"signature\":\"METASORT( gts:LIST<GTS> elements:LIST<STRING> ): sorted:LIST<GTS>\\nMETASORT( gts:LIST<GTS> elements:LIST<STRING> considerAttributes:BOOLEAN ): sorted:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"METASORT\"},\"MFILTER\":{\"description\":\"The `MFILTER` function filters the element of a **MAP** according to the result of a macro execution on each key/value pair of the **MAP**. It produces a **MAP** containing only the elements for which the macro returned `true`.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it. You can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of filtered key/value pairs\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"MFILTER( inputmap:MAP macro:MACRO ): results:MAP\\nMFILTER( inputmap:MAP macro:MACRO index:BOOLEAN ): results:MAP\",\"tags\":[\"maps\"],\"since\":\"2.9.0\",\"OPB64name\":\"MFILTER\"},\"MIN\":{\"description\":\"Returns the smaller of two numeric values.\\n\\nThe `MIN` function consumes two numeric parameters from the top of the stack and pushes back the smallest value.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `p1` First numeric parameter\\n\\n@param `p2` Second numeric parameter\\n\\n@param `value` Numeric value\\n\\n@param `nlist` List of numeric value.\\n\\n@param `clist` List of Counters\\n\\n@param `gts` Numerical GTS\\n\\n@param `result` The smaller of p1 and p2.\\n\\n@param `sresult` The smaller of the elements in the given list.\\n\\n@param `gresult` The smaller of the elements in the given GTS.\\n\\n@param `nresult` A list where each value is the min between the element in the list and the given value.\\n\\n@param `gtsresult` A GTS where each value is the min between the element in the GTS and the given value.\\n\\n\",\"signature\":\"MIN( p1:NUMBER p2:NUMBER ): result:NUMBER\\nMIN( p1:COUNTER p2:COUNTER ): result:LONG\\nMIN( p1:COUNTER p2:NUMBER ): result:NUMBER\\nMIN( p1:NUMBER p2:COUNTER ): result:NUMBER\\nMIN( nlist:LIST<NUMBER> ): sresult:NUMBER\\nMIN( clist:LIST<COUNTER> ): sresult:LONG\\nMIN( nlist:LIST<NUMBER> value:NUMBER ): nresult:LIST<NUMBER>\\nMIN( clist:LIST<COUNTER> value:COUNTER ): nresult:LIST<LONG>\\nMIN( clist:LIST<COUNTER> value:NUMBER ): nresult:LIST<NUMBER>\\nMIN( gts:GTS ): gresult:NUMBER\\nMIN( gts:GTS value:NUMBER ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"MIN\"},\"MINLONG\":{\"description\":\"Pushes [Long.MIN_VALUE](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#MIN_VALUE) onto the stack.\\n\\n@param `result` Long.MIN_VALUE\\n\\n\",\"signature\":\"MINLONG(): result:LONG\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"MINLONG\"},\"MINREV\":{\"description\":\"The `MINREV` function consumes a string representing a revision on the stack and puts back a boolean indicating if the revision of the current Warp 10™ platform is newer or equal.\\n\\n@param `revision` A string representing a revision (semantic versioning). Given a version number MAJOR.MINOR.PATCH, .MINOR or .MINOR.PATCH can be omitted.\\n\\n@param `newer` A boolean indicating wether the revision of the current Warp 10™ platform is newer or equal to the given revision.\\n\\n\",\"signature\":\"MINREV( revision:STRING ): newer:BOOLEAN\",\"tags\":[\"platform\"],\"since\":\"1.2.23\",\"OPB64name\":\"MINREV\"},\"MMAP\":{\"description\":\"The `MMAP` function applies a macro on each key/value pair of a **MAP**, producing a **MAP** with the two elements on top of the stack after each macro invocation.\\n\\nThe macro is called with a stack containing the **MAP** index on top and the key/value pair at that particular index below it.\\nSince Warp 10 2.4.0, you can override this behaviour with a boolean.\\n\\n@param `macro` This macro will be called for each entry in inputmap.\\n\\n@param `inputmap` Map to iterate on.\\n\\n@param `results` Map of results left on the top of the stack by each macro\\n\\n@param `index` When set to true, the current index (=iteration count-1) will be on the top of the stack. By default, true.\\n\\n\",\"signature\":\"MMAP( inputmap:MAP macro:MACRO ): results:MAP\\nMMAP( inputmap:MAP macro:MACRO index:BOOLEAN ): results:MAP\",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"MMAP\"},\"MODE\":{\"description\":\"The `MODE` function computes the mode(s) for a given Geo Time Series™ or a GTS **LIST**. Foreach Geo Time Series™ pushes back on the stack a list containing\\ntheir mode(s).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Mode of the list (the items that occurs most often)\\n\\n\",\"signature\":\"MODE( gts:GTS ): result:LIST\\nMODE( gtsList:LIST<GTS> ): result:LIST<LIST>\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"MODE\"},\"MONOTONIC\":{\"description\":\"Produces a new Geo Time Series™ from an input by modifying the value so the result is monotonous. This is technically applying a ratchet effect on values.\\n\\nThe `MONOTONIC` function expects a boolean on top of the stack and a Geo Time Series™ or list thereof below the boolean. The boolean indicates whether the\\nresult should be monotonically increasing (false) or decreasing (true).\\n\\n@param `trend` Whether the result should be monotonically increasing (false) or decreasing (true)\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` New Geo Time Series™\\n\\n@param `resultList` List of new Geo Time Series™\\n\\n\",\"signature\":\"MONOTONIC( gts:GTS trend:BOOLEAN ): result:GTS\\nMONOTONIC( gtsList:LIST<GTS> trend:BOOLEAN ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MONOTONIC\"},\"MOTIONSPLIT\":{\"description\":\"The `MOTIONSPLIT` function splits Geo Time Series™ instances based on several possible motion criteria. Split parameters can be combined to split on multiple criteria.\\n\\n`MOTIONSPLIT` can split on:\\n- stopped state detection\\n- moving to stopped transition\\n- time difference between two ticks (just as [`TIMESPLIT`](/doc/TIMESPLIT) does).\\n- maximal distance between two consecutive positions.\\n\\n`MOTIONSPLIT` parameters:\\n- **timesplit**: LONG value, time in platform time unit. Splits if the time difference between two consecutive ticks is strictly greater than this parameter. If defined, the split type label will be \\\"timesplit\\\".\\n- **distance.split**: DOUBLE value, distance in meter. Splits if the orthodromic distance between two consecutive locations is strictly greater than this parameter. If defined, the split type label will be \\\"distancesplit\\\".\\n- **stopped.min.time**: LONG value, time in platform time unit. This is the minimum time the consecutive locations should stay in the stopped zone radius to consider a stop state. If defined, the split type label will be \\\"stopped\\\".\\n- **stopped.max.radius**: DOUBLE value, distance in meter. As long as consecutive positions remains in the radius during stopped.min.time, `MOTIONSPLIT` detect a stopped state.\\n- **stopped.max.speed**: DOUBLE value, speed in m/s. If the speed is greater than this value while in stopped state, `MOTIONSPLIT` exits the stopped state.\\n- **stopped.max.mean.speed**: DOUBLE value, speed in m/s. Maximum mean speed in the proximity zone that prevent the split. `MOTIONSPLIT` will split only if there is a full stop during the given time and radius, and if the mean speed in the proximity zone is less than this parameter.\\n- **stopped.split**: BOOLEAN value. If true, `MOTIONSPLIT` also splits between stopped and moving sequences. If defined, the split type label will be \\\"stopped\\\" or \\\"moving\\\".\\n- **label.stopped.time**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the time in stopped state. If the split source is not a stop detection, this label won't be set.\\n- **label.split.number**: STRING value. If defined, `MOTIONSPLIT` will add an extra label on each split that contains the split number, starting from 1.\\n- **label.split.type**: STRING value. If defined, `MOTIONSPLIT` will add an extra label that contains the split reason. It could be \\\"timesplit\\\", \\\"distancesplit\\\", \\\"end\\\", \\\"stopped\\\" or \\\"moving\\\".\\n\\n`MOTIONSPLIT` split type priorities:\\n- If stopped.min.time and stopped.max.radius are set, the stop detection has the first priority.\\n- If `MOTIONSPLIT` does not detect a stopped state, it looks for a distance split.\\n- If `MOTIONSPLIT` does not detect a stopped state or a distance split, it looks for a time split.\\n\\n\\n@param `parameters` List of splitting parameters. See the function description.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"signature\":\"MOTIONSPLIT( gts:GTS parameters:MAP ): splits:LIST<GTS>\\nMOTIONSPLIT( lgts:LIST<GTS> parameters:MAP ): lsplits:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"2.3.0\",\"OPB64name\":\"MOTIONSPLIT\"},\"MRSEC\":{\"description\":\"The `MRSEC` function modifies a `MACRO` and any macro it contains, setting its *secure* flag to `true`. It is a recursive version of [`MSEC`](/doc/MSEC).\\n\\n@param `macro` `MACRO` to recursively flag as secure.\\n\\n@param `secured` The original `MACRO` now recursively marked as secure.\\n\\n\",\"signature\":\"MRSEC( macro:MACRO ): secured:MACRO\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MRSEC\"},\"MSEC\":{\"description\":\"The `MSEC` function modifies a `MACRO`, setting its *secure* flag to `true`. Some functions behave differently in the presence of secure macros, namely:\\n\\n* `SNAPSHOT` of a secure macro does not produce the actual code of the macro but a comment indicating the macro is secure.\\n* `ASREGS` and `DEREF` cannot operate on secure macros.\\n\\nMaking a macro secure is handy when returning a macro as the result of another macro call. The returned macro cannot be altered or inspected by the calling code thus providing a level of security and enabling the return of a singleton macro.\\n\\n@param `macro` `MACRO` to flag as secure.\\n\\n@param `secured` The original `MACRO` now marked as secure.\\n\\n\",\"signature\":\"MSEC( macro:MACRO ): secured:MACRO\",\"tags\":[\"platform\"],\"since\":\"2.10.2\",\"OPB64name\":\"MSEC\"},\"MSGFAIL\":{\"description\":\"The `MSGFAIL` function stops the execution of WarpScript code by throwing an exception. \\n\\n@param `message` The exception message\\n\\n\",\"signature\":\"MSGFAIL( message:STRING ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSGFAIL\"},\"MSIG\":{\"description\":\"The `MSIG` function extracts a signature macro from a signed macro. The function can also be used with 3 `STRING` parameters in which case is simply consumes those parameters and emits nothing. This latter case is meant for signature macros so such macros are valid macros which do nothing. See [`MSIGN`](/doc/MSIGN) for the format of the signature macros.\\n\\nIf the input macro does not contain a signature, the result of applying `MSIG` will be an empty macro.\\n\\n@param `macro` Macro from which to extract the signature.\\n\\n@param `sig` Signature macro.\\n\\n\",\"signature\":\"MSIG( macro:MACRO ): macro:MACRO sig:MACRO\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIG\"},\"MSIGCOUNT\":{\"description\":\"The `MSIGCOUNT` function counts the number of signatures present in a macro. Note that it does not verify the said signatures.\\n\\n@param `macro` Macro from which to extract the signature count.\\n\\n@param `count` Number of signatures present in the macro.\\n\\n\",\"signature\":\"MSIGCOUNT( macro:MACRO ): count:LONG\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGCOUNT\"},\"MSIGINFO\":{\"description\":\"The `MSIGINFO` function extracts elements from a signed or signature macro. If a signature was found it outputs a map with the following keys, otherwise it outputs an empty map.\\n\\n| Key   | Description|\\n|-------|------------|\\n| `key` | ECC public key to use for signature verification. |\\n| `sig` | Byte array containing the signature. |\\n\\n@param `macro` Macro from which to extract the signature infos.\\n\\n@param `infos` Map containing the extracted informations.\\n\\n\",\"signature\":\"MSIGINFO( macro:MACRO ): macro:MACRO infos:MAP\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGINFO\"},\"MSIGN\":{\"description\":\"The `MSIGN` function creates a cryptographic signature of a macro. The cryptographic signature is itself a macro with the following structure:\\n\\n```\\n<%\\n  'CURVE'\\n  'PUBKEY'\\n  'SIG'\\n  MSIG\\n%>\\n```\\n\\nwhere `CURVE` is the name of the [Elliptic Curve Cryptography](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) to use, `PUBKEY` is the hex encoded public key (`Q` parameter) which can be used to verify the signature and `SIG` is the hex encoded `SHA256WITHECSDA` signature of the `UTF-8` content of the snapshot of the macro.\\n\\nThe resulting signature macro can be concatenated at the end of the original unsigned macro to create a *signed* macro. The signature macro can then be extracted using [`MSIG`](/doc/MSIG) or [`MDETACH`](/doc/MDETACH).\\n\\n@param `privatekey` ECC private key to use for signing `macro`.\\n\\n@param `macro` Macro to sign.\\n\\n@param `sig` Signature macro.\\n\\n\",\"signature\":\"MSIGN( macro:MACRO privatekey:KEY ): macro:MACRO sig:MACRO\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MSIGN\"},\"MSORT\":{\"description\":\"The function `MSORT` inspects the top of the stack. If it is a **MAP**, it sorts the **MAP** according to its keys. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\n@param `map` Map to sort\\n\\n@param `result` Sorted map\\n\\n\",\"signature\":\"MSORT( map:MAP ): result:MAP\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSORT\"},\"MSTU\":{\"description\":\"The `MSTU` function pushes onto the stack the number of platform time units in one millisecond. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one millisecond.\\n\\n\",\"signature\":\"MSTU(): numberTimeUnits:LONG\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"MSTU\"},\"MULTIPLYEXACT\":{\"description\":\"The `MULTIPLYEXACT` function consumes two LONGs from the top of the stack and puts back the product. If the product overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `prod` The product of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sprod` The product of all the elements of list\\n\\n@param `gprod` The product of all the elements of gts\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `lprod` List of **LONG** where each value is the product of y and an element in lx\\n\\n@param `gtsprod` GTS of **LONG** values where each value is the product of y and an element in lx\\n\\n\",\"signature\":\"MULTIPLYEXACT( x:NUMBER y:NUMBER ): prod:LONG\\nMULTIPLYEXACT( list:LIST<NUMBER> ): sprod:LONG\\nMULTIPLYEXACT( lx:LIST<NUMBER> y:NUMBER ): lprod:LIST<LONG>\\nMULTIPLYEXACT( gts:GTS ): gprod:LONG\\nMULTIPLYEXACT( gtsx:GTS y:NUMBER ): gtsprod:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"MULTIPLYEXACT\"},\"MUSIGMA\":{\"description\":\"The `MUSIGMA` function calculates the mean and the standard deviation of a Geo Time Series. It consumes two parameters from the top of the stack: a boolean \\n(to choose if [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction) should be applied on the standard deviation) and a numeric GTS, and \\nit pushes onto the stack its mean (mu) and its standard deviation (sigma).\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `sigma` Standard deviation\\n\\n@param `mu` Mean\\n\\n@param `gts` A single Geo Time Series\\n\\n\",\"signature\":\"MUSIGMA( gts:GTS bessel:BOOLEAN ): mu:DOUBLE sigma:DOUBLE\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"MUSIGMA\"},\"MUTEX\":{\"description\":\"Attempts to hold a named lock, creating it if needed, and execute a macro while holding the lock. When the macro execution terminates, either normally or with an error, the lock is released.\\n\\n@param `mutex` Name of lock to hold.\\n\\n@param `macro` Macro to execute while holding the lock.\\n\\n\",\"signature\":\"MUTEX( macro:MACRO mutex:STRING ): \",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"MUTEX\"},\"MVELEVATIONS\":{\"description\":\"The `MVELEVATIONS` function extracts elevations from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVELEVATIONS` function will emit a list with two elements (a pair), the first element will be the elevation associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the elevations of the Multivariate value itself.\\n\\nIf a tick has no associated elevation, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted elevations.\\n\\n\",\"signature\":\"MVELEVATIONS( input:GTSENCODER ): output:LIST\\nMVELEVATIONS( input:GTS ): output:LIST\\nMVELEVATIONS( linput:LIST ): output:LIST\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVELEVATIONS\"},\"MVERIFY\":{\"description\":\"The `MVERIFY` function checks if a macro signature is valid and throws an exception if it is not or if the macro was not signed.\\n\\n@param `macro` Macro whose signature must be verified.\\n\\n\",\"signature\":\"MVERIFY( macro:MACRO ): macro:MACRO\",\"tags\":[\"crypto\"],\"since\":\"2.7.8\",\"OPB64name\":\"MVERIFY\"},\"MVHHCODES\":{\"description\":\"The `MVHHCODES` function extracts [`HHCodes`](https://en.wikipedia.org/wiki/HHCode) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVHHCODES` function will emit a list with two elements (a pair), the first element will be the HHCode associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the HHCodes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `NaN` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted HHCodes.\\n\\n\",\"signature\":\"MVHHCODES( input:GTSENCODER ): output:LIST\\nMVHHCODES( input:GTS ): output:LIST\\nMVHHCODES( linput:LIST ): output:LIST\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVHHCODES\"},\"MVINDEXSPLIT\":{\"description\":\"The `MVINDEXSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVINDEXSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element index (first element being at index 0).\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:INDEX` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of indices or indices ranges can be specified to only produce encoders for the indices which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `indices` List of indices or indices ranges (list of two indices), used to restrict which indices to consider.\\n\\n@param `renaming` Map of index (LONG) to parameter to `RENAME`. If no entry is present for an index, `+:INDEX` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"signature\":\"MVINDEXSPLIT( input:GTSENCODER ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTSENCODER indices:LIST ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTSENCODER renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTSENCODER indices:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS indices:LIST ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( input:GTS indices:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> indices:LIST ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTSENCODER> indices:LIST renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> indices:LIST ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\\nMVINDEXSPLIT( linput:LIST<GTS> indices:LIST renaming:MAP ): loutput:LIST<LIST<GTSENCODER>>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVINDEXSPLIT\"},\"MVLOCATIONS\":{\"description\":\"The `MVLOCATIONS` function extracts location (latitude, longitude) from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVLOCATIONS` function will emit a list with two elements (a pair), the first element will be the latitude and longitude (a list) associated with the tick at which the Multivariate value was encountered, the second element will be a list containing the latitudes and longitudes of the Multivariate value itself.\\n\\nIf a tick has no associated location, `[ NaN NaN ]` will be emitted.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted locations.\\n\\n\",\"signature\":\"MVLOCATIONS( input:GTSENCODER ): output:LIST\\nMVLOCATIONS( input:GTS ): output:LIST\\nMVLOCATIONS( linput:LIST ): output:LIST\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVLOCATIONS\"},\"MVTICKS\":{\"description\":\"The `MVTICKS` function extracts ticks from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\nWhen a tick has an associated Multivariate value, the `MVTICKS` function will emit a list with two elements (a pair), the first element will be the tick at which the Multivariate value was encountered, the second element will be a list containing the ticks of the Multivariate value itself.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted ticks.\\n\\n\",\"signature\":\"MVTICKS( input:GTSENCODER ): output:LIST\\nMVTICKS( input:GTS ): output:LIST\\nMVTICKS( linput:LIST ): output:LIST\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKS\"},\"MVTICKSPLIT\":{\"description\":\"The `MVTICKSPLIT` function transforms an input Geo Time Series™ or Encoder by interpreting its Multi Value values and producing multiple output encoders.\\n\\nThe transformation works as follows, whenever `MVTICKSPLIT` encounters a value in Multi Value format at `tick` with `lat`, `lon`, `elev` as optional geo components, it decodes that value and adds each of its elements to a separate Encoder identified by the element timestamp.\\n\\nEach element is added with `tick` as its timestamp and `lat`, `lon`, `elev` as its geo components, unless it has its own geo information.\\n\\nIf the transformation encounters a value which is not in Multi Value format, its assumes it is an element found at index 0 and adds it to the associated encoder.\\n\\nOnce the input has been scanned completely, the resulting encoders are renamed, either by looking up the renaming parameter in a map or by appending `:TIMESTAMP` to the original name.\\n\\nThe labels and attributes from the input are preserved.\\n\\nOptionaly a list of timestamps or timestamp ranges can be specified to only produce encoders for the timestamps which are specified or fall within a specified range.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `timestamps` List of timestamps or timestamps ranges (list of two timestamps), used to restrict which timestamps to consider.\\n\\n@param `renaming` Map of timestamp (LONG) to parameter to `RENAME`. If no entry is present for a timestamp, `+:TIMESTAMP` will be assumed.\\n\\n@param `output` List of resulting encoders.\\n\\n@param `loutput` List of list of resulting encoders.\\n\\n\",\"signature\":\"MVTICKSPLIT( input:GTSENCODER ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTSENCODER timestamps:LIST ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTSENCODER renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTSENCODER timestamps:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS timestamps:LIST ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( input:GTS timestamps:LIST renaming:MAP ): output:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> timestamps:LIST ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> renaming:MAP ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTSENCODER> timestamps:LIST renaming:MAP ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> timestamps:LIST ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> renaming:MAP ): loutput:LIST<GTSENCODER>\\nMVTICKSPLIT( linput:LIST<GTS> timestamps:LIST renaming:MAP ): loutput:LIST<GTSENCODER>\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVTICKSPLIT\"},\"MVVALUES\":{\"description\":\"The `MVVALUES` function extracts values from an input Geo Time Series™ or GTS Encoder, correctly interpreting Multivariate (MV) values. The result is a potentially multidimensional list.\\n\\n@param `input` Input encoder or Geo Time Series™ to transform.\\n\\n@param `linput` List of input encoder or Geo Time Series™ to transform.\\n\\n@param `output` List (potentially multidimensional) of extracted values.\\n\\n\",\"signature\":\"MVVALUES( input:GTSENCODER ): output:LIST\\nMVVALUES( input:GTS ): output:LIST\\nMVVALUES( linput:LIST ): output:LIST\",\"tags\":[\"gts\",\"encoder\",\"conversion\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"MVVALUES\"},\"NAME\":{\"description\":\"The `NAME` function consumes a Geo Time Series™ from the stack, extracts its class name, and pushes it onto the stack.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `encoder` Geo Time Series™ Encoder\\n\\n@param `result` Class name\\n\\n\",\"signature\":\"NAME( gts:GTS ): result:STRING\\nNAME( encoder:GTSENCODER ): result:STRING\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NAME\"},\"NBOUNDS\":{\"description\":\"The `NBOUNDS` function computes bounds defining a specified number of intervals which have the same area under the curve of a normal distribution with a given mean and standard deviation.\\n\\n@param `n` Number of desired intervals.\\n\\n@param `sigma` Positive standard deviation to use for the normal distribution.\\n\\n@param `mu` Mean to use for the normal distribution.\\n\\n@param `bounds` List of `n`-1 bounds defining the `n` intervals.\\n\\n\",\"signature\":\"NBOUNDS( mu:NUMBER sigma:NUMBER n:LONG ): bounds:LIST<DOUBLE>\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NBOUNDS\"},\"NDEBUGON\":{\"description\":\"Turns on stack debugging so up to the given number of stack levels will be returned in case of error. Stack debugging is off by default.\\n\\n@param `n` Maximum number of stack levels to return in case of error.\\n\\n\",\"signature\":\"NDEBUGON( n:NUMBER ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NDEBUGON\"},\"NEGATEEXACT\":{\"description\":\"The `NEGATEEXACT` function consumes one NUMBER from the top of the stack and puts back the negated value. If the result overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be negated\\n\\n@param `result` The negated value\\n\\n@param `lvalue` List of values to be negated\\n\\n@param `lresult` List of negated values\\n\\n@param `gts` GTS containing values to be negated\\n\\n@param `gtsresult` GTS containing negated values\\n\\n\",\"signature\":\"NEGATEEXACT( value:NUMBER ): result:LONG\\nNEGATEEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nNEGATEEXACT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEGATEEXACT\"},\"NEWENCODER\":{\"description\":\"The `NEWENCODER` function creates an empty encoder and pushes it onto the stack. An encoder is very similar to a Geo Time Series™, it differs by its ability to store values of all four types (LONG, DOUBLE, BOOLEAN, STRING) where a GTS is limited to the type of the first value stored.\\n\\nThe set of operations which can be performed on encoders is more limited than those that can be performed on GTS.\\n\\n@param `encoder` A newly created empty encoder instance.\\n\\n\",\"signature\":\"NEWENCODER(): encoder:GTSENCODER\",\"tags\":[\"encoder\",\"multivariate\"],\"since\":\"1.2.9\",\"OPB64name\":\"NEWENCODER\"},\"NEWGTS\":{\"description\":\"The `NEWGTS` function pushes onto the stack an empty Geo Time Series™ instance.\\n\\n@param `gts` A newly created empty GTS instance.\\n\\n\",\"signature\":\"NEWGTS(): gts:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEWGTS\"},\"NEXTAFTER\":{\"description\":\"The `NEXTAFTER` function consumes two numeric parameter from the top of the stack and pushes back the **DOUBLE** adjacent to the first argument in the direction of the second argument. In other words, the result is between *from* and *to* and adjacent to *from*.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. Considering this function as `F`, the result of `$a [ $b $c ] F` is `[ $a $b F $a $c F ]` and the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case the result is a GTS.\\n\\n@param `from` Starting value\\n\\n@param `to` Direction used to calculate the adjacent value\\n\\n@param `result` Next **DOUBLE** from *from* to *to*\\n\\n@param `lfrom` List of starting values\\n\\n@param `lto` List of directions used to calculate the adjacent value\\n\\n@param `lresult` List of next **DOUBLE** from *from* to *to*\\n\\n@param `gtsfrom` Numerical GTS of starting values\\n\\n@param `gtsto` Numerical GTS of directions used to calculate the adjacent value\\n\\n@param `gtsresult` Numerical GTS of next **DOUBLE** from *from* to *to*\\n\\n\",\"signature\":\"NEXTAFTER( from:NUMBER to:NUMBER ): result:DOUBLE\\nNEXTAFTER( from:NUMBER lto:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nNEXTAFTER( lfrom:LIST<NUMBER> to:NUMBER ): lresult:LIST<DOUBLE>\\nNEXTAFTER( from:NUMBER gtsto:GTS ): gtsresult:GTS\\nNEXTAFTER( gtsfrom:GTS to:NUMBER ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTAFTER\"},\"NEXTDOWN\":{\"description\":\"The `NEXTDOWN` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of negative infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of negative infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of negative infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of negative infinity of the given GTS values\\n\\n\",\"signature\":\"NEXTDOWN( value:NUMBER ): result:DOUBLE\\nNEXTDOWN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nNEXTDOWN( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"NEXTDOWN\"},\"NEXTUP\":{\"description\":\"The `NEXTUP` function consumes a numeric parameter from the top of the stack and pushes back the next **DOUBLE** in the direction of positive infinity.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Next **DOUBLE** in the direction of positive infinity\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of next **DOUBLE** in the direction of positive infinity\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the next **DOUBLE** in the direction of positive infinity of the given GTS values\\n\\n\",\"signature\":\"NEXTUP( value:NUMBER ): result:DOUBLE\\nNEXTUP( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nNEXTUP( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NEXTUP\"},\"NOLOG\":{\"description\":\"The `NOLOG` function resets java.util.logging.LogManager.\\n\\nIt can be useful to do this during developments and tests of an extension.\\n\\nThe `NOLOG` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n\",\"signature\":\"NOLOG(): \",\"tags\":[\"extensions\"],\"since\":\"1.2.19\",\"OPB64name\":\"NOLOG\"},\"NONEMPTY\":{\"description\":\"Filter a list of Geo Time Series™ in order to retain only those that have at least one value.\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `results` Filtered list of Geo Time Series™\\n\\n\",\"signature\":\"NONEMPTY( gtsList:LIST<GTS> ): results:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NONEMPTY\"},\"NONNULL\":{\"description\":\"The `NONNULL` function consumes a list and produces a list containing only the non NULL elements of the argument list.\\n\\n@param `list` The argument list to filter\\n\\n@param `nonnulls` A new list with only those elements from `list` which are not NULL\\n\\n\",\"signature\":\"NONNULL( list:LIST ): nonnulls:LIST\",\"tags\":[\"math\",\"logic\"],\"since\":\"1.2.7\",\"OPB64name\":\"NONNULL\"},\"NOOP\":{\"description\":\"It does nothing.\\n\\nWhile it does not have a usefulness of its own, it can be used when generating code from within WarpScript code prior to executing it with [`EVAL`](/doc/EVAL).\\n\\n\",\"signature\":\"\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOOP\"},\"NORMALIZE\":{\"description\":\"The `NORMALIZE` function takes as parameter a numeric GTS or a list of numeric GTS and normalize them between 0 and 1 (i.e. it replaces X by \\n(X - min)/(max - min) or by 1 if max == min).\\n\\n@param `gts` GTS to normalize\\n\\n@param `gtsList` List of GTS to normalize\\n\\n@param `result` Normalized GTS\\n\\n@param `resultList` List of normalized GTS\\n\\n\",\"signature\":\"NORMALIZE( gts:GTS ): result:GTS\\nNORMALIZE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NORMALIZE\"},\"NOT\":{\"description\":\"Negates a boolean.\\n\\nThe `NOT` function is synonymous for [`!`](/doc/7F). It consumes a boolean value x from the top of the stack and pushes back the result of appying the\\n`NOT` logical function.\\n\\nFor a true input value it returns false, for a false one it returns true.\\n\\n@param `input` Boolean value to negate\\n\\n@param `result` Negated boolean value\\n\\n@param `gts` A boolean Geo Time Series™\\n\\n@param `negatedgts` A boolean Geo Time Series™\\n\\n\",\"signature\":\"NOT( input:BOOLEAN ): result:BOOLEAN\\nNOT( gts:GTS ): negatedgts:GTS\",\"tags\":[\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOT\"},\"NOTAFTER\":{\"description\":\"Checks that the current time is not after the provided timestamp.\\n\\nThe `NOTAFTER` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not after the provided timestamp.\\nIf it is not after the WarpScript execution continues, otherwise it throws an exception.\\n\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"signature\":\"NOTAFTER( timestamp:LONG ): \\nNOTAFTER( date:STRING ): \",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTAFTER\"},\"NOTBEFORE\":{\"description\":\"Checks that the current time is not before the provided timestamp.\\n\\nThe `NOTBEFORE` function consumes a timestamp (**LONG** or [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) string representation) on the top of the stack. It checks that the current time (NOW) is not before the provided timestamp.\\nIf it is not before the WarpScript execution continues, otherwise it throws an exception.\\n\\n@param `timestamp` The timestamp in Warp 10 unit (micro-second by default)\\n\\n@param `date` [ISO8601](http://en.wikipedia.org/wiki/ISO_8601) date\\n\\n\",\"signature\":\"NOTBEFORE( timestamp:LONG ): \\nNOTBEFORE( date:STRING ): \",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTBEFORE\"},\"NOTIMINGS\":{\"description\":\"Use of the `NOTIMINGS` function disables the collection of timing information for each line of the input script. Use [`TIMINGS`](/doc/TIMINGS) to enable it again.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOTIMINGS\"},\"NOW\":{\"description\":\"The `NOW` function pushes onto the stack the current **LONG** timestamp expressed in the platform time unit. This timestamp is the number of platform time unit elapsed since 00:00:00 on 1 January 1970 UTC minus the number of leap seconds, see [Unix time](https://en.wikipedia.org/wiki/Unix_time).\\n\\nThis function is mostly linear with time but this property is violated when the OS resynchronises its clock (ie consecutive calls to `NOW` may 'jump' or 'go backward').\\n\\n@param `timestamp` The current timestamp in platform time unit.\\n\\n\",\"signature\":\"NOW(): timestamp:LONG\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"NOW\"},\"NPDF\":{\"description\":\"The `NPDF` function builds a function which outputs the probability of occurrence of a given value under a specified normal distribution.\\n\\nThe normal distribution is defined by its mean and standard deviation. The result of the `NPDF` function is itself a function which can be invoked via [`EVAL`](doc/EVAL).\\n\\n*NPDF* stands for Normal (Gaussian) distribution Probability Density Function.\\n\\n@param `sigma` Standard deviation of the normal distribution to consider.\\n\\n@param `mu` Mean of the normal distribution to consider.\\n\\n@param `npdf` Function which given an input number outputs the probability of its occurence under the given normal distribution.\\n\\n\",\"signature\":\"NPDF( mu:NUMBER sigma:NUMBER ): npdf:FUNCTION\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"NPDF\"},\"NPEEK\":{\"description\":\"Displays a given number of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `levels` Number of stack levels to display.\\n\\n\",\"signature\":\"NPEEK( levels:NUMBER ): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"NPEEK\"},\"NRETURN\":{\"description\":\"Immediately exit a certain number of macros being executed. The `NRETURN` function expects a number of levels on top of the stack.\\n\\n@param `levelnumber` Number of levels of macro to exit.\\n\\n\",\"signature\":\"NRETURN( levelnumber:LONG ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"NRETURN\"},\"NSUMSUMSQ\":{\"description\":\"Computes the cardinality, sum of values and sum of squared values of a Geo Time Series™. Pushes those results on the stack in the order they were mentioned.\\n\\nOnly numeric series are allowed.\\n\\n@param `square` Sum of squared values\\n\\n@param `sum` Sum of values\\n\\n@param `cardinality` Values count\\n\\n@param `gts` Geo Time Series™\\n\\n\",\"signature\":\"NSUMSUMSQ( gts:GTS ): cardinality:LONG sum:DOUBLE square:DOUBLE\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"NSUMSUMSQ\"},\"NULL\":{\"description\":\"The `NULL` function pushes the symbolic value *null* onto the stack.\\n\\n@param `result` Symbolic value *null*\\n\\n\",\"signature\":\"NULL(): result:NULL\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NULL\"},\"NaN\":{\"description\":\"Pushes the double value *NaN* (Not a Number) onto the stack.\\n\\n@param `result` Value *NaN*\\n\\n\",\"signature\":\"NaN(): result:DOUBLE\",\"tags\":[\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"NaN\"},\"ONLYBUCKETS\":{\"description\":\"Only retains ticks from Geo Time Series™ with timestamps which are bucket ends. If an input GTS is not bucketized, a clone of the GTS will be returned.\\n\\nThe `ONLYBUCKETS` function does not remove duplicate ticks, please consider using [`DEDUP`](/doc/DEDUP) for that purpose.\\n\\n@param `gts` Single instance of Geo Time Series™ to transform.\\n\\n@param `lgts` List of Geo Time Series™ to transform.\\n\\n@param `result` Transformed GTS.\\n\\n@param `lresult` List of transformed GTS.\\n\\n\",\"signature\":\"ONLYBUCKETS( gts:GTS ): result:GTS\\nONLYBUCKETS( lgts:LIST<GTS> ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ONLYBUCKETS\"},\"OPB64->\":{\"description\":\"Decode a String in order preserving base64 into a byte array.\\n\\nBytes array cannot be represented on the stack.\\n\\n@param `input` Any valid opbbase64 string.\\n\\n@param `output` Byte array of the input decoded input.\\n\\n\",\"signature\":\"OPB64->( input:STRING ): output:BYTES\",\"tags\":[\"conversion\"],\"since\":\"1.0.7\",\"OPB64name\":\"Ip01CYFhEV\"},\"OPB64TOHEX\":{\"description\":\"The OPB64TOHEX function decodes the order preserving base64 string on top of the stack and immediately re-encode it in hex string.\\n\\n\\n@param `input` OPBase64 encoded string\\n\\n@param `output` hexadecimal representation\\n\\n\",\"signature\":\"OPB64TOHEX( input:STRING ): output:STRING\",\"tags\":[\"conversion\"],\"since\":\"1.0.2\",\"OPB64name\":\"OPB64TOHEX\"},\"OPS\":{\"description\":\"Pushes onto the stack the current number of operations which were performed by the WarpScript code execution.\\n\\n@param `ops` number of operations\\n\\n\",\"signature\":\"OPS(): ops:LONG\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPS\"},\"OPTDTW\":{\"description\":\"The `OPTDTW` function finds the top subsequence matches in a sequence for a given query sequence. The function uses [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping)\\nto assess the subsequence similarity with the query.\\n\\n@param `match` Number of top matches. Use 0 as the number of matches to return to return them all.\\n\\n@param `query` Query numerical sequence, thr shortest\\n\\n@param `data` Data sequence in which to find matches\\n\\n@param `result` List of matches, each match being a pair of (index, distance).\\n\\n@param `window` Maximum index difference.\\n\\n\",\"signature\":\"OPTDTW( data:LIST query:LIST match:NUMBER ): result:LIST\\nOPTDTW( data:LIST query:LIST window:NUMBER match:NUMBER ): result:LIST\",\"tags\":[\"math\",\"distance\"],\"since\":\"1.0.0\",\"OPB64name\":\"OPTDTW\"},\"OPTIMIZE\":{\"description\":\"Optimizes the memory footprint of Geo Time Series™ and GTS Encoder instances.\\n\\n@param `ratio` Ratio of memory footprint to number of values, if this ratio is not exceeded, no optimization will take place. As a result, optimization is always done when ratio <= 1 or ratio is NaN.\\n\\n@param `gts` Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `encoder` Instance of GTS Encoder to optimize.\\n\\n@param `optencoder` Optimized version of the encoder, or the original instance if no optimization occurred.\\n\\n@param `lgts` List of Geo Time Series™ instance to optimize, the optimized version is the same instance.\\n\\n@param `lencoder` List of instances of GTS Encoder to optimize.\\n\\n@param `loptencoder` List of optimized version of the encoders or the original instances if no optimization occurred.\\n\\n\",\"signature\":\"OPTIMIZE( gts:GTS ratio:NUMBER ): gts:GTS\\nOPTIMIZE( encoder:GTSENCODER ratio:NUMBER ): optencoder:GTSENCODER\\nOPTIMIZE( lgts:LIST<GTS> ratio:NUMBER ): lgts:LIST<GTS>\\nOPTIMIZE( lencoder:LIST<GTSENCODER> ratio:NUMBER ): loptencoder:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"OPTIMIZE\"},\"OR\":{\"description\":\"The `OR` operator is a synonymous for [`||`](/doc/U6k).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `OR` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"signature\":\"OR( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\nOR( l:LIST ): result:BOOLEAN\\nOR( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"OR\"},\"PACK\":{\"description\":\"The `PACK` function packs a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n@param `input` List to pack\\n\\n@param `format` Format used to pack\\n\\n@param `result` Bytes array\\n\\n\",\"signature\":\"PACK( input:LIST format:STRING ): result:BYTES\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"PACK\"},\"PAPPLY\":{\"description\":\"The `PAPPLY` function performs operations in a way identical to the [`APPLY`](/doc/APPLY) framework but produces a map of results keyed by the label map of each equivalence class.\\n\\nAs [`APPLY`](/doc/APPLY), `PAPPLY` provides a way to apply an operation on Geo Time Series™ grouped by equivalence classes. It is somehow similar to the [`REDUCE`](/doc/REDUCE) framework in the sense that everything you can do with `REDUCE` can be done with `APPLY`, but `APPLY` is more flexible and goes way beyond what `REDUCE` can due. The flexibility of `APPLY` comes with a greater complexity and thus both frameworks exist.\\n\\n`APPLY` operates on multiple lists of Geo Time Series™, `L1` ... `Ln`. The first phase of `APPLY` will partition each of those lists in equivalence classes by inspecting the values of the specified labels. If one of the lists is a singleton (*i.e.* contains a single Geo Time Series™), then it will be included in all equivalence classes, regardless of the values of its labels. If you wish to override this behaviour, simply duplicate the GTS in the list so it is no longer a singleton.\\n\\nThe second phase of `APPLY` will execute the operation for each equivalence class. The execution will apply the operation to `n` parameters, tick by tick, where the `i`th parameter is a list of lists of `timestamp`, `latitude`, `longitude`, `elevation` and `value`, one for each GTS from the list `Li` which is in the current equivalence class, in the order in which they appear in `Li`. The ticks scanned belong to the set of ticks of all Geo Time Series™ in the equivalence class.\\n\\nThe number of supported parameters depends on the selected operation, please refer to the documentation of each operation for the details.\\n\\n@param `gts` One or more list of Geo Time Series™.\\n\\n@param `labels` A list of label names to use when creating equivalence classes. An empty list means use all labels.\\n\\n@param `result` Map of resulting GTS, one per equivalence class, keyed with the equivalence class labels.\\n\\n@param `op` Operation to perform.\\n\\n\",\"signature\":\"PAPPLY( [ op:OPERATOR labels:LIST gts:LIST<GTS>+ ] ): result:MAP\",\"tags\":[\"gts\",\"framework\",\"op\"],\"since\":\"1.0.0\",\"OPB64name\":\"PAPPLY\"},\"PARSE\":{\"description\":\"The `PARSE` function parses an input **STRING** containing datapoints in the [Geo Time Series™ input format](/content/03_Documentation/03_Interacting_with_Warp_10/03_Ingesting_data/02_GTS_input_format) and pushes onto the stack the parsed Geo Time Series™.\\n\\n@param `data` Datapoints in the Geo Time Series™ input format\\n\\n@param `result` List of parsed Geo Time Series™\\n\\n\",\"signature\":\"PARSE( data:STRING ): result:LIST<GTS>\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.0.11\",\"OPB64name\":\"PARSE\"},\"PARSESELECTOR\":{\"description\":\"The `PARSESELECTOR` function parses a GTS Selector (STRING) returnss the class selector and labels selectors.\\n\\nIn order for `PARSESELECTOR` to parse correctly a selector, the following characters MUST appear percent-encoded in the `STRING` to parse, the equal sign (`=`, `%3D`), the comma (`,` `%2C`) and closing curly brace (`}` `%7D`). Due to the way WarpScript parses `STRING` constants, the `%` sign MUST be percent-encoded (`%25`) in the `STRING` if it appears in WarpScript code:\\n\\nThe `STRING` `class{label=comm%2Cequal%3Dsign}` must appear in WarpScript as:\\n\\n```\\n'class{label=comm%252Cequal%253Dsign'\\n```\\n\\nCombined with `TOSELECTOR`, it can be used to build a selector from a subset of GTS.\\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature'\\n  { 'sensorId' '=01' }\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\nFETCH\\n\\n```\\nThis can be used to simplify the syntax of a FETCH or FIND request. \\n\\n```flow\\n[\\n  'READ_TOKEN'\\n  'io.senx.tutorial.sensors.temperature{sensorId=01}' PARSESELECTOR\\n  '2014-01-05T00:00:00.000Z'\\n  '2014-01-05T23:59:59.999Z'\\n]\\n\\nFETCH\\n```\\n\\n\\n\\n@param `selector` String selector.\\n\\n@param `labelselector` MAP of label selectors.\\n\\n@param `classselector` Class name selector.\\n\\n\",\"signature\":\"PARSESELECTOR( selector:STRING ): classselector:STRING labelselector:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARSESELECTOR\"},\"PARSEVALUE\":{\"description\":\"The `PARSEVALUE` function parses a STRING representing a valid value in the Geo Time Series™ input format.\\n\\nThe underlying implementation being the internal WarpScript function, some of the returned types might not be easily handled in the rest of the calling script. Most notably, some floating point representations might lead to BigDecimal instances being produced.\\n\\n@param `input` String representation of the value to parse.\\n\\n@param `value` Parsed value, could be a STRING, LONG, DOUBLE, BIGDECIMAL, BOOLEAN or BYTES elements.\\n\\n\",\"signature\":\"PARSEVALUE( input:STRING ): value:ANY\",\"tags\":[\"gts\"],\"since\":\"2.1.0\",\"OPB64name\":\"PARSEVALUE\"},\"PARTITION\":{\"description\":\"The `PARTITION` function splits a Geo Time Series™ list in equivalence classes based on label values.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels` plus all labels with common values among the GTS in the equivalence class.\\n\\n\",\"signature\":\"PARTITION( lgts:LIST<GTS> labels:LIST<STRING> ): result:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PARTITION\"},\"PATTERNDETECTION\":{\"description\":\"The `PATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"signature\":\"PATTERNDETECTION( gts:GTS patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nPATTERNDETECTION( lgts:LIST<GTS> patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNDETECTION\"},\"PATTERNS\":{\"description\":\"The `PATTERNS` function extracts symbolic patterns (or motifs) from a Geo Time Series™. Those patterns are similar to [iSAX](http://www.cs.ucr.edu/~eamonn/iSAX/iSAX.html) symbols.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `PATTERNS` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"signature\":\"PATTERNS( gts:GTS wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nPATTERNS( lgts:LIST<GTS> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"PATTERNS\"},\"PEEK\":{\"description\":\"Displays the top of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"PEEK(): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEK\"},\"PEEKN\":{\"description\":\"Displays the content of the level of the stack at the given distance from the top.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n@param `distance` Distance (in stack levels) between the top of the stack and the level to display.\\n\\n\",\"signature\":\"PEEKN( distance:NUMBER ): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PEEKN\"},\"PERMUTE\":{\"description\":\"Permute the dimensions of a nested LIST as if it were a tensor or a multidimensional array.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent before operating. Default to false.\\n\\n@param `pattern` The permutation pattern (a LIST of LONG).\\n\\n@param `tensor` The resulting nested LIST.\\n\\n\",\"signature\":\"PERMUTE( tensor:LIST pattern:LIST ): tensor:LIST\\nPERMUTE( { tensor:LIST pattern:LIST fast:BOOLEAN  } ): tensor:LIST\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"PERMUTE\"},\"PFILTER\":{\"description\":\"Used to select Geo Time Series™ from a larger set. It allows you to extract only those Geo Time Series™ which match some criteria.\\n\\nWhile some filter are trivial, like selecting by name or labels, the `PFILTER framework allows for advanced filtering using N-ary functions \\n(functions which accept N parameters). Returned GTS are grouped by equivalence classes.\\n\\n@param `filter` Filter function to apply.\\n\\n@param `labels` Assuming there are N input lists, the filter function will then be called for each partition, each time with N parameters. Each parameter is the list of Geo Time Series™ in the partition which were originally in the i-th list. For input lists which contained a single Geo Time Series™, the singleton will always be passed as parameter, the single Geo Time Series™ was not taken into account for partitioning.\\n\\n@param `gtsList` One or several lists of Geo Time Series™.\\n\\n@param `result` A map keyed by the label set of each equivalence class whose values are lists of selected Geo Time Series™ from those lists. The returned Geo Time Series™ are not copies of the original ones, which means that changing the name or labels of the original ones will be reflected in the ones returned by the call to `PFILTER`.\\n\\n\",\"signature\":\"PFILTER( [ gtsList:LIST<GTS> labels:LIST<STRING> filter:FILTER ] ): result:MAP\",\"tags\":[\"framework\",\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"PFILTER\"},\"PGPDECRYPT\":{\"description\":\"The `PGPDECRYPT` function decrypts encryted data.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n@param `keyid` Key id of the PGP secret key to use for decryption. This can either be a LONG or a hex STRING.\\n\\n@param `keyring` PGP secret key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `encrypted` Encrypted content as `BYTES` or `STRING` (armored).\\n\\n@param `decrypted` Clear text content.\\n\\n\",\"signature\":\"PGPDECRYPT( encrypted:ANY keyring:KEYRING keyid:ANY passphrase:STRING ): decrypted:BYTES\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPDECRYPT\"},\"PGPENCRYPT\":{\"description\":\"The `PGPENCRYPT` function encrypts data so it can be decrypted by a given [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public key. The encryption is performed using [AES 256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) by default.\\n\\n@param `throw_keyid` Flag indicating whether or not to hide the key id of the recipient. Defaults to `true`.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `algorithm` Symmetric key algorithm to use for encryption. Possible values are `AES_128`, `AES_192`, `AES_256` (default), `BLOWFISH`, `CAMELLIA_128`, `CAMELLIA_192`, `CAMELLIA_256`, `CAST5`, `DES`, `IDEA`, `SAFER`, `TRIPLE_DES`, `TWOFISH`.\\n\\n@param `recipient` Recipient PGP public key or key id (LONG or hex STRING).\\n\\n@param `keyring` PGP key ring containing the key id specified in `recipient`. May not be set when `recipient` is a PGP public key.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to encrypt. `STRING` content will be encoded using `UTF-8` prior to encryption.\\n\\n@param `encrypted` `BYTES` or `STRING` (when `armor` is `true`) encrypted content.\\n\\n\",\"signature\":\"PGPENCRYPT( content:ANY { date:LONG keyring:KEYRING recipient:ANY algorithm:STRING armor:BOOLEAN throw_keyid:BOOLEAN  } ): encrypted:ANY\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPENCRYPT\"},\"PGPINFO\":{\"description\":\"The `PGPINFO` function outputs informations about the keys contained in a PGP key ring previously extracted by [`PGPRING`](/doc/PGPRING).\\n\\nIt outputs a MAP keyed by key id and with values which are MAPs containing the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `keyid` | Uppercase 64 bits hecadecimal key id. |\\n| `fingerprint` | Lowercase hexadecimal full key fingerprint. |\\n| `uid` | List of uids associated with the key. Each uid is a byte array (`BYTES`). |\\n| `bits` | Key strength in bits. |\\n| `algorithm` | Algorithm used by the key, can be one of `RSA_GENERAL`, `RSA_SIGN`, `RSA_ENCRYPT`, `ELGAMAL_GENERAL`, `ELGAMAL_ENCRYPT`, `DSA`, `ECDH`, `ECDSA`, `DIFFIE_HELLMAN`, `EDDSA`, and `UNKNOWN_xx` for yet unsupported algorithms.|\\n| `master` | `BOOLEAN` indicating whether or not the key is a master key. |\\n| `signing` | `BOOLEAN` indicating if the key can be used for signing. |\\n| `encryption` | `BOOLEAN` indicating if the key can be used for encryption. |\\n| `expiry` | Timestamp at which the key expires, in platform time units since the Unix Epoch. 0 means no expiration. |\\n| `pubkey` | PGP public key with this key id. |\\n| `attributes` | List of key attributes, each attribute is a byte array. The only supported attribute at the moment is JPEG images. |\\n\\n@param `ring` PGP public or private key ring as extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `infos` Details of the keys present in the ring or key.\\n\\n@param `key` PGP public key.\\n\\n\",\"signature\":\"PGPINFO( ring:ANY ): infos:MAP\\nPGPINFO( key:KEY ): infos:MAP\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPINFO\"},\"PGPPRIVATE\":{\"description\":\"The `PGPPRIVATE` function outputs the list of key ids for secret keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP secret key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP secret keys present in the key ring.\\n\\n\",\"signature\":\"PGPPRIVATE( keyring:KEYRING ): keyids:LIST<STRING>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPRIVATE\"},\"PGPPUBLIC\":{\"description\":\"The `PGPPUBLIC` function outputs the list of key ids for public keys present in a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret or public key ring extracted by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyring` PGP key ring to analyze.\\n\\n@param `keyids` List of key ids for the PGP public keys present in the key ring.\\n\\n\",\"signature\":\"PGPPUBLIC( keyring:KEYRING ): keyids:LIST<STRING>\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPPUBLIC\"},\"PGPRING\":{\"description\":\"The `PGPRING` function parses a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public or secret key ring block and extracts the various key rings it contains. The function returns a list of key ring objects.\\n\\n@param `block` PGP public or private key ring block as produced by `gpg --export` or `gpg --export-secret-[sub]keys`.\\n\\n@param `armored` PGP public key ring block as produced by `gpg --export*` with the `--armor` option.\\n\\n@param `keyrings` LIST of key rings found in `block`.\\n\\n@param `keyring` PGP public or secret key ring as produced by `PGPRING`.\\n\\n@param `encoded` Encoded form of the input key ring.\\n\\n\",\"signature\":\"PGPRING( block:BYTES ): keyrings:LIST<KEYRING>\\nPGPRING( armored:STRING ): keyrings:LIST<KEYRING>\\nPGPRING( keyring:KEYRING ): encoded:BYTES\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPRING\"},\"PGPSIGN\":{\"description\":\"The `PGPSIGN` function signs some content with a [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) secret key.\\n\\n@param `armor` Flag indicating whether or not to emit armored content, defaults to `true`.\\n\\n@param `digest` Digest algorithm to use for the signature. Possible values are `SHA1`, `SHA224`, `SHA256`, `SHA384`, `SHA512` (default), `SHA3-224`, `SHA3-256`, `SHA3-384`, `SHA3-512`, `RIPEMD160`, `RMD160`, `MD2`, `MD4`, `TIGER`, `HAVAL`, `SM3`, `MD5`.\\n\\n@param `keyring` PGP secret key ring as generated by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the key present in `keyring` to use for signing.\\n\\n@param `detached` Should the signature be a deatched one (default) or not.\\n\\n@param `date` Timestamp to include, defaults to `0` meaning *now*.\\n\\n@param `content` `STRING` or `BYTES` content to sign. `STRING` content will be encoded using `UTF-8` prior to signature.\\n\\n@param `signature` `STRING` or `BYTES` signature.\\n\\n@param `passphrase` Passphrase to use for accessing the private key.\\n\\n\",\"signature\":\"PGPSIGN( content:ANY { keyring:KEYRING keyid:ANY passphrase:STRING digest:STRING armor:BOOLEAN detached:BOOLEAN  } ): signature:ANY\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPSIGN\"},\"PGPVERIFY\":{\"description\":\"The `PGPVERIFY` function verifies a PGP signature.\\n\\n@param `key` PGP public key to use for verifying the signature.\\n\\n@param `keyring` PGP secret or public key ring as produced by [`PGPRING`](/doc/PGPRING).\\n\\n@param `keyid` Key id of the public key to use for verifying the signature. LONG or hex STRING.\\n\\n@param `detached` Flag indicating whether the signature is detached or not.\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content, when `detached` is `true`.\\n\\n@param `verified` Verification result.\\n\\n@param `signed` Extracted signed content, when `detached` is `false`.\\n\\n\",\"signature\":\"PGPVERIFY( content:ANY signature:ANY key:KEY detached:BOOLEAN ): verified:BOOLEAN\\nPGPVERIFY( signature:ANY key:KEY detached:BOOLEAN ): signed:BYTES verified:BOOLEAN\\nPGPVERIFY( content:ANY signature:ANY keyring:KEYRING keyid:ANY detached:BOOLEAN ): verified:BOOLEAN\\nPGPVERIFY( signature:ANY keyring:KEYRING keyid:ANY detached:BOOLEAN ): signed:BYTES verified:BOOLEAN\",\"tags\":[\"crypto\"],\"since\":\"3.0.0\",\"OPB64name\":\"PGPVERIFY\"},\"PGraphics\":{\"description\":\"Warp 10 includes a large subset of the [Processing](http://www.processing.org) drawing library. You can create and manipulate images, then push a base64 encoded png onto the stack.\\n\\n+ Step 1: create a processing graphic object with `PGraphics` function.\\n+ Step 2: manipulate this object with Processing functions.\\n+ Step 3: render the processing graphic with `Pencode` function.\\n\\nDocumentation of every function has a link to original Processing website. Original website includes more examples for each function.\\n\\nProcessing functions offers a lot of different signatures for colors. The most efficient is to keep the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n\\nUp to Warp 10 1.2.18, antialiasing was not available. It is now available, by appending a digit to the **imgtype** string argument. The maximum anti-aliasing level is determined by the hardware of the machine that is running the software, so 2D4 and 2D8 mode will not work with every computer.\\n\\n+ \\\"2D\\\": no antialiasing\\n+ \\\"2D2\\\": bilinear smoothing\\n+ \\\"2D3\\\": bicubic smoothing\\n+ \\\"2D4\\\": 4x antialiasing\\n+ \\\"2D8\\\": 8x antialiasing\\n\\n\\nYou can adjust the maximal number of pixel allowed in Warp 10 configuration file.\\n\\n@param `imgtype` '2D', '3D', or '2Dx', where x is the level of anti aliasing (2, 3, 4, or 8).\\n\\n@param `width` Pixel width of the image.\\n\\n@param `height` Pixel height of the image.\\n\\n@param `pg` Processing graphic object.\\n\\n\",\"signature\":\"PGraphics( width:LONG height:LONG imgtype:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PGraphics\"},\"PI\":{\"description\":\"Alias of [pi](/doc/R5Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"signature\":\"PI(): pi:DOUBLE\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"J3Z\"},\"PICK\":{\"description\":\"The `PICK` function copies on top of the stack the element at level N. Parameter N is consumed off the top of the stack when `PICK` is called.\\n\\n@param `level` Level of the stack\\n\\n@param `result` What is on stack at *level*\\n\\n\",\"signature\":\"PICK( level:NUMBER ): result:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"PICK\"},\"PICKLE->\":{\"description\":\"The `PICKLE->` function decodes some Pickle encoded content contained in a byte array.\\nThe conversion is done using [Pyrolite v4](https://github.com/irmen/pickle).\\n\\nIt can read all pickle protocol versions (0 to 4, so this includes\\nthe latest additions made in Python 3.4).\\n\\n```python\\n>>> myobject={ 'apple':3.5,'banana':18 }\\n>>> pickle.dumps(myobject).encode(\\\"hex\\\")\\n'286470300a53276170706c65270a70310a46332e350a73532762616e616e61270a70320a4931380a732e'\\n```\\n\\n@param `input` Byte array of a pickle encoded content\\n\\n@param `output` Warp 10 object\\n\\n\",\"signature\":\"PICKLE->( input:BYTES ): output:ANY\",\"tags\":[\"platform\"],\"since\":\"1.0.7\",\"OPB64name\":\"J3_2Hol4AIs\"},\"PIGSCHEMA\":{\"description\":\"The `PIGSCHEMA` function produces on top of the stack a STRING representing the [Pig](https://en.wikipedia.org/wiki/Pig_(programming_tool)) schema definition for the current stack content.\\n\\n@param `elt` Stack content.\\n\\n@param `schema` Schema for the current stack, usable when working with WarpScript in Pig.\\n\\n\",\"signature\":\"PIGSCHEMA( elt:ANY* ): elt:ANY* schema:STRING\",\"tags\":[\"pig\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"PIGSCHEMA\"},\"PIVOT\":{\"description\":\"The `PIVOT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick of GTS from the first list, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n1// C3{C1=C} 2\\n2// C4{C2=F} 30\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n4// C3{} 5\\n4// C4{} 50\\n```\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"signature\":\"PIVOT( input:LIST<GTS> pivot:LIST<GTS> ): result:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOT\"},\"PIVOTSTRICT\":{\"description\":\"The `PIVOTSTRICT` function generates a set of Geo Time Series™ from two lists of input Geo Time Series™ in a way similar to what [`PIVOT`](/doc/PIVOT) does.\\n\\nGeo Time Series™ from the first list will provide datapoints (value, location and elevation), and those from the second list will generate labels.\\n\\nFor each tick common to Geo Time Series™ of both lists, the GTS from the second list are inspected. For each value encountered, a label with the GTS class as name and the encountered value is created.\\n\\nThen for each GTS from the first list with a value at the given tick, the datapoint is copied to a GTS with the same class name and a set of labels equal to those of that GTS merged with the labels created above.\\n\\nAs an example, consider the following input:\\n\\n\\n| Tick   |  C1    |   C2   |    C3  |   C4   |\\n|--------|--------|--------|--------|--------|\\n|   0    |  A     |   B    |    1   |   10   |\\n|   1    |  C     |        |    2   |        |\\n|   2    |        |   F    |        |   30   |\\n|   3    |  A     |   B    |    4   |   40   |\\n|   4    |        |        |    5   |   50    |\\n\\nWith the first list of GTS being those with classes `C3` and `C4` and the second list `C1` and `C2`, the result of the `PIVOTSTRICT` function being applied is:\\n\\n```\\n0// C3{C1=A,C2=B} 1\\n0// C4{C1=A,C2=B} 10\\n3// C3{C1=A,C2=B} 4\\n3// C4{C1=A,C2=B} 40\\n```\\n\\nOnly ticks 0 and 3 appear in the result as those are the only ticks present in both `C1` and `C2`.\\n\\n@param `pivot` List of Geo Time Series™ to use as the pivots.\\n\\n@param `input` Input list of Geo Time Series™.\\n\\n@param `result` List of pivoted Geo Time Series™.\\n\\n\",\"signature\":\"PIVOTSTRICT( input:LIST<GTS> pivot:LIST<GTS> ): result:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"PIVOTSTRICT\"},\"POLYFIT\":{\"description\":\"Creates a polynomial of the specified degree which fits the provided Geo Time Series.\\n\\nThe ticks or buckets ids can be considered.\\n\\n@param `buckets` Flag indicating whether to consider the ticks (`false`) or the bucket ids (`true`). If `buckets` is missing the ticks are considered.\\n\\n@param `degree` Degree of the polynomial to generate.\\n\\n@param `gts` Numerical Geo Time Series to fit. Must be bucketized if `buckets` is `true`.\\n\\n@param `coeffs` List of the coefficients of the generated polynomial function.\\n\\n\",\"signature\":\"POLYFIT( gts:GTS degree:LONG buckets:BOOLEAN ): coeffs:LIST<DOUBLE>\\nPOLYFIT( gts:GTS degree:LONG ): coeffs:LIST<DOUBLE>\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFIT\"},\"POLYFUNC\":{\"description\":\"Creates a WarpScript function which computes a polynomial function of the given coefficients.\\n\\nThe resulting WarpScript function can be applied to a Geo Time Series, a GTS Encoder, a numerical value or a list thereof.\\n\\nWhen applied to a Geo Time Series, the bucket id can be considered instead of the tick by adding a `BOOLEAN` parameter to the call.\\n\\n@param `coeffs` List of polynomial coefficients.\\n\\n@param `func` Generated WarpScript function.\\n\\n\",\"signature\":\"POLYFUNC( coeffs:LIST<DOUBLE> ): func:FUNC\",\"tags\":[\"gts\"],\"since\":\"2.8.2\",\"OPB64name\":\"POLYFUNC\"},\"POPR\":{\"description\":\"Pops a value from the top of the stack and stores it into the designated register.\\n\\nThe `POPR` function is really a family of functions named `POPRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value to store in the specified register.\\n\\n\",\"signature\":\"POPR( value:ANY ): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"POPR\"},\"PREDUCE\":{\"description\":\"Behaves as [`REDUCE`](/doc/REDUCE) but produces a map of results keyed by the label map of each equivalence class.\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` Map keyed by the label map of each equivalence class and whose values are the Geo Time Series™ produced for each class.\\n\\n\",\"signature\":\"PREDUCE( [ gts:LIST<GTS>+ labels:LIST<STRING> reducer:AGGREGATOR ] ): result:MAP\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.5\",\"OPB64name\":\"PREDUCE\"},\"PRNG\":{\"description\":\"The `PRNG` function initializes the stack's seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator). This PRNG can later be used by the [`SRAND`](/doc/SRAND) function to produce random numbers in a deterministic way (!).\\n\\n@param `seed` The seed to use for initializing the PRNG.\\n\\n\",\"signature\":\"PRNG( seed:LONG ): \",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"PRNG\"},\"PROB\":{\"description\":\"Computes probability for each value of the input Geo Time Series™.\\n\\nThe function `PROB` consumes a GTS or a list of the GTS from the top of the stack. It pushes back the probability for each value.\\n\\nThe probabilities are computed using the value histogram.\\n\\n@param `gts` The input Geo Time Series™\\n\\n@param `gtslist` The input list of Geo Time Series™\\n\\n@param `result` The Geo Time Series™ wit probability for each value\\n\\n@param `resultList` The List of Geo Time Series™ with probability for each value\\n\\n\",\"signature\":\"PROB( gts:GTS ): result:GTS\\nPROB( gtslist:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.6\",\"OPB64name\":\"PROB\"},\"PROBABILITY\":{\"description\":\"Pushes on the stack a function which computes probabilities according to a provided value histogram.\\n\\nTo use the function pushed by `PROBABILITY` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function expects a value on top of the stack and will output the probability of occurrence of this value.\\n\\n\",\"signature\":\"PROBABILITY( valueHistogram:MAP ): result:STRING\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"PROBABILITY\"},\"PSTACK\":{\"description\":\"When in interactive (REPL) mode, prints the content of the stack.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PSTACK\"},\"PUSHR\":{\"description\":\"Pushes onto the stack the value currently contained in the designated register.\\n\\nThe `PUSHR` function is really a family of functions named `PUSHRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n@param `value` Value from the designated register.\\n\\n\",\"signature\":\"PUSHR(): value:ANY\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"PUSHR\"},\"PUT\":{\"description\":\"The `PUT` function inserts a new key-value pair in a map.\\nIf the key already exists in the input MAP, the value is replaced by the new one.\\n\\n`PUT` function puts the reference of the MAP on top of the stack.\\n\\n@param `newkey` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `newvalue` Depending on list construction, could be a number, a string, a list, a map, a GTS, a boolean.\\n\\n@param `inputmap` reference to the map to be modified\\n\\n@param `outputmap` copy of input map reference. Useful to chain other instructions on the same map.\\n\\n\",\"signature\":\"PUT( inputmap:MAP newvalue:ANY newkey:ANY ): outputmap:MAP\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"PUT\"},\"Palpha\":{\"description\":\"Extracts the alpha value from a color.\\n\\nThe `Palpha` function is easy to use and understand, but it is slower than bit shifting... \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/alpha_.html)\\n\\n@param `color` Any value of the color datatype\\n\\n@param `alpha` Alpha component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Palpha( pg:PGRAPHICS color:NUMBER ): pg:PGRAPHICS alpha:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Palpha\"},\"Parc\":{\"description\":\"Draws an arc to the screen. Arcs are drawn along the outer edge of an ellipse defined by the **a**, **b**, **c**, and **d** parameters. The origin of the arc's ellipse may be changed with the [`PellipseMode`](/doc/PellipseMode) function. Use the **start** and **stop** parameters to specify the angles (in radians) at which to draw the arc.\\n\\n\\n\\nThere are three ways to draw an arc; the rendering technique used is defined by the optional seventh parameter. The three options, depicted in the examples, are PIE, OPEN, and CHORD. The default mode is the OPEN stroke with a PIE fill.\\n\\n\\n\\nIn some cases, the `Parc` function isn't accurate enough for smooth drawing. For example, the shape may jitter on screen when rotating slowly. If you're having an issue with how arcs are rendered, you'll need to draw the arc yourself with [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) or a **PShape**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/arc_.html)\\n\\n@param `b` y-coordinate of the arc's ellipse\\n\\n@param `a` x-coordinate of the arc's ellipse\\n\\n@param `c` width of the arc's ellipse by default\\n\\n@param `d` height of the arc's ellipse by default\\n\\n@param `start` angle to start the arc, specified in radians\\n\\n@param `stop` angle to stop the arc, specified in radians\\n\\n@param `mode` closing mode. either PIE, OPEN, or CHORD\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Parc( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE start:DOUBLE stop:DOUBLE ): pg:PGRAPHICS\\nParc( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE start:DOUBLE stop:DOUBLE mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Parc\"},\"Pbackground\":{\"description\":\"The `Pbackground` function sets the color used for the background of the processing graphics object. \\n\\nAn image object can also be used as the background for a sketch, although the image's width and height must match that of the processing object. Images used with `Pbackground` will ignore the current [`Ptint`](/doc/Ptint) setting. \\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pbackground` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/background_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `rgb` any rgb color value.\\n\\n@param `alpha` opacity of the background. 0 = transparent, 255 = opaque.\\n\\n@param `gray` a value between white (255) and black (0)\\n\\n@param `image` PImage to set as background (must be same size as pg)\\n\\n@param `v1` red or hue value (depending on the current color mode)\\n\\n@param `v2` green or saturation value (depending on the current color mode)\\n\\n@param `v3` blue or brightness value (depending on the current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pbackground( pg:PGRAPHICS argb:LONG ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS gray:DOUBLE ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS image:PIMAGE ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS rgb:LONG alpha:NUMBER ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS gray:DOUBLE alpha:NUMBER ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS\\nPbackground( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbackground\"},\"PbeginContour\":{\"description\":\"Use the `PbeginContour` and [`PendContour`](/doc/PendContour) function to create negative shapes within shapes such as the center of the letter 'O'. `PbeginContour` begins recording vertices for the shape and [`PendContour`](/doc/PendContour) stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\n\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a `PbeginContour`/[`PendContour`](/doc/PendContour) pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PbeginContour( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginContour\"},\"PbeginShape\":{\"description\":\"Using the `PbeginShape` and [`PendShape`](/doc/PendShape) functions allow creating more complex forms. `PbeginShape` begins recording vertices for a shape and [`PendShape`](/doc/PendShape) stops recording. \\n\\nThe value of the **kind** parameter tells it which types of shapes to create from the provided vertices. The parameters available for beginShape() are POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, and QUAD_STRIP. After calling the `PbeginShape` function, a series of [`Pvertex`](/doc/Pvertex) commands must follow. To stop drawing the shape, call [`PendShape`](/doc/PendShape). The [`Pvertex`](/doc/Pvertex) function with two parameters specifies a position in 2D. Each shape will be outlined with the current stroke color and filled with the fill color. \\n\\n\\nTransformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within `PbeginShape`. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within `PbeginShape`. \\n\\n\\nThe P2D and P3D renderers allow [`Pstroke`](/doc/Pstroke) and [`Pfill`](/doc/Pfill) to be altered on a per-vertex group basis. Settings such as [`PstrokeWeight`](/doc/PstrokeWeight), [`PstrokeCap`](/doc/PstrokeCap), and [`PstrokeJoin`](/doc/PstrokeJoin) cannot be changed while inside a `PbeginShape`/[`PendShape`](/doc/PendShape) block with any renderer.\\n\\nUp to Warp 10 1.2.18, `PbeginShape` could be called without the **kind** parameter. It defaults to POLYGON.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/beginShape_.html)\\n\\n@param `kind` Either POLYGON, POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PbeginShape( pg:PGRAPHICS kind:STRING ): pg:PGRAPHICS\\nPbeginShape( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbeginShape\"},\"Pbezier\":{\"description\":\"Draws a Bezier curve on the screen. These curves are defined by a series of anchor and control points. The first two parameters specify the first anchor point and the last two parameters specify the other anchor point. The middle parameters specify the control points which define the shape of the curve. Bezier curves were developed by French engineer Pierre Bezier. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezier_.html)\\n\\n@param `x1` coordinates for the first anchor point\\n\\n@param `y1` coordinates for the first anchor point\\n\\n@param `z1` coordinates for the first anchor point\\n\\n@param `x2` coordinates for the first control point\\n\\n@param `y2` coordinates for the first control point\\n\\n@param `z2` coordinates for the first control point\\n\\n@param `x3` coordinates for the second control point\\n\\n@param `y3` coordinates for the second control point\\n\\n@param `z3` coordinates for the second control point\\n\\n@param `x4` coordinates for the second anchor point\\n\\n@param `y4` coordinates for the second anchor point\\n\\n@param `z4` coordinates for the second anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pbezier( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\\nPbezier( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE z1:DOUBLE x2:DOUBLE y2:DOUBLE z2:DOUBLE x3:DOUBLE y3:DOUBLE z3:DOUBLE x4:DOUBLE y4:DOUBLE z4:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbezier\"},\"PbezierDetail\":{\"description\":\"Sets the resolution at which Beziers display. The default value is 20. This function is only useful when using the **P3D** renderer; the default **P2D** renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierDetail_.html)\\n\\n@param `detail` resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PbezierDetail( pg:PGRAPHICS detail:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierDetail\"},\"PbezierPoint\":{\"description\":\"Evaluates the Bezier at point t for points a, b, c, d. The parameter t varies between 0 and 1, a and d are points on the curve, and b and c are the control points. This can be done once with the x coordinates and a second time with the y coordinates to get the location of a bezier curve at t.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierPoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PbezierPoint( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierPoint\"},\"PbezierTangent\":{\"description\":\"Calculates the tangent of a point on a Bezier curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PbezierTangent( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierTangent\"},\"PbezierVertex\":{\"description\":\"Specifies vertex coordinates for Bezier curves. Each call to `PbezierVertex` defines the position of two control points and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PbezierVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only with POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/bezierVertex_.html)\\n\\n@param `x2` The x-coordinate of the 1st control point\\n\\n@param `y2` The y-coordinate of the 1st control point\\n\\n@param `x3` The x-coordinate of the 2nd control point\\n\\n@param `y3` The y-coordinate of the 2nd control point\\n\\n@param `x4` The x-coordinate of the anchor point\\n\\n@param `y4` The y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PbezierVertex( pg:PGRAPHICS x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PbezierVertex\"},\"Pblend\":{\"description\":\"Blends a region of pixels from one image into another (or in itself again) with full alpha channel support.\\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels in the destination image (B):\\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - Multiply the colors, result will always be darker.\\n+ SCREEN - Opposite multiply, uses inverse values of the colors.\\n+ OVERLAY - A mix of MULTIPLY and SCREEN. Multiplies dark values,and screens light values.\\n+ HARD_LIGHT - SCREEN when greater than 50% gray, MULTIPLY when lower.\\n+ SOFT_LIGHT - Mix of DARKEST and LIGHTEST. Works like OVERLAY, but not as harsh.\\n+ DODGE - Lightens light tones and increases contrast, ignores darks.Called \\\"Color Dodge\\\" in Illustrator and Photoshop.\\n+ BURN - Darker areas are applied, increasing contrast, ignores lights.Called \\\"Color Burn\\\" in Illustrator and Photoshop.\\n\\nAll modes use the alpha information (highest byte) of source image pixels as the blending factor. If the source and destination regions are different sizes, the image will be automatically resized to match the destination size. If the **src** parameter is not used, the display window is used as the source image.\\n\\n[Link to original Processing doc](https://processing.org/reference/blend_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `mode` Either BLEND, ADD, SUBTRACT, LIGHTEST, DARKEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, BURN\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pblend( pg:PGRAPHICS src:PIMAGE sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG mode:STRING ): pg:PGRAPHICS\\nPblend( pg:PGRAPHICS sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblend\"},\"PblendMode\":{\"description\":\"Blends the pixels in the display window according to a defined mode. \\n\\nHere are the available modes to blend the source pixels (A) with the ones of pixels already in the display window (B). \\n\\n+ BLEND - linear interpolation of colours: C = A*factor + B. This is the default blending mode.\\n+ ADD - additive blending with white clip: C = min(A*factor + B, 255)\\n+ SUBTRACT - subtractive blending with black clip: C = max(B - A*factor, 0)\\n+ DARKEST - only the darkest colour succeeds: C = min(A*factor, B)\\n+ LIGHTEST - only the lightest colour succeeds: C = max(A*factor, B)\\n+ DIFFERENCE - subtract colors from underlying image.\\n+ EXCLUSION - similar to DIFFERENCE, but less extreme.\\n+ MULTIPLY - multiply the colors, result will always be darker.\\n+ SCREEN - opposite multiply, uses inverse values of the colors.\\n+ REPLACE - the pixels entirely replace the others and don't utilize alpha (transparency) values\\n\\nA pixel's final color is the result of applying one of the above blend modes with each channel of (A) and (B) independently. For example, red is compared with red, green with green, and blue with blue.\\n\\nWe recommend using `PblendMode` and not the previous [`Pblend`](/doc/Pblend) function. However, unlike [`Pblend`](/doc/Pblend), the `PblendMode` function does not support the following: HARD_LIGHT, SOFT_LIGHT, OVERLAY, DODGE, BURN. On older hardware, the LIGHTEST, DARKEST, and DIFFERENCE modes might not be available as well. \\n\\n[Link to original Processing doc](https://processing.org/reference/blendMode_.html)\\n\\n@param `mode` The blending mode to use\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PblendMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PblendMode\"},\"Pblue\":{\"description\":\"Extracts the blue value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pblue` function is easy to use and understand, but it is slower than bit masking. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/blue_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `blue` Blue component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pblue( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS blue:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pblue\"},\"Pbox\":{\"description\":\"A box is an extruded rectangle. A box with equal dimensions on all sides is a cube.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/box_.html)\\n\\n@param `size` dimension of the box in all dimensions (creates a cube)\\n\\n@param `w` dimension of the box in the x-dimension\\n\\n@param `h` dimension of the box in the y-dimension\\n\\n@param `d` dimension of the box in the z-dimension\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pbox( pg:PGRAPHICS size:NUMBER ): pg:PGRAPHICS\\nPbox( pg:PGRAPHICS w:NUMBER h:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbox\"},\"Pbrightness\":{\"description\":\"Extracts the brightness value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/brightness_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `brightness` Brightness component of input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pbrightness( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS brightness:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pbrightness\"},\"Pclear\":{\"description\":\"Clears the pixels. This function clears everything in a **PGraphics** object to make all of the pixels 100% transparent.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clear_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pclear( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclear\"},\"Pclip\":{\"description\":\"Limits the rendering to the boundaries of a rectangle defined by the parameters. The boundaries are drawn based on the state of the [`PimageMode`](/doc/PimageMode) function, either CORNER, CORNERS, or CENTER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/clip_.html)\\n\\n@param `a` x-coordinate of the rectangle, by default\\n\\n@param `b` y-coordinate of the rectangle, by default\\n\\n@param `c` width of the rectangle, by default\\n\\n@param `d` height of the rectangle, by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pclip( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pclip\"},\"Pcolor\":{\"description\":\"`Pcolor` creates colors for storing in ARGB LONG datatype.\\n\\n+ RGB: The most efficient is to skip Pcolor function, using the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque.\\n+ HSB: For Hue Saturation Brightness to RGB conversion, use [`PcolorMode`](/doc/PcolorMode) to specify HSB, then use Pcolor to convert to ARGB.\\n\\nThe parameters are interpreted as RGB or HSB values depending on the current [`PcolorMode`](/doc/PcolorMode). The default mode is RGB values from 0 to 255.\\n\\nNote that if only one value is provided to `Pcolor`, it will be interpreted as a grayscale value. Add a second value, and it will be used for alpha transparency. When three values are specified, they are interpreted as either RGB or HSB values. Adding a fourth value applies alpha transparency.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/color_.html)\\n\\n@param `gray` int: number specifying value between white and black\\n\\n@param `alpha` float, or int: relative to current color range\\n\\n@param `v1` float, or int: red or hue values relative to the current color range\\n\\n@param `v2` float, or int: green or saturation values relative to the current color range\\n\\n@param `v3` float, or int: blue or brightness values relative to the current color range\\n\\n@param `color` ARGB color.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pcolor( pg:PGRAPHICS gray:NUMBER ): pg:PGRAPHICS color:LONG\\nPcolor( pg:PGRAPHICS gray:NUMBER alpha:NUMBER ): pg:PGRAPHICS color:LONG\\nPcolor( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS color:LONG\\nPcolor( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS color:LONG\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcolor\"},\"PcolorMode\":{\"description\":\"Changes the way Processing interprets color data. By default, the parameters for [`Pfill`](/doc/Pfill), [`Pstroke`](/doc/Pstroke), [`Pbackground`](/doc/Pbackground), and [`Pcolor`](/doc/Pcolor) are defined by values between 0 and 255 using the RGB color model. The `PcolorMode` function is used to change the numerical range used for specifying colors and to switch color systems. For example, calling **colorMode(RGB, 1.0)** will specify that values are specified between 0 and 1. The limits for defining colors are altered by setting the parameters **max**, **max1**, **max2**, **max3**, and **maxA**.\\n\\nWhen using max different from default values, do not work with grayscale.\\n\\nAfter changing the range of values for colors with code like **colorMode(HSB, 360, 100, 100)**, those ranges remain in use until they are explicitly changed again. For example, after running **colorMode(HSB, 360, 100, 100)** and then changing back to **colorMode(RGB)**, the range for R will be 0 to 360 and the range for G and B will be 0 to 100. To avoid this, be explicit about the ranges when changing the color mode. For instance, instead of **colorMode(RGB)**, write **colorMode(RGB, 255, 255, 255)**. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/colorMode_.html)\\n\\n@param `mode` Either 'RGB' or 'HSB', corresponding to Red/Green/Blue and Hue/Saturation/Brightness\\n\\n@param `max` range for all color elements\\n\\n@param `max1` range for the red or hue depending on the current color mode\\n\\n@param `max2` range for the green or saturation depending on the current color mode\\n\\n@param `max3` range for the blue or brightness depending on the current color mode\\n\\n@param `maxA` range for the alpha\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcolorMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\\nPcolorMode( pg:PGRAPHICS mode:STRING max:DOUBLE ): pg:PGRAPHICS\\nPcolorMode( pg:PGRAPHICS mode:STRING max1:DOUBLE max2:DOUBLE max3:DOUBLE ): pg:PGRAPHICS\\nPcolorMode( pg:PGRAPHICS mode:STRING max1:DOUBLE max2:DOUBLE max3:DOUBLE maxA:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcolorMode\"},\"Pconstrain\":{\"description\":\"Constrains a value to not exceed a maximum and minimum value. Also known as clamping a value. \\n\\nIt could be done with warpscript MIN MAX functions, see example.\\n\\n[Link to original Processing doc](https://processing.org/reference/constrain_.html)\\n\\n@param `x` The value to clamp.\\n\\n@param `low` Minimum limit.\\n\\n@param `high` Maximum limit.\\n\\n@param `clamped` Clamped value of x in [low high] range.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pconstrain( pg:PGRAPHICS x:DOUBLE low:DOUBLE high:DOUBLE ): pg:PGRAPHICS clamped:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pconstrain\"},\"Pcopy\":{\"description\":\"Copies a region of pixels from the display window to another area of the display window and copies a region of pixels from an image used as the **src** parameter into the display window. If the source and destination regions are not the same size, it will automatically resize the source pixels to fit the specified target region. No alpha information is used in the process, however if the source image has an alpha channel set, it will be copied as well.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/copy_.html)\\n\\n@param `src` A PIMAGE object referring to the source image. If none, blend the existing image on itself.\\n\\n@param `sx` X coordinate of the source's upper left corner\\n\\n@param `sy` Y coordinate of the source's upper left corner\\n\\n@param `sw` source image width\\n\\n@param `sh` source image height\\n\\n@param `dx` X coordinate of the destinations's upper left corner\\n\\n@param `dy` Y coordinate of the destinations's upper left corner\\n\\n@param `dw` destination image width\\n\\n@param `dh` destination image height\\n\\n@param `img` PIMAGE object, copy of pg\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pcopy( pg:PGRAPHICS src:PIMAGE sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG ): pg:PGRAPHICS\\nPcopy( pg:PGRAPHICS sx:LONG sy:LONG sw:LONG sh:LONG dx:LONG dy:LONG dw:LONG dh:LONG ): pg:PGRAPHICS\\nPcopy( pg:PGRAPHICS ): pg:PGRAPHICS img:PIMAGE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcopy\"},\"PcreateFont\":{\"description\":\"Dynamically converts a font to the format used by Processing from a font that is installed on the computer.  Not all fonts can be used and some might work with one operating system and not others.\\n\\nThe **size** parameter states the font size you want to generate. The **smooth** parameter specifies if the font should be antialiased or not.\\n\\nSince the 2.5.0 version, the name of the font can be a URI to a OpenType or Type1 font which will be resolved by a macro defined by the `processing.font.resolver` configuration.\\n\\n[Link to original Processing doc](https://processing.org/reference/createFont_.html)\\n\\n@param `name` Name of the font to load or URI from where to load the font.\\n\\n@param `size` Point size of the font\\n\\n@param `smooth` True for an antialiased font, false for aliased\\n\\n@param `charset` subset of ascii characters to be generated.\\n\\n@param `font` Processing font object compatible with PtextFont.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcreateFont( pg:PGRAPHICS name:STRING ): pg:PGRAPHICS font:PFONT\\nPcreateFont( pg:PGRAPHICS name:STRING size:NUMBER ): pg:PGRAPHICS font:PFONT\\nPcreateFont( pg:PGRAPHICS name:STRING size:NUMBER smooth:BOOLEAN ): pg:PGRAPHICS font:PFONT\\nPcreateFont( pg:PGRAPHICS name:STRING size:NUMBER smooth:BOOLEAN charset:STRING ): pg:PGRAPHICS font:PFONT\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcreateFont\"},\"Pcurve\":{\"description\":\"Draws a curved line on the screen. The first and second parameters specify the beginning control point and the last two parameters specify the ending control point. The middle parameters specify the start and stop of the curve. Longer curves can be created by putting a series of `Pcurve` functions together or using [`PcurveVertex`](/doc/PcurveVertex). An additional function called [`PcurveTightness`](/doc/PcurveTightness) provides control for the visual quality of the curve. The `Pcurve` function is an implementation of Catmull-Rom splines. Using the 3D version requires rendering with P3D (see the Environment reference for more information).\\n\\n[Link to original Processing doc](https://processing.org/reference/curve_.html)\\n\\n@param `x1` float: coordinates for the beginning control point\\n\\n@param `y1` float: coordinates for the beginning control point\\n\\n@param `x2` float: coordinates for the first point\\n\\n@param `y2` float: coordinates for the first point\\n\\n@param `x3` float: coordinates for the second point\\n\\n@param `y3` float: coordinates for the second point\\n\\n@param `x4` float: coordinates for the ending control point\\n\\n@param `y4` float: coordinates for the ending control point\\n\\n@param `z1` float: coordinates for the beginning control point\\n\\n@param `z2` float: coordinates for the first point\\n\\n@param `z3` float: coordinates for the second point\\n\\n@param `z4` float: coordinates for the ending control point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pcurve( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\\nPcurve( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE z1:DOUBLE x2:DOUBLE y2:DOUBLE z2:DOUBLE x3:DOUBLE y3:DOUBLE z3:DOUBLE x4:DOUBLE y4:DOUBLE z4:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pcurve\"},\"PcurveDetail\":{\"description\":\"Sets the resolution at which curves display. The default value is 20. This function is only useful when using the P3D renderer as the default P2D renderer does not use this information.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveDetail_.html)\\n\\n@param `detail` Resolution of the curves\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcurveDetail( pg:PGRAPHICS detail:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveDetail\"},\"PcurvePoint\":{\"description\":\"Evaluates the curve at point **t** for points **a**, **b**, **c**, **d**. The parameter **t** may range from 0 (the start of the curve) and 1 (the end of the curve). **a** and **d** are points on the curve, and **b** and **c** are the control points. This can be used once with the **x** coordinates and a second time with the **y** coordinates to get the location of a curve at **t**.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curvePoint_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of second point on the curve\\n\\n@param `c` coordinate of third point on the curve\\n\\n@param `d` coordinate of fourth point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcurvePoint( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurvePoint\"},\"PcurveTangent\":{\"description\":\"Calculates the tangent of a point on a curve. There's a good definition of [**tangent** on Wikipedia](http://en.wikipedia.org/wiki/Tangent).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTangent_.html)\\n\\n@param `a` coordinate of first point on the curve\\n\\n@param `b` coordinate of first control point\\n\\n@param `c` coordinate of second control point\\n\\n@param `d` coordinate of second point on the curve\\n\\n@param `t` value between 0 and 1\\n\\n@param `out` interpolation result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcurveTangent( pg:PGRAPHICS a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE t:DOUBLE ): pg:PGRAPHICS out:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTangent\"},\"PcurveTightness\":{\"description\":\"Modifies the quality of forms created with [`Pcurve`](/doc/Pcurve) and [`PcurveVertex`](/doc/PcurveVertex). The parameter **tightness** determines how the curve fits to the vertex points. The value 0.0 is the default value for **tightness** (this value defines the curves to be Catmull-Rom splines) and the value 1.0 connects all the points with straight lines. Values within the range -5.0 and 5.0 will deform the curves but will leave them recognizable and as values increase in magnitude, they will continue to deform.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/curveTightness_.html)\\n\\n@param `tightness` Amount of deformation from the original vertices\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcurveTightness( pg:PGRAPHICS tightness:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveTightness\"},\"PcurveVertex\":{\"description\":\"Specifies vertex coordinates for curves. This function may only be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when POLYGON parameter specified to [`PbeginShape`](/doc/PbeginShape). The first and last points in a series of `PcurveVertex` lines will be used to guide the beginning and end of a the curve. A minimum of four points is required to draw a tiny curve between the second and third points. Adding a fifth point with `PcurveVertex` will draw the curve between the second, third, and fourth points. The `PcurveVertex` function is an implementation of Catmull-Rom splines. \\n\\n[Link to original Processing doc](https://processing.org/reference/curveVertex_.html)\\n\\n@param `x` The x-coordinate of the vertex\\n\\n@param `y` The y-coordinate of the vertex\\n\\n@param `z` The z-coordinate of the vertex\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PcurveVertex( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPcurveVertex( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PcurveVertex\"},\"Pdecode\":{\"description\":\"`Pdecode` takes the image representation on the stack and pushes a Pimage object on the stack. This object can only be used as an input for [`Pset`](/doc/Pset), [`Pimage`](/doc/Pimage), [`Pbackground`](/doc/Pbackground).\\n\\nInput string must start with the header `data:image/png;base64,`.\\n\\nSupported input types: PNG, GIF, JPG.\\n\\n@param `img` Processing Pimage object.\\n\\n@param `rawimg` Image bytes.\\n\\n@param `b64img` Base64 encoded image string\\n\\n\",\"signature\":\"Pdecode( b64img:STRING ): img:PIMAGE\\nPdecode( rawimg:BYTES ): img:PIMAGE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdecode\"},\"Pdist\":{\"description\":\"Calculates the distance between two points, in 2D or 3D space.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/dist_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pdist( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE z1:DOUBLE x2:DOUBLE y2:DOUBLE z2:DOUBLE ): pg:PGRAPHICS\\nPdist( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pdist\"},\"Pellipse\":{\"description\":\"Draws an ellipse (oval) to the screen. An ellipse with equal width and height is a circle. By default, the first two parameters set the location, and the third and fourth parameters set the shape's width and height. The origin may be changed with the [`PellipseMode`](/doc/PellipseMode) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipse_.html)\\n\\n@param `a` float: x-coordinate of the ellipse\\n\\n@param `b` float: y-coordinate of the ellipse\\n\\n@param `c` float: width of the ellipse by default\\n\\n@param `d` float: height of the ellipse by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pellipse( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pellipse\"},\"PellipseMode\":{\"description\":\"Modifies the location from which ellipses are drawn by changing the way in which parameters given to [`Pellipse`](/doc/Pellipse) are intepreted.\\n\\nThe default mode is **ellipseMode(CENTER)**, which interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(RADIUS)** also uses the first two parameters of [`Pellipse`](/doc/Pellipse) as the shape's center point, but uses the third and fourth parameters to specify half of the shapes's width and height.\\n\\n**ellipseMode(CORNER)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**ellipseMode(CORNERS)** interprets the first two parameters of [`Pellipse`](/doc/Pellipse) as the location of one corner of the ellipse's bounding box, and the third and fourth parameters as the location of the opposite corner.\\n\\n[Link to original Processing doc](https://processing.org/reference/ellipseMode_.html)\\n\\n@param `mode` Either CENTER, RADIUS, CORNER, or CORNERS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PellipseMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PellipseMode\"},\"Pencode\":{\"description\":\"`Pencode` function takes a processing graphic object on the top of the stack, render it to a png file, encode it in base64, prefix the result with the standard png header \\\"data:image/png;base64,\\\".\\n\\nSince the 2.7.3 version, this function can be called on a **PIMAGE** instance.\\n\\nThe resulting string is ready to use in an html document.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing image object.\\n\\n@param `b64img` Base64 encoded image string, ready to use in an html page.\\n\\n@param `metadata` Map of metadata to add to the PNG. Accepted keys are 'tEXt', 'zTXt' and 'iTXt', while values are lists of maps with 'keyword' and 'text' keys.\\n\\n\",\"signature\":\"Pencode( pg:PGRAPHICS ): b64img:STRING\\nPencode( pg:PGRAPHICS metadata:MAP ): b64img:STRING\\nPencode( img:PIMAGE ): b64img:STRING\\nPencode( img:PIMAGE metadata:MAP ): b64img:STRING\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pencode\"},\"PendContour\":{\"description\":\"Use the [`PbeginContour`](/doc/PbeginContour) and `PendContour` function to create negative shapes within shapes such as the center of the letter 'O'. [`PbeginContour`](/doc/PbeginContour) begins recording vertices for the shape and `PendContour` stops recording. The vertices that define a negative shape must \\\"wind\\\" in the opposite direction from the exterior shape. First draw vertices for the exterior shape in clockwise order, then for internal shapes, draw vertices counterclockwise.\\n\\nThese functions can only be used within a [`PbeginShape`](/doc/PbeginShape)/[`PendShape`](/doc/PendShape) pair and transformations such as [`Ptranslate`](/doc/Ptranslate), [`Protate`](/doc/Protate), and [`Pscale`](/doc/Pscale) do not work within a [`PbeginContour`](/doc/PbeginContour)/`PendContour` pair. It is also not possible to use other shapes, such as [`Pellipse`](/doc/Pellipse) or [`Prect`](/doc/Prect) within.\\n\\n[Link to original Processing doc](https://processing.org/reference/endContour_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PendContour( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendContour\"},\"PendShape\":{\"description\":\"The `PendShape` function is the companion to [`PbeginShape`](/doc/PbeginShape) and may only be called after [`PbeginShape`](/doc/PbeginShape). When `Pendshape` is called, all of image data defined since the previous call to [`PbeginShape`](/doc/PbeginShape) is written into the image buffer. The constant CLOSE as the value for the MODE parameter to close the shape (to connect the beginning and the end). \\n\\nUp to Warp 10 1.2.18, `PendShape` could be called without the **mode** parameter. It defaults to OPEN.\\n\\n[Link to original Processing doc](https://processing.org/reference/endShape_.html)\\n\\n@param `mode` Use CLOSE to close the shape, OPEN otherwise.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PendShape( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\\nPendShape( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PendShape\"},\"Pfill\":{\"description\":\"Sets the color used to fill shapes. For example, if you run **fill(204, 102, 0)**, all subsequent shapes will be filled with orange. This color is either specified in terms of the RGB or HSB color depending on the current [`PcolorMode`](/doc/PcolorMode). The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\nThe value for the \\\"gray\\\" parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\nTo change the color of an image or a texture, use [`Ptint`](/doc/Ptint).\\n\\n[Link to original Processing doc](https://processing.org/reference/fill_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pfill( pg:PGRAPHICS argb:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS gray:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS argb:LONG alpha:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS v1:LONG v2:LONG v3:LONG ): pg:PGRAPHICS\\nPfill( pg:PGRAPHICS v1:LONG v2:LONG v3:LONG alpha:LONG ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pfill\"},\"Pfilter\":{\"description\":\"Filters the display window using a preset filter or with a custom shader. Using a shader with `Pfilter` is much faster than without. Shaders require the P2D or P3D renderer in size().\\n\\n\\nThe presets options are:\\n\\n+ **THRESHOLD** Converts the image to black and white pixels depending if they are above or below the threshold defined by the level parameter. The parameter must be between 0.0 (black) and 1.0 (white). If no level is specified, 0.5 is used.\\n+ **GRAY** Converts any colors in the image to grayscale equivalents. No parameter is used.\\n+ **OPAQUE** Sets the alpha channel to entirely opaque. No parameter is used.\\n+ **INVERT** Sets each pixel to its inverse value. No parameter is used.\\n+ **POSTERIZE** Limits each channel of the image to the number of colors specified as the parameter. The parameter can be set to values between 2 and 255, but results are most noticeable in the lower ranges.\\n+ **BLUR** Executes a Guassian blur with the level parameter specifying the extent of the blurring. If no parameter is used, the blur is equivalent to Guassian blur of radius 1. Larger values increase the blur.\\n+ **ERODE** Reduces the light areas. No parameter is used.\\n+ **DILATE** Increases the light areas. No parameter is used.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/filter_.html)\\n\\n@param `kind` Either THRESHOLD, GRAY, OPAQUE, INVERT, POSTERIZE, BLUR, ERODE, or DILATE\\n\\n@param `param` unique for each, see above\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pfilter( pg:PGRAPHICS kind:STRING ): pg:PGRAPHICS\\nPfilter( pg:PGRAPHICS kind:STRING param:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.2.17\",\"OPB64name\":\"J5OdQ6G_RV\"},\"Pget\":{\"description\":\"Reads the color of any pixel or grabs a section of an image. If no parameters are specified, the entire image is returned (same as `Pcopy`). Use the **x** and **y** parameters to get the value of one pixel. Get a section of the display window by specifying additional **w** and **h** parameters. When getting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\nIf the pixel requested is outside of the image window, black is returned. The numbers returned are scaled according to the current color ranges, but only RGB values are returned by this function. For example, even though you may have drawn a shape with **colorMode(HSB)**, the numbers returned will be in RGB format.\\n\\nGetting the color of a single pixel with **get(x, y)** is easy, but not as fast as grabbing the data directly from [`Ppixels`](/doc/Ppixels).\\n\\n[Link to original Processing doc](https://processing.org/reference/get_.html)\\n\\n@param `x` int: x-coordinate of the pixel\\n\\n@param `y` int: y-coordinate of the pixel\\n\\n@param `w` int: width of pixel rectangle to get\\n\\n@param `h` int: height of pixel rectangle to get\\n\\n@param `img` PIMAGE object\\n\\n@param `color` Color of the pixel, 32bits ARGB format.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pget( pg:PGRAPHICS ): pg:PGRAPHICS img:PIMAGE\\nPget( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS color:LONG\\nPget( pg:PGRAPHICS x:NUMBER y:NUMBER w:NUMBER h:NUMBER ): pg:PGRAPHICS img:PIMAGE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pget\"},\"Pgreen\":{\"description\":\"Extracts the green value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pgreen` function is easy to use and understand, but it is slower than bit shifting. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/green_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `green` Green component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pgreen( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS green:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pgreen\"},\"Phue\":{\"description\":\"Extracts the hue value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/hue_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `hue` Hue component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Phue( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS hue:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Phue\"},\"Pimage\":{\"description\":\"The `Pimage` function draws a Pimage (see [`Pdecode`](/doc/Pdecode)) on a PGraphic object.\\n\\nThe **img** parameter specifies the image to display and by default the **a** and **b** parameters define the location of its upper-left corner. The image is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PimageMode`](/doc/PimageMode) function can be used to change the way these parameters draw the image.\\n\\nThe color of an image may be modified with the [`Ptint`](/doc/Ptint) function. This function will maintain transparency for GIF and PNG images.\\n\\n[Link to original Processing doc](https://processing.org/reference/image_.html)\\n\\n@param `img` PImage: the image to display\\n\\n@param `a` float: x-coordinate of the image by default\\n\\n@param `b` float: y-coordinate of the image by default\\n\\n@param `c` float: width to display the image by default\\n\\n@param `d` float: height to display the image by default\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pimage( pg:PGRAPHICS img:PIMAGE a:NUMBER b:NUMBER ): pg:PGRAPHICS\\nPimage( pg:PGRAPHICS img:PIMAGE a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pimage\"},\"PimageMode\":{\"description\":\"Modifies the location from which images are drawn by changing the way in which parameters given to [`Pimage`](/doc/Pimage) are intepreted.\\n\\nThe default mode is **imageMode(CORNER)**, which interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the upper-left corner of the image. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n**imageMode(CENTER)** interprets the second and third parameters of [`Pimage`](/doc/Pimage) as the image's center point. If two additional parameters are specified, they are used to set the image's width and height.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/imageMode_.html)\\n\\n@param `mode` could be CORNER or CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PimageMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PimageMode\"},\"Plerp\":{\"description\":\"Calculates a number between two numbers at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 equal to the first point, 0.1 is very near the first point, 0.5 is half-way in between, etc. The lerp function is convenient for creating motion along a straight path and for drawing dotted lines, or any linear interpolation.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerp_.html)\\n\\n@param `start` first value\\n\\n@param `stop` second value\\n\\n@param `amt` float between 0.0 and 1.0\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Plerp( pg:PGRAPHICS start:NUMBER stop:NUMBER amt:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Plerp\"},\"PlerpColor\":{\"description\":\"Calculates a color between two colors at a specific increment. The **amt** parameter is the amount to interpolate between the two values where 0.0 is equal to the first point, 0.1 is very near the first point, 0.5 is halfway in between, etc. \\n\\nAn amount below 0 will be treated as 0. Likewise, amounts above 1 will be capped at 1. This is different from the behavior of `Plerp`, but necessary because otherwise numbers outside the range will produce strange and unexpected colors.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/lerpColor_.html)\\n\\n@param `c1` interpolate from this color\\n\\n@param `c2` interpolate to this color\\n\\n@param `amt` between 0.0 and 1.0\\n\\n@param `outcolor` the interpolated result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PlerpColor( pg:PGRAPHICS c1:NUMBER c2:NUMBER amt:NUMBER ): pg:PGRAPHICS outcolor:LONG\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PlerpColor\"},\"Pline\":{\"description\":\"Draws a line (a direct path between two points) to the screen. The version of `Pline` with four parameters draws the line in 2D.  To color a line, use the [`Pstroke`](/doc/Pstroke) function. A line cannot be filled, therefore the [`Pfill`](/doc/Pfill) function will not affect the color of a line. 2D lines are drawn with a width of one pixel by default, but this can be changed with the [`PstrokeWeight`](/doc/PstrokeWeight) function. The version with six parameters allows the line to be placed anywhere within XYZ space. Drawing this shape in 3D with the **z** parameter requires the P3D parameter.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/line_.html)\\n\\n@param `x1` x-coordinate of the first point\\n\\n@param `y1` y-coordinate of the first point\\n\\n@param `x2` x-coordinate of the second point\\n\\n@param `y2` y-coordinate of the second point\\n\\n@param `z1` z-coordinate of the first point\\n\\n@param `z2` z-coordinate of the second point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pline( pg:PGRAPHICS x1:NUMBER y1:NUMBER x2:NUMBER y2:NUMBER ): pg:PGRAPHICS\\nPline( pg:PGRAPHICS x1:NUMBER y1:NUMBER z1:NUMBER x2:NUMBER y2:NUMBER z2:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pline\"},\"PloadShape\":{\"description\":\"`PloadShape` can load a [SVG image](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) and return a PSHAPE object. WarpScript does not support [OBJ files](https://en.wikipedia.org/wiki/Wavefront_.obj_file) yet. \\n\\nThis feature is experimental, some files may render empty. \\n\\n@param `svg` A one line or a multiline SVG string.\\n\\n@param `Pshape` A PSHAPE object which can be used with Pshape.\\n\\n\",\"signature\":\"PloadShape( svg:STRING ): Pshape:PSHAPE\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"PloadShape\"},\"Pmag\":{\"description\":\"Calculates the magnitude (or length) of a vector. A vector is a direction in space commonly used in computer graphics and linear algebra. Because it has no \\\"start\\\" position, the magnitude of a vector can be thought of as the distance from the coordinate 0,0 to its x,y value. Therefore, `Pmag` is a shortcut for writing **0 0 x y Pdist**. It is exactly the same as warpscript function [`HYPOT`](/doc/HYPOT).\\n\\n3D is not yet supported.\\n\\n[Link to original Processing doc](https://processing.org/reference/mag_.html)\\n\\n@param `a` first value\\n\\n@param `b` second value\\n\\n@param `mag` result\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pmag( pg:PGRAPHICS a:NUMBER b:NUMBER ): pg:PGRAPHICS mag:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmag\"},\"Pmap\":{\"description\":\"Re-maps a number from one range to another.\\n\\nIn the first example, the number 25 is converted from a value in the range of 0 to 100 into a value that ranges from the left edge of the window (0) to the right edge (width).\\n\\n\\nAs shown in the second example, numbers outside of the range are not clamped to the minimum and maximum parameters values, because out-of-range values are often intentional and useful.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/map_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start1` lower bound of the value's current range\\n\\n@param `stop1` upper bound of the value's current range\\n\\n@param `start2` lower bound of the value's target range\\n\\n@param `stop2` upper bound of the value's target range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pmap( pg:PGRAPHICS value:DOUBLE start1:DOUBLE stop1:DOUBLE start2:DOUBLE stop2:DOUBLE ): pg:PGRAPHICS output:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pmap\"},\"Pmask\":{\"description\":\"The `Pmask` function copies the blue channel of an image to the alpha channel of an other.\\n\\nAs **PGRAPHICS** intances are alse **PIMAGE** instances, you can use this function with **PGRAPHICS**.\\n\\n@param `orginal_img` PImage to be masked\\n\\n@param `mask_image` Pimage to serve as mask\\n\\n@param `masked_image` Masked Pimage\\n\\n@param `orginal_grp` PGraphics to be masked\\n\\n@param `mask_grp` PGraphics to serve as mask\\n\\n@param `masked_grp` Masked PGraphics\\n\\n\",\"signature\":\"Pmask( orginal_img:PIMAGE mask_image:PIMAGE ): masked_image:PIMAGE\\nPmask( orginal_grp:PGRAPHICS mask_image:PIMAGE ): masked_grp:PGRAPHICS\\nPmask( orginal_img:PIMAGE mask_grp:PGRAPHICS ): masked_image:PIMAGE\\nPmask( orginal_grp:PGRAPHICS mask_grp:PGRAPHICS ): masked_grp:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"2.7.0\",\"OPB64name\":\"Pmask\"},\"PnoClip\":{\"description\":\"Disables the clipping previously started by the [`Pclip`](/doc/Pclip) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noClip_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PnoClip( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoClip\"},\"PnoFill\":{\"description\":\"Disables filling geometry. If both [`PnoStroke`](/doc/PnoStroke) and `PnoFill` are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noFill_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PnoFill( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoFill\"},\"PnoStroke\":{\"description\":\"Disables drawing the stroke (outline). If both `PnoStroke` and [`PnoFill`](/doc/PnoFill) are called, nothing will be drawn to the screen.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noStroke_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PnoStroke( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoStroke\"},\"PnoTint\":{\"description\":\"Removes the current fill value for displaying images and reverts to displaying images with their original hues.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/noTint_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PnoTint( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PnoTint\"},\"Pnorm\":{\"description\":\"Normalizes a number from another range into a value between 0 and 1. Identical to `value low high 0 1 Pmap`.\\n\\nNumbers outside of the range are not clamped to 0 and 1, because out-of-range values are often intentional and useful. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/norm_.html)\\n\\n@param `value` the incoming value to be converted\\n\\n@param `start` lower bound of the value's current range\\n\\n@param `stop` upper bound of the value's current range\\n\\n@param `output` linear interpolation of value between specified ranges\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pnorm( pg:PGRAPHICS value:NUMBER start:NUMBER stop:NUMBER ): pg:PGRAPHICS output:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pnorm\"},\"Ppixels\":{\"description\":\"Returns an array containing the values for all the pixels in the display window. These values are of the color datatype. This array is the size of the display window. For example, if the image is 100x100 pixels, there will be 10000 values and if the window is 200x300 pixels, there will be 60000 values. After **pixels** has been modified, the [`PupdatePixels`](/doc/PupdatePixels) function must be run to update the content of the display window.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pixels.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"signature\":\"Ppixels( pg:PGRAPHICS ): pg:PGRAPHICS pixels:LIST<LONG>\\nPpixels( img:PIMAGE ): pixels:LIST<LONG>\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppixels\"},\"Ppoint\":{\"description\":\"Draws a point, a coordinate in space at the dimension of one pixel. The first parameter is the horizontal value for the point, the second value is the vertical value for the point.\\n\\nUse [`Pstroke`](/doc/Pstroke) to set the color of a `Ppoint`.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/point_.html)\\n\\n@param `x` x-coordinate of the point\\n\\n@param `y` y-coordinate of the point\\n\\n@param `z` z-coordinate of the point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Ppoint( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPpoint( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ppoint\"},\"PpopMatrix\":{\"description\":\"Pops the current transformation matrix off the matrix stack. Understanding pushing and popping requires understanding the concept of a matrix stack. The [`PpushMatrix`](/doc/PpushMatrix) function saves the current coordinate system to the stack and `PpopMatrix` restores the prior coordinate system. [`PpushMatrix`](/doc/PpushMatrix) and `PpopMatrix` are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PpopMatrix( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopMatrix\"},\"PpopStyle\":{\"description\":\"The [`PpushStyle`](/doc/PpushStyle) function saves the current style settings and `PpopStyle` restores the prior settings; these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with [`PpushStyle`](/doc/PpushStyle), it builds on the current style information. The [`PpushStyle`](/doc/PpushStyle) and `PpopStyle` functions can be nested to provide more control (see example for a demonstration.)\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/popStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PpopStyle( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpopStyle\"},\"PpushMatrix\":{\"description\":\"Pushes the current transformation matrix onto the matrix stack. Understanding `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) requires understanding the concept of a matrix stack. The `PpushMatrix` function saves the current coordinate system to the stack and [`PpopMatrix`](/doc/PpopMatrix) restores the prior coordinate system. `PpushMatrix` and [`PpopMatrix`](/doc/PpopMatrix) are used in conjuction with the other transformation functions and may be nested to control the scope of the transformations.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PpushMatrix( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushMatrix\"},\"PpushStyle\":{\"description\":\"The `PpushStyle` function saves the current style settings and [`PpopStyle`](/doc/PpopStyle) restores the prior settings. Note that these functions are always used together. They allow you to change the style settings and later return to what you had. When a new style is started with `PpushStyle`, it builds on the current style information. The `PpushStyle` and [`PpopStyle`](/doc/PpopStyle) functions can be nested to provide more control. (See example for a demonstration.)\\n\\n\\nThe style information controlled by the following functions are included in the style:fill, stroke, tint, strokeWeight, strokeCap, strokeJoin, imageMode, rectMode, ellipseMode, shapeMode, colorMode, textAlign, textFont, textMode, textSize, textLeading, emissive, specular, shininess, ambient.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/pushStyle_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PpushStyle( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PpushStyle\"},\"Pquad\":{\"description\":\"A quad is a quadrilateral, a four sided polygon. It is similar to a rectangle, but the angles between its edges are not constrained to ninety degrees. The first pair of parameters (x1,y1) sets the first vertex and the subsequent pairs should proceed clockwise or counter-clockwise around the defined shape.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quad_.html)\\n\\n@param `x1` float: x-coordinate of the first corner\\n\\n@param `y1` float: y-coordinate of the first corner\\n\\n@param `x2` float: x-coordinate of the second corner\\n\\n@param `y2` float: y-coordinate of the second corner\\n\\n@param `x3` float: x-coordinate of the third corner\\n\\n@param `y3` float: y-coordinate of the third corner\\n\\n@param `x4` float: x-coordinate of the fourth corner\\n\\n@param `y4` float: y-coordinate of the fourth corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pquad( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE x4:DOUBLE y4:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pquad\"},\"PquadraticVertex\":{\"description\":\"Specifies vertex coordinates for quadratic Bezier curves. Each call to `PquadraticVertex` defines the position of one control point and one anchor point of a Bezier curve, adding a new segment to a line or shape. The first time `PquadraticVertex` is used within a [`PbeginShape`](/doc/PbeginShape) call, it must be prefaced with a call to [`Pvertex`](/doc/Pvertex) to set the first anchor point. This function must be used between [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) and only when there is no MODE parameter specified to [`PbeginShape`](/doc/PbeginShape). \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/quadraticVertex_.html)\\n\\n@param `cx` the x-coordinate of the control point\\n\\n@param `cy` the y-coordinate of the control point\\n\\n@param `x3` the x-coordinate of the anchor point\\n\\n@param `y3` the y-coordinate of the anchor point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PquadraticVertex( pg:PGRAPHICS cx:DOUBLE cy:DOUBLE x3:DOUBLE y3:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PquadraticVertex\"},\"Prect\":{\"description\":\"Draws a rectangle to the screen. A rectangle is a four-sided shape with every angle at ninety degrees. By default, the first two parameters set the location of the upper-left corner, the third sets the width, and the fourth sets the height. The way these parameters are interpreted, however, may be changed with the [`PrectMode`](/doc/PrectMode) function.\\n\\n\\n\\nTo draw a rounded rectangle, add a fifth parameter, which is used as the radius value for all four corners.\\n\\n\\n\\nTo use a different radius value for each corner, include eight parameters. When using eight parameters, the latter four set the radius of the arc at each corner separately, starting with the top-left corner and moving clockwise around the rectangle.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rect_.html)\\n\\n@param `a` float: x-coordinate of the rectangle by default\\n\\n@param `b` float: y-coordinate of the rectangle by default\\n\\n@param `c` float: width of the rectangle by default\\n\\n@param `d` float: height of the rectangle by default\\n\\n@param `r` float: radii for all four corners\\n\\n@param `tl` float: radius for top-left corner\\n\\n@param `tr` float: radius for top-right corner\\n\\n@param `br` float: radius for bottom-right corner\\n\\n@param `bl` float: radius for bottom-left corner\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Prect( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER ): pg:PGRAPHICS\\nPrect( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER r:NUMBER ): pg:PGRAPHICS\\nPrect( pg:PGRAPHICS a:NUMBER b:NUMBER c:NUMBER d:NUMBER tl:NUMBER tr:NUMBER br:NUMBER bl:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Prect\"},\"PrectMode\":{\"description\":\"Modifies the location from which rectangles are drawn by changing the way in which parameters given to [`Prect`](/doc/Prect) are intepreted.\\n\\nThe default mode is **CORNER**, which interprets the first two parameters of [`Prect`](/doc/Prect) as the upper-left corner of the shape, while the third and fourth parameters are its width and height.\\n\\n**CORNERS** interprets the first two parameters of [`Prect`](/doc/Prect) as the location of one corner, and the third and fourth parameters as the location of the opposite corner.\\n\\n**CENTER** interprets the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, while the third and fourth parameters are its width and height.\\n\\n**RADIUS** also uses the first two parameters of [`Prect`](/doc/Prect) as the shape's center point, but uses the third and fourth parameters to specify half of the shape's width and height.\\n\\nThe parameter must be written in ALL CAPS because Processing is a case-sensitive language.\\n\\n[Link to original Processing doc](https://processing.org/reference/rectMode_.html)\\n\\n@param `mode` either CORNER, CORNERS, CENTER, or RADIUS\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PrectMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PrectMode\"},\"Pred\":{\"description\":\"Extracts the red value from a color, scaled to match current [`PcolorMode`](/doc/PcolorMode). The value is always returned as a double.\\n\\nThe `Pred` function is easy to use and understand, but it is slower than bit shifting. \\n\\n[Link to original Processing doc](https://processing.org/reference/red_.html)\\n\\n@param `rgb` Any value of the color datatype\\n\\n@param `red` Red component of the input color\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pred( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS red:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pred\"},\"PresetMatrix\":{\"description\":\"Replaces the current matrix with the identity matrix. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/resetMatrix_.html)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PresetMatrix( pg:PGRAPHICS ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PresetMatrix\"},\"Presize\":{\"description\":\"The `Presize` function takes a **PIMAGE**, a width and a height and resizes the **PIMAGE**. This resizing does bilinear interpolation, which results in a smoother image than using [`Pimage`](/doc/Pimage) to resize.\\n\\n@param `height` New height of the image.\\n\\n@param `width` New width of the image.\\n\\n@param `img` Image to be resized\\n\\n@param `resized` Resized image.\\n\\n\",\"signature\":\"Presize( img:PIMAGE width:LONG height:LONG ): resized:PIMAGE\",\"tags\":[\"processing\"],\"since\":\"2.7.3\",\"OPB64name\":\"Presize\"},\"Protate\":{\"description\":\"Rotates the amount specified by the **angle** parameter. Angles must be specified in radians (values from **0** to **2 PI**). \\n\\nThe coordinates are always rotated around their relative position to the origin. Positive numbers rotate objects in a clockwise direction and negative numbers rotate in the couterclockwise direction. Transformations apply to everything that happens afterward, and subsequent calls to the function compound the effect. For example, calling `pi 2.0 / Protate` once and then calling `pi 2.0 / Protate` a second time is the same as a single `pi Protate`. \\n \\n\\nTechnically, `Protate` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/rotate_.html)\\n\\n@param `angle` angle of rotation specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Protate( pg:PGRAPHICS angle:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Protate\"},\"Psaturation\":{\"description\":\"Extracts the saturation value from a color.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/saturation_.html)\\n\\n@param `rgb` int: any value of the color datatype\\n\\n@param `saturation` Saturation component of HSB color representation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Psaturation( pg:PGRAPHICS rgb:NUMBER ): pg:PGRAPHICS saturation:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psaturation\"},\"Pscale\":{\"description\":\"Increases or decreases the size of a shape by expanding and contracting vertices. Objects always scale from their relative origin to the coordinate system. Scale values are specified as decimal percentages. For example, the function call `2.0 Pscale` increases the dimension of a shape by 200%.\\n\\n\\n\\nTransformations apply to everything that happens after and subsequent calls to the function multiply the effect. For example, calling `2.0 Pscale` and then `1.5 Pscale` is the same as `3.0 Pscale`. This function can be further controlled with [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/scale_.html)\\n\\n@param `s` percentage to scale the object\\n\\n@param `x` percentage to scale the object in the x-axis\\n\\n@param `y` percentage to scale the object in the y-axis\\n\\n@param `z` percentage to scale the object in the z-axis\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pscale( pg:PGRAPHICS s:NUMBER ): pg:PGRAPHICS\\nPscale( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPscale( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pscale\"},\"Pset\":{\"description\":\"Changes the color of any pixel, or writes an image directly to the display window.\\n\\n\\n\\nThe **x** and **y** parameters specify the pixel to change and the **c** parameter specifies the color value. The **c** parameter is interpreted according to the current color mode.  (The default color mode is RGB values from 0 to 255.)  When setting an image, the **x** and **y** parameters define the coordinates for the upper-left corner of the image.\\n\\n\\n\\nSetting the color of a single pixel with **set(x, y)** is easy, but not as fast as putting the data directly into the list of pixels returned by  [`Ppixels`](/doc/Ppixels).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/set_.html)\\n\\n@param `x` X-coordinate of the pixel\\n\\n@param `y` Y-coordinate of the pixel\\n\\n@param `c` Any value of the color datatype\\n\\n@param `img` Image to copy into the original image\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pset( pg:PGRAPHICS x:NUMBER y:NUMBER c:NUMBER ): pg:PGRAPHICS\\nPset( pg:PGRAPHICS x:NUMBER y:NUMBER img:PIMAGE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pset\"},\"Pshape\":{\"description\":\"Draws shapes to the display window. Shapes must be loaded with [`PloadShape`](/doc/PloadShape). Processing currently works with SVG, OBJ, and custom-created shapes. WrapScript only support SVG. The **shape** parameter specifies the shape to display and the coordinate parameters define the location of the shape from its upper-left corner. The shape is displayed at its original size unless the **c** and **d** parameters specify a different size. The [`PshapeMode`](/doc/PshapeMode) function can be used to change the way these parameters are interpreted.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shape_.html)\\n\\n@param `shape` the shape to display\\n\\n@param `x` x-coordinate of the shape\\n\\n@param `y` y-coordinate of the shape\\n\\n@param `a` x-coordinate of the shape\\n\\n@param `b` y-coordinate of the shape\\n\\n@param `c` width to display the shape\\n\\n@param `d` height to display the shape\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pshape( pg:PGRAPHICS shape:PSHAPE ): pg:PGRAPHICS\\nPshape( pg:PGRAPHICS shape:PSHAPE x:DOUBLE y:DOUBLE ): pg:PGRAPHICS\\nPshape( pg:PGRAPHICS shape:PSHAPE a:DOUBLE b:DOUBLE c:DOUBLE d:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.2.18\",\"OPB64name\":\"Pshape\"},\"PshapeMode\":{\"description\":\"Modifies the location from which shapes draw. The default mode is **shapeMode(CORNER)**, which specifies the location to be the upper left corner of the shape and uses the third and fourth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. The syntax **shapeMode(CORNERS)** uses the first and second parameters of [`Pshape`](/doc/Pshape) to set the location of one corner and uses the third and fourth parameters to set the opposite corner. The syntax **shapeMode(CENTER)** draws the shape from its center point and uses the third and forth parameters of [`Pshape`](/doc/Pshape) to specify the width and height. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shapeMode_.html)\\n\\n@param `mode` int: either CORNER, CORNERS, CENTER\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PshapeMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshapeMode\"},\"PshearX\":{\"description\":\"Shears a shape around the x-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearX` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearX_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PshearX( pg:PGRAPHICS angle:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearX\"},\"PshearY\":{\"description\":\"Shears a shape around the y-axis the amount specified by the **angle** parameter. Angles should be specified in radians (values from 0 to 2 PI). Objects are always sheared around their relative position to the origin and positive numbers shear objects in a clockwise direction. Transformations apply to everything that happens after and subsequent calls to the function accumulates the effect.  \\n\\nTechnically, `PshearY` multiplies the current transformation matrix by a rotation matrix. This function can be further controlled by the [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/shearY_.html)\\n\\n@param `angle` angle of shear specified in radians\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PshearY( pg:PGRAPHICS angle:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PshearY\"},\"Psize\":{\"description\":\"The `Psize` function returns the pixel `width` and `height` of a Pimage or PGraphics object.\\n\\n@param `img` PImage instance to measure.\\n\\n@param `pg` PGraphics instance to measure.\\n\\n@param `height` Object height in pixels.\\n\\n@param `width` Object height in pixels.\\n\\n\",\"signature\":\"Psize( img:PIMAGE ): width:LONG height:LONG\\nPsize( pg:PGRAPHICS ): width:LONG height:LONG\",\"tags\":[\"processing\"],\"since\":\"2.6.0\",\"OPB64name\":\"Psize\"},\"Psphere\":{\"description\":\"A sphere is a hollow ball made from tessellated triangles.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphere_.html)\\n\\n@param `r` the radius of the sphere\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Psphere( pg:PGRAPHICS r:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Psphere\"},\"PsphereDetail\":{\"description\":\"Controls the detail used to render a sphere by adjusting the number of vertices of the sphere mesh. The default resolution is 30, which creates a fairly detailed sphere definition with vertices every 360/30 = 12 degrees. If you are going to render a great number of spheres per frame, it is advised to reduce the level of detail using this function. The setting stays active until `PsphereDetail` is called again with a new parameter and so should **not** be called prior to every [`Psphere`](/doc/Psphere) statement, unless you wish to render spheres with different settings, e.g. using less detail for smaller spheres or ones further away from the camera. To control the detail of the horizontal and vertical resolution independently, use the version of the functions with two parameters.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/sphereDetail_.html)\\n\\n@param `res` int: number of segments (minimum 3) used per full circle revolution\\n\\n@param `ures` int: number of segments used longitudinally per full circle revolutoin\\n\\n@param `vres` int: number of segments used latitudinally from top to bottom\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PsphereDetail( pg:PGRAPHICS res:NUMBER ): pg:PGRAPHICS\\nPsphereDetail( pg:PGRAPHICS ures:NUMBER vres:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PsphereDetail\"},\"Pstroke\":{\"description\":\"Sets the color used to draw lines and borders around shapes. This color is either specified in terms of the RGB or HSB color depending on the current **colorMode** The default color space is RGB, with each value in the range from 0 to 255.\\n\\nThe most efficient is to use the raw ARGB format: 0x102030FF means Red 32, Green 48, Blue 255 with alpha=16/255. Alpha 0xFF means fully opaque. When using v1, v2, v3, gray, alpha, `Pstroke` calls internally [`Pcolor`](/doc/Pcolor).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/stroke_.html)\\n\\n@param `argb` color value in hexadecimal notation\\n\\n@param `alpha` opacity of the stroke\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pstroke( pg:PGRAPHICS argb:LONG ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS gray:DOUBLE ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS argb:LONG alpha:DOUBLE ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS gray:DOUBLE alpha:DOUBLE ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS\\nPstroke( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pstroke\"},\"PstrokeCap\":{\"description\":\"Sets the style for rendering line endings. These ends are either squared, extended, or rounded, each of which specified with the corresponding parameters: SQUARE, PROJECT, and ROUND. The default cap is ROUND.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeCap_.html)\\n\\n@param `cap` Either SQUARE, PROJECT, or ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PstrokeCap( pg:PGRAPHICS cap:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeCap\"},\"PstrokeJoin\":{\"description\":\"Sets the style of the joints which connect line segments. These joints are either mitered, beveled, or rounded and specified with the corresponding parameters MITER, BEVEL, and ROUND. The default joint is MITER. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeJoin_.html)\\n\\n@param `join` Either MITER, BEVEL, ROUND\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PstrokeJoin( pg:PGRAPHICS join:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeJoin\"},\"PstrokeWeight\":{\"description\":\"Sets the width of the stroke used for lines, points, and the border around shapes. All widths are set in units of pixels.\\n\\n**Warning**: There is a known rounding bug inside Processing. Size 1 pixels may not draw. Use a 1.01 stroke weight. See [`Ppoint`](/doc/Ppoint) example.\\n\\n[Link to original Processing doc](https://processing.org/reference/strokeWeight_.html)\\n\\n@param `weight` The weight (in pixels) of the stroke.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PstrokeWeight( pg:PGRAPHICS weight:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PstrokeWeight\"},\"Ptext\":{\"description\":\"Draws text to the screen. Displays the information specified in the first parameter on the screen in the position specified by the additional parameters. A default font will be used unless a font is set with the [`PtextFont`](/doc/PtextFont) function and a default size will be used unless a font is set with [`PtextSize`](/doc/PtextSize). Change the color of the text with the [`Pfill`](/doc/Pfill) function. The text displays in relation to the [`PtextAlign`](/doc/PtextAlign) function, which gives the option to draw to the left, right, and center of the coordinates.\\n\\n\\n\\nThe **x2** and **y2** parameters define a rectangular area to display within and may only be used with string data. When these parameters are specified, they are interpreted based on the current [`PrectMode`](/doc/PrectMode) setting. Text that does not fit completely within the rectangle specified will not be drawn to the screen.\\n\\n\\n\\nNote that Processing now lets you call `Ptext` without first specifying a PFont with [`PtextFont`](/doc/PtextFont). In that case, a generic sans-serif font will be used instead.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/text_.html)\\n\\n@param `s` the string to be displayed\\n\\n@param `x` by default, x-coordinate of text\\n\\n@param `y` by default, y-coordinate of text\\n\\n@param `x1` by default, the x-coordinate of text, see PrectMode for more info\\n\\n@param `y1` by default, the y-coordinate of text, see PrectMode for more info\\n\\n@param `x2` by default, the width of the text box, see PrectMode for more info\\n\\n@param `y2` by default, the height of the text box, see PrectMode for more info\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Ptext( pg:PGRAPHICS s:STRING x:DOUBLE y:DOUBLE ): pg:PGRAPHICS\\nPtext( pg:PGRAPHICS s:STRING x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptext\"},\"PtextAlign\":{\"description\":\"Sets the current alignment for drawing text. The parameters LEFT, CENTER, and RIGHT set the display characteristics of the letters in relation to the values for the **x** and **y** parameters of the [`Ptext`](/doc/Ptext) function.\\n\\n\\n\\nAn optional second parameter can be used to vertically align the text. BASELINE is the default, and the vertical alignment will be reset to BASELINE if the second parameter is not used. The TOP and CENTER parameters are straightforward. The BOTTOM parameter offsets the line based on the current [`PtextDescent`](/doc/PtextDescent). For multiple lines, the final line will be aligned to the bottom, with the previous lines appearing above it.\\n\\n\\n\\nWhen using [`Ptext`](/doc/Ptext) with width and height parameters, BASELINE is ignored, and treated as TOP. (Otherwise, text would by default draw outside the box, since BASELINE is the default setting. BASELINE is not a useful drawing mode for text drawn in a rectangle.)\\n\\n\\n\\nThe vertical alignment is based on the value of [`PtextAscent`](/doc/PtextAscent), which many fonts do not specify correctly. It may be necessary to use a hack and offset by a few pixels by hand so that the offset looks correct. To do this as less of a hack, use some percentage of [`PtextAscent`](/doc/PtextAscent) or [`PtextDescent`](/doc/PtextDescent) so that the hack works even if you change the size of the font.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAlign_.html)\\n\\n@param `alignX` Horizontal alignment, either LEFT, CENTER, or RIGHT\\n\\n@param `alignY` Vertical alignment, either TOP, BOTTOM, CENTER, or BASELINE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextAlign( pg:PGRAPHICS alignX:STRING ): pg:PGRAPHICS\\nPtextAlign( pg:PGRAPHICS alignX:STRING alignY:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAlign\"},\"PtextAscent\":{\"description\":\"Returns ascent of the current font at its current size. This information is useful for determining the height of the font above the baseline. For example, adding the `PtextAscent` and [`PtextDescent`](/doc/PtextDescent) values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textAscent_.html)\\n\\n@param `ascent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextAscent( pg:PGRAPHICS ): pg:PGRAPHICS ascent:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextAscent\"},\"PtextDescent\":{\"description\":\"Returns descent of the current font at its current size. This information is useful for determining the height of the font below the baseline. For example, adding the [`PtextAscent`](/doc/PtextAscent) and `PtextDescent` values will give you the total height of the line.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textDescent_.html)\\n\\n@param `descent` ascent of the current font at its current size\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextDescent( pg:PGRAPHICS ): pg:PGRAPHICS descent:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextDescent\"},\"PtextFont\":{\"description\":\"Sets the current font that will be drawn with the [`Ptext`](/doc/Ptext) function. Fonts must be created for Processing with [`PcreateFont`](/doc/PcreateFont) before they can be used. The font set through `PtextFont` will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textFont_.html)\\n\\n@param `font` Any variable of the type PFont\\n\\n@param `size` the size of the letters in pixel.\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextFont( pg:PGRAPHICS font:PFONT ): pg:PGRAPHICS\\nPtextFont( pg:PGRAPHICS font:PFONT size:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextFont\"},\"PtextLeading\":{\"description\":\"Sets the spacing between lines of text in units of pixels. This setting will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function.  Note, however, that the leading is reset by [`PtextSize`](/doc/PtextSize). For example, if the leading is set to 20 with `20 PtextLeading`, then if `48 PtextSize` is run at a later point, the leading will be reset to the default for the text size of 48.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textLeading_.html)\\n\\n@param `leading` The size in pixels for spacing between lines\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextLeading( pg:PGRAPHICS leading:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextLeading\"},\"PtextMode\":{\"description\":\"Sets the way text draws to the screen, either as texture maps or as vector geometry. The default **textMode(MODEL)**, uses textures to render the fonts. The **textMode(SHAPE)** mode draws text using the glyph outlines of individual characters rather than as textures. This mode is only supported with the **PDF** and **P3D** renderer settings. With the **PDF** renderer, you must call **textMode(SHAPE)** before any other drawing occurs. If the outlines are not available, then **textMode(SHAPE)** will be ignored and **textMode(MODEL)** will be used instead.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textMode_.html)\\n\\n@param `mode` int: either MODEL or SHAPE\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextMode( pg:PGRAPHICS mode:STRING ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextMode\"},\"PtextSize\":{\"description\":\"Sets the current font size. This size will be used in all subsequent calls to the [`Ptext`](/doc/Ptext) function. Font size is measured in units of pixels.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textSize_.html)\\n\\n@param `size` float: the size of the letters in units of pixels\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextSize( pg:PGRAPHICS size:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextSize\"},\"PtextWidth\":{\"description\":\"Calculates and returns the width of any character or text string.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/textWidth_.html)\\n\\n@param `str` The String of characters to measure\\n\\n@param `w` The width of the input string\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"PtextWidth( pg:PGRAPHICS str:STRING ): pg:PGRAPHICS w:DOUBLE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PtextWidth\"},\"Ptint\":{\"description\":\"Sets the fill value for displaying images. Images can be tinted to specified colors or made transparent by including an alpha value.\\n\\n\\n\\nTo apply transparency to an image without affecting its color, use white as the tint color and specify an alpha value. For instance, **tint(255, 128)** will make an image 50pc transparent (assuming the default alpha range of 0-255, which can be changed with [`PcolorMode`](/doc/PcolorMode)).\\n\\n\\nThe value for the gray parameter must be less than or equal to the current maximum value as specified by [`PcolorMode`](/doc/PcolorMode). The default maximum value is 255.\\n\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/tint_.html)\\n\\n@param `argb` any argb color value.\\n\\n@param `alpha` opacity of the image\\n\\n@param `gray` specifies a value between white and black\\n\\n@param `v1` red or hue value (depending on current color mode)\\n\\n@param `v2` green or saturation value (depending on current color mode)\\n\\n@param `v3` blue or brightness value (depending on current color mode)\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Ptint( pg:PGRAPHICS argb:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS gray:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS argb:NUMBER alpha:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER ): pg:PGRAPHICS\\nPtint( pg:PGRAPHICS v1:NUMBER v2:NUMBER v3:NUMBER alpha:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptint\"},\"PtoImage\":{\"description\":\"The `PtoImage` function transforms a `PGRAPHICS` to a `PIMAGE`.\\n\\nThe `PGRAPHICS` can still be used after the transformation as this function copies the pixel values. This is equivalent to `Pencode Pdecode` but it is a lot faster.\\n\\n@param `pg` Processing graphic object.\\n\\n@param `img` Processing Pimage object.\\n\\n\",\"signature\":\"PtoImage( pg:PGRAPHICS ): img:PIMAGE\",\"tags\":[\"processing\"],\"since\":\"2.1.0\",\"OPB64name\":\"PtoImage\"},\"Ptranslate\":{\"description\":\"Specifies an amount to displace objects within the display window. The **x** parameter specifies left/right translation, the **y** parameter specifies up/down translation.\\n\\n\\n\\nTransformations are cumulative and apply to everything that happens after and subsequent calls to the function accumulates the effect. For example, calling **50 0 Ptranslate** and then **20 0 Ptranslate** is the same as **70 0 Ptranslate**. This function can be further controlled by using [`PpushMatrix`](/doc/PpushMatrix) and [`PpopMatrix`](/doc/PpopMatrix).\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/translate_.html)\\n\\n@param `x` left/right translation\\n\\n@param `y` up/down translation\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Ptranslate( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptranslate\"},\"Ptriangle\":{\"description\":\"A triangle is a plane created by connecting three points. The first two arguments specify the first point, the middle two arguments specify the second point, and the last two arguments specify the third point. \\n\\n\\n[Link to original Processing doc](https://processing.org/reference/triangle_.html)\\n\\n@param `x1` float: x-coordinate of the first point\\n\\n@param `y1` float: y-coordinate of the first point\\n\\n@param `x2` float: x-coordinate of the second point\\n\\n@param `y2` float: y-coordinate of the second point\\n\\n@param `x3` float: x-coordinate of the third point\\n\\n@param `y3` float: y-coordinate of the third point\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Ptriangle( pg:PGRAPHICS x1:DOUBLE y1:DOUBLE x2:DOUBLE y2:DOUBLE x3:DOUBLE y3:DOUBLE ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Ptriangle\"},\"PupdatePixels\":{\"description\":\"Updates the display window with the data in the **pixels[]** array. Use in conjunction with [`Ppixels`](/doc/Ppixels). If you are only reading pixels from the array, there's no need to call `PupdatePixels` - updating is only necessary to apply changes.\\n\\n[Link to original Processing doc](https://processing.org/reference/updatePixels_.html)\\n\\n@param `pixels` List of image pixels, RGBA format.\\n\\n@param `pg` Processing graphic object\\n\\n@param `img` PImage object\\n\\n\",\"signature\":\"PupdatePixels( pg:PGRAPHICS pixels:LIST<LONG> ): pg:PGRAPHICS\\nPupdatePixels( img:PIMAGE pixels:LIST<LONG> ): img:PIMAGE\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"PupdatePixels\"},\"Pvertex\":{\"description\":\"All shapes are constructed by connecting a series of vertices. `Pvertex` is used to specify the vertex coordinates for points, lines, triangles, quads, and polygons. It is used exclusively within the [`PbeginShape`](/doc/PbeginShape) and [`PendShape`](/doc/PendShape) functions.\\n\\n\\n[Link to original Processing doc](https://processing.org/reference/vertex_.html)\\n\\n@param `x` x-coordinate of the vertex\\n\\n@param `y` y-coordinate of the vertex\\n\\n@param `z` float: z-coordinate of the vertex\\n\\n@param `u` float: horizontal coordinate for the texture mapping\\n\\n@param `v` float: vertical coordinate for the texture mapping\\n\\n@param `pg` Processing graphic object\\n\\n\",\"signature\":\"Pvertex( pg:PGRAPHICS x:NUMBER y:NUMBER ): pg:PGRAPHICS\\nPvertex( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER ): pg:PGRAPHICS\\nPvertex( pg:PGRAPHICS x:NUMBER y:NUMBER u:NUMBER v:NUMBER ): pg:PGRAPHICS\\nPvertex( pg:PGRAPHICS x:NUMBER y:NUMBER z:NUMBER u:NUMBER v:NUMBER ): pg:PGRAPHICS\",\"tags\":[\"processing\"],\"since\":\"1.0.0\",\"OPB64name\":\"Pvertex\"},\"Q->\":{\"description\":\"The `Q->` function consumes on the stack a [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long and push back the quaternion into\\n4 doubles (w, x, y, z, with z being on top).\\n\\nEach quaternion dimension is encoded with 16 bits.\\n\\n@param `w` W\\n\\n@param `x` X\\n\\n@param `y` Y\\n\\n@param `z` Z\\n\\n@param `input` Quaternion representation\\n\\n\",\"signature\":\"Q->( input:LONG ): w:DOUBLE x:DOUBLE y:DOUBLE z:DOUBLE\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"JHoy\"},\"QCONJUGATE\":{\"description\":\"The `QCONJUGATE` function performs a [conjugation](https://en.wikipedia.org/wiki/Quaternion#Conjugation,_the_norm,_and_reciprocal) of a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the quaternion conjugate into a long.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `result` The conjugated quaternion\\n\\n\",\"signature\":\"QCONJUGATE( quaternion:LONG ): result:LONG\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QCONJUGATE\"},\"QDIVIDE\":{\"description\":\"The `QDIVIDE` function divides a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of dividing them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from division *q* by *r*\\n\\n\",\"signature\":\"QDIVIDE( q:LONG r:LONG ): result:LONG\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QDIVIDE\"},\"QMULTIPLY\":{\"description\":\"The `QMULTIPLY` function multiplies a [quaternion](https://en.wikipedia.org/wiki/Quaternion) *q* by a quaternion *r* and push back the result of multiplying them.\\n\\n@param `q` The *q* quaternion\\n\\n@param `r` The *r* quaternion\\n\\n@param `result` The resulting quaternion from multiplication *q* by *r*\\n\\n\",\"signature\":\"QMULTIPLY( q:LONG r:LONG ): result:LONG\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QMULTIPLY\"},\"QROTATE\":{\"description\":\"Rotates a vector by a [quaternion](https://en.wikipedia.org/wiki/Quaternion).\\n\\nThe `QROTATE` function consumes on the top of the stack three doubles representing a vector(x, y, z) and a long representing a [quaternion](https://en.wikipedia.org/wiki/Quaternion) and pushes back the vector rotated into 3 doubles (x, y, z with z being on top).\\n\\n@param `quaternion` The quaternion used to rotate the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"signature\":\"QROTATE( x:DOUBLE y:DOUBLE z:DOUBLE quaternion:LONG ): x:DOUBLE y:DOUBLE z:DOUBLE\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATE\"},\"QROTATION\":{\"description\":\"The `QROTATION` extracts the axis and angle of the rotation represented by the [quaternion](https://en.wikipedia.org/wiki/Quaternion) on the stack.\\n\\n@param `quaternion` The input quaternion\\n\\n@param `angle` The angle of rotation\\n\\n@param `x` The X axis\\n\\n@param `y` The Y axis\\n\\n@param `z` The Z axis\\n\\n\",\"signature\":\"QROTATION( quaternion:LONG ): x:DOUBLE y:DOUBLE z:DOUBLE angle:DOUBLE\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"QROTATION\"},\"QUANTIZE\":{\"description\":\"The `QUANTIZE` function produces a quantized version of a Geo Time Series™ by replacing each value with a value from a finite list according to the interval the original value falls in. This function only works on numeric Geo Time Series™.\\nThis function can help to \\\"discretify\\\" data before calling [`VALUEHISTOGRAM`](/doc/VALUEHISTOGRAM).\\nThe list of intervals is defined as: [-∞,bounds<sub>0</sub>], (bounds<sub>0</sub>,bounds_<sub>1</sub>], (bounds<sub>1</sub>,bounds<sub>2</sub>], ..., (bounds<sub>n-1</sub>,+∞]\\n\\n@param `values` List of `n+1` values, one for each interval defined by `bounds`. If empty, the list `[ `0` `1` ... `n+1` ]` will be used.\\n\\n@param `bounds` Sorted list of `n` finite bounds defining `n+1` intervals.\\n\\n@param `gts` Geo Time Series™ to quantize.\\n\\n@param `qgts` Quantized GTS.\\n\\n@param `lgts` List of Geo Time Series™ to quantize.\\n\\n@param `lqgts` List of quantized GTS.\\n\\n\",\"signature\":\"QUANTIZE( gts:GTS bounds:LIST<DOUBLE> values:LIST ): qgts:GTS\\nQUANTIZE( lgts:LIST<GTS> bounds:LIST<DOUBLE> values:LIST ): lqgts:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"QUANTIZE\"},\"RAND\":{\"description\":\"The `RAND` function pushes onto the stack a random floating point number between 0.0 (inclusive) and 1.0 (exlusive) generated by the default random generator.\\n\\nThis generation is cryptographically secure.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"signature\":\"RAND(): num:DOUBLE\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RAND\"},\"RANDOM\":{\"description\":\"The `RANDOM` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThis function is very similar to [SRAND](/doc/SRAND) except the seed is choosen pseudorandomly when the function is first called. Subsequent calls use the same generator.\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"signature\":\"RANDOM(): num:DOUBLE\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"RANDOM\"},\"RANDPDF\":{\"description\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe result if a function pushed onto the stack. This function does not have any arguments.\\n\\nTo use the function pushed by `RANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"signature\":\"RANDPDF( valueHistogram:MAP ): result:STRING\",\"tags\":[\"math\",\"statistics\"],\"since\":\"1.0.7\",\"OPB64name\":\"RANDPDF\"},\"RANGE\":{\"description\":\"`RANGE` pushes onto the stack a list of integers in the given range [start included, end excluded[. If start is not in the parameter list, start=0.\\n\\n`RANGE` also accepts a step parameter in the parameter list.\\n\\n\\n@param `start` The start of range, default is 0\\n\\n@param `end` The end of range\\n\\n@param `step` The step between integers, default is 1\\n\\n@param `output` The list of every integers in the range [start end[\\n\\n\",\"signature\":\"RANGE( [ end:LONG ] ): output:LIST<LONG>\\nRANGE( [ start:LONG end:LONG ] ): output:LIST<LONG>\\nRANGE( [ start:LONG end:LONG step:LONG ] ): output:LIST<LONG>\",\"tags\":[\"counters\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGE\"},\"RANGECOMPACT\":{\"description\":\"The `RANGECOMPACT` simplifies a Geo Time Series™ by simplifying ranges of identical values (with identical latitude, longitude and elevation), retaining only the first and last ticks of each range.\\n\\n@param `gts` Geo Time Series™ to compact.\\n\\n@param `compacted` Compacted GTS.\\n\\n@param `lgts` List of Geo Time Series™ to compact.\\n\\n@param `lcompacted` List of compacted GTS.\\n\\n\",\"signature\":\"RANGECOMPACT( gts:GTS ): compacted:GTS\\nRANGECOMPACT( lgts:LIST<GTS> ): lcompacted:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RANGECOMPACT\"},\"RAWDTW\":{\"description\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe computation is performed on the raw Geo Time Series™, no transformation is applied to them.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"signature\":\"RAWDTW( gts1:GTS gts2:GTS threshold:DOUBLE ): dtw:DOUBLE\\nRAWDTW( gts1:GTS gts2:GTS threshold:DOUBLE characteristic:STRING ): dtw:DOUBLE\\nRAWDTW( gts1:GTS gts2:GTS threshold:DOUBLE distance:STRING characteristic:STRING ): dtw:DOUBLE\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"RAWDTW\"},\"REDEFS\":{\"description\":\"The `REDEFS` function allows or disallows execution of redefined functions.\\n\\n@param `flag` Shall we allow or disallow the execution of redefined functions.\\n\\n\",\"signature\":\"REDEFS( flag:BOOLEAN ): \",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REDEFS\"},\"REDUCE\":{\"description\":\"The `REDUCE` framework groups Geo Time Series™ by equivalence classes based on label values and applies a function on each equivalence class of Geo Time Series™, considering the values of each tick and producing one GTS per equivalence class.\\n\\nAs the selected reducer function is applied tick by tick, it is usually wise to [`BUCKETIZE`](/doc/BUCKETIZE) the GTS first with a common value of `lastbucket`.\\n\\nThe labels whose values are common to all the GTS in an equivalence class will be retained.\\n\\nIf all the inputs are bucketized with the same bucket span and bucket end, the output of reduce will be bucketized too. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) if needed after `REDUCE`.\\n\\nSince 2.1 you can make REDUCE override the GTSs ticks. This usage in mainly to be used in conjuction with [`MACROREDUCER`](/doc/MACROREDUCER).\\n\\n@param `reducer` Reducer function to apply.\\n\\n@param `labels` List of label names to consider for creating equivalence classes. If the list is empty all Geo Time Series™ will end up in the same equivalence class. If the `labels` parameter `NULL`, all labels will be considered.\\n\\n@param `gts` One or more lists of Geo Time Series™.\\n\\n@param `result` List of resulting Geo Time Series™.\\n\\n@param `overrideTick` Boolean, if true allows the reducer to modify the ticks of the GTSs. If not set, the reducer cannot modify the ticks.\\n\\n\",\"signature\":\"REDUCE( [ gts:LIST<GTS>+ labels:LIST<STRING> reducer:AGGREGATOR ] ): result:LIST<GTS>\\nREDUCE( [ gts:LIST<GTS>+ labels:LIST<STRING> reducer:AGGREGATOR overrideTick:BOOLEAN ] ): result:LIST<GTS>\",\"tags\":[\"reducer\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"REDUCE\"},\"RELABEL\":{\"description\":\"Modifies the labels of a Geo Time Series™. The `RELABEL` function expects a parameter MAP whose entries are labels to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `RELABEL` function will use the rest of the MAP as the actual labels to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing labels.\\n\\nAn entry with an empty STRING value or a NULL value will have the effect of removing the label from the GTS' labels.        \\n\\n@param `labels` Parameter map of label names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `encoder` Encoder to relabel\\n\\n@param `lencoder` List of encoders to relabel\\n\\n\",\"signature\":\"RELABEL( gts:GTS labels:MAP ): gts:GTS\\nRELABEL( lgts:LIST<GTS> labels:MAP ): lgts:LIST<GTS>\\nRELABEL( encoder:GTSENCODER labels:MAP ): encoder:GTSENCODER\\nRELABEL( lencoder:LIST<GTSENCODER> labels:MAP ): lencoder:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RELABEL\"},\"REMOVE\":{\"description\":\"Removes an entry from a MAP or from a LIST.\\n\\nThe `REMOVE` function consumes a list (or a map) and a index (or a key), then remove the entry.\\nIt lets the input on the stack and puts the removed item on top of the stack. \\nAs a result, the input map or list is modified and the map or list left on top of the stack is *not* a copy. \\n\\nIf the index is out of bound, the returned value is `NULL` and the list or array is unmodified.\\nIf the key does not exist in the map, it returns null as the removed entry.\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **GTS**.\\n\\nSince 2.7, `REMOVE` can be called on a **GTS**.\\n\\n@param `key` Depending on map construction, could be a number, a string, a boolean\\n\\n@param `inputmap` The reference to the map to be modified\\n\\n@param `index` The index of the list, 0 for the first item\\n\\n@param `inputlist` The reference to the list to be modified\\n\\n@param `removeditem` Depending on map or list content, could be any type\\n\\n@param `outputmap` The input map modified\\n\\n@param `outputlist` The input list modified\\n\\n@param `pointindex` Index of the point in the GTS, 0-indexed, handles negative indexing.\\n\\n@param `inputgts` The GTS to remove the point from.\\n\\n@param `removedpoint` The removed point. List of timestamp, latitude, longitude, elevation and value.\\n\\n@param `outputgts` The acopy of the original GTS with the requested point removed.\\n\\n\",\"signature\":\"REMOVE( inputlist:LIST index:LONG ): outputlist:LIST removeditem:ANY\\nREMOVE( inputmap:MAP key:ANY ): outputmap:MAP removeditem:ANY\\nREMOVE( inputgts:GTS pointindex:LONG ): outputgts:GTS removedpoint:LIST\",\"tags\":[\"maps\",\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"REMOVE\"},\"REMOVETICK\":{\"description\":\"The `REMOVETICK` function transforms a Geo Time Series™ by removing all occurrences of a tick or ticks.\\n\\n@param `tick` Tick (timestamp) to remove.\\n\\n@param `lticks` List or Set of ticks to remove.\\n\\n@param `gts` Geo Time Series™ to transform.\\n\\n@param `pruned` Tranformed Geo Time Series™.\\n\\n\",\"signature\":\"REMOVETICK( gts:GTS tick:LONG ): pruned:GTS\\nREMOVETICK( gts:GTS lticks:LIST<LONG> ): pruned:GTS\\nREMOVETICK( gts:GTS lticks:SET<LONG> ): pruned:GTS\",\"tags\":[\"gts\"],\"since\":\"1.2.19\",\"OPB64name\":\"REMOVETICK\"},\"RENAME\":{\"description\":\"The `RENAME` function changes the name of a Geo Time Series™, an Encoder or a list thereof. This operation may be required prior to using some functions. If the name starts with '+', the specified name will be appended to the current name of the GTS or Encoder.\\n\\nIf you want to rename a Geo Time Series™ or an Encoder so its name starts with a '+', you must first set its name to the empty string then use rename with the desired name prefixed with an additional '+'.\\n\\n@param `gts` Geo Time Series™ instance to rename.\\n\\n@param `lgts` List of Geo Time Series™ instances to rename.\\n\\n@param `encoder` Encoder to rename.\\n\\n@param `lencoder` Encoder to rename.\\n\\n@param `name` New name to give to the GTS.\\n\\n\",\"signature\":\"RENAME( gts:GTS name:STRING ): gts:GTS\\nRENAME( lgts:LIST<GTS> name:STRING ): lgts:LIST<GTS>\\nRENAME( encoder:GTSENCODER name:STRING ): encoder:GTSENCODER\\nRENAME( lencoder:LIST<GTSENCODER> name:STRING ): lencoder:LIST<GTSENCODER>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"RENAME\"},\"REOPTALT\":{\"description\":\"Produces a **R**egular **E**xpression **OPT**imized for **ALT**ernation from a list of STRINGs. Large alternations in regular expressions can lead to excessive backtracking and poor matching performance. In order to mitigate this, the `REOPTALT` function will produce a regular expression from a list of STRINGs which reduces the backtracking thus leading to better matching performance.\\n\\n@param `alternatives` List of STRINGs which should be used in the alternation.\\n\\n@param `regexp` Regular expression\\n\\n\",\"signature\":\"REOPTALT( alternatives:LIST<STRING> ): regexp:STRING\",\"tags\":[\"strings\"],\"since\":\"1.2.16\",\"OPB64name\":\"REOPTALT\"},\"REPLACE\":{\"description\":\"Replaces the first occurrence of a pattern by its substitution.\\n\\nThe `REPLACE` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with the replaced value if it was found\\n\\n\",\"signature\":\"REPLACE( original:ANY pattern:ANY replacement:ANY ): result:STRING\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACE\"},\"REPLACEALL\":{\"description\":\"Replaces all occurrence of a pattern by its substitution.\\n\\nThe `REPLACEALL` consumes 3 parameters from the stack:\\n* the replacement value\\n* the pattern to search, could be a regular expression\\n* the input value\\n\\nAll parameters are converted into strings via the toString() method before the replacement is done.\\n\\n@param `replacement` Value to be substituted to the pattern. Could be a number, a string, a list, ...\\n\\n@param `pattern` Pattern to search in the original value. Could be a regexp, a number, a string, a list, ...\\n\\n@param `original` Original value containing the pattern to replace\\n\\n@param `result` String with all occurrences of pattern replaced by its value\\n\\n\",\"signature\":\"REPLACEALL( original:ANY pattern:ANY replacement:ANY ): result:STRING\",\"tags\":[\"strings\"],\"since\":\"1.1.0\",\"OPB64name\":\"REPLACEALL\"},\"REPORT\":{\"description\":\"The `REPORT` function pushes onto the stack a STRING containing configuration and usage informations which can be useful when investigating issues.\\n\\n@param `secret` Secret configured for using the `REPORT` function.\\n\\n@param `report` Actual report.\\n\\n\",\"signature\":\"REPORT( secret:STRING ): report:STRING\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"REPORT\"},\"RESET\":{\"description\":\"The `RESET` function resets the stack to the given depth, discarding any items above those 'depth' items.\\n\\n@param `depth` Depth at which the stack should be reset.\\n\\n\",\"signature\":\"RESET( depth:LONG ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESET\"},\"RESETS\":{\"description\":\"The `RESETS` functions transforms a numerical Geo Time Series™, shifting values so no offset (*i.e.* a decrease or increase of values) appears after the operation.\\n\\nThe parameter to `RESETS` determines if the Geo Time Series should be considered as decreasing instead of increasing.\\n\\n@param `decreasingGTS` Flag set to `true` to indicate the GTS is decreasing.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `lgts` List of Geo Time Series™ or list thereof to transform.\\n\\n@param `result` GTS with resets compensated.\\n\\n@param `lresult` List of GTS with resets compensated.\\n\\n\",\"signature\":\"RESETS( gts:GTS decreasingGTS:BOOLEAN ): result:GTS\\nRESETS( lgts:LIST<GTS> decreasingGTS:BOOLEAN ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESETS\"},\"RESHAPE\":{\"description\":\"The `RESHAPE` function modifies the shape of a list.\\n\\nThe new shape is specified using a list of dimensions, the first being the outer dimension. Such a shape can be produced by `SHAPE`.\\n\\nNote that the number of elements in the array must be compatible with the requested shape, i.e. the product of the dimensions must match the number of elements in the input list.\\n\\n@param `input` List to reshape.\\n\\n@param `shape` Shape specification, list of dimensions, the first element being the outer list.\\n\\n@param `output` Reshaped list.\\n\\n\",\"signature\":\"RESHAPE( input:LIST shape:LIST<LONG> ): output:LIST\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"RESHAPE\"},\"RESTORE\":{\"description\":\"The `RESTORE` function resets the stack's symbol table to the state recorded in the context passed as parameter.\\n\\n@param `context` Stack context produced by [`SAVE`](doc/SAVE).\\n\\n\",\"signature\":\"RESTORE( context:CONTEXT ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"RESTORE\"},\"RETHROW\":{\"description\":\"Inside the *catch* or *finally* macro of a [`TRY`](/doc/TRY), rethrows the last thrown error. If no error was previously thrown, `RETHROW` does nothing.\\n\\n\",\"signature\":\"RETHROW(): \",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"RETHROW\"},\"RETURN\":{\"description\":\"Returns immediately from the currently executing macro. If called outside a macro, `RETURN` will stop the execution of the current script, behaving like [`STOP`](/doc/STOP).\\n\\n\",\"signature\":\"RETURN(): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"RETURN\"},\"REV\":{\"description\":\"The `REV` function pushes onto the stack the revision of the Warp 10 instance.`\\n\\n@param `revision` Revision of the Warp 10 platform.\\n\\n\",\"signature\":\"REV(): revision:STRING\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"REV\"},\"REVBITS\":{\"description\":\"Reverses the order of the bits of a LONG value.\\n\\n@param `long` LONG value from which to revert the bits.\\n\\n@param `gnol` LONG value whose bits are in reverse order compared to those of `long`.\\n\\n\",\"signature\":\"REVBITS( long:LONG ): gnol:LONG\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVBITS\"},\"REVERSE\":{\"description\":\"Reverses the order of the elements of the list or the string.\\n\\nThe `REVERSE` function inverts the order of the elements of the list or the string on the top of the stack.\\nBeware, `REVERSE` do not create a new object. Use [`CLONEREVERSE`](/doc/CLONEREVERSE) if you want to keep input.\\n\\nApplied on a byte array, `REVERSE` reverses the endianness.\\n\\n\\n@param `originalList` The list to reverse\\n\\n@param `originalString` The string to reverse\\n\\n@param `reversedObj` The original object with the elements in reverse order\\n\\n\",\"signature\":\"REVERSE( originalList:LIST ): reversedObj:LIST\\nREVERSE( originalString:STRING ): reversedObj:STRING\\nREVERSE( originalString:BYTES ): reversedObj:BYTES\",\"tags\":[\"lists\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"REVERSE\"},\"REXEC\":{\"description\":\"The `REXEC` function executes some WarpScript code on a remote Warp 10 instance. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"signature\":\"REXEC( warpscript:STRING endpoint:STRING ): stack:ANY*\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.0.8\",\"OPB64name\":\"REXEC\"},\"REXECZ\":{\"description\":\"The `REXECZ` function executes some WarpScript code on a remote Warp 10 instance just like [`REXEC`](/doc/REXEC) does, but compresses the WarpScript code prior to sending it. The stack left by the execution on the remote instance will be snapshotted using [`SNAPSHOT`](/doc/SNAPSHOT) and the result will be re-applied on the local stack.\\n\\nFor Warp 10™ 1.x, this function is not available if `warpscript.rexec.enable` was not set to `true` in the Warp 10 instance configuration.\\n\\nStarting with Warp 10™ 2.x, this function has been moved to the `io.warp10.script.ext.rexec.RexecWarpScriptExtension` extension.\\n\\n@param `endpoint` URL of the remote Warp 10 instance `/exec` endpoint.\\n\\n@param `warpscript` Code to execute on the remote instance.\\n\\n@param `stack` Resulting stack.\\n\\n\",\"signature\":\"REXECZ( warpscript:STRING endpoint:STRING ): stack:ANY*\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"REXECZ\"},\"RINT\":{\"description\":\"The `RINT` function consumes a numeric parameter from the top of the stack and pushes back the DOUBLE the closest to the parameter and equal to a mathematical integer.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `result` Closest floating-point value to a that is equal to a mathematical integer.\\n\\n@param `lvalue` List of Numeric values.\\n\\n@param `lresult` List of closest floating-point values to a that is equal to a mathematical integer.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are closest floating-point values of the given GTS values\\n\\n\",\"signature\":\"RINT( value:NUMBER ): result:DOUBLE\\nRINT( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nRINT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"RINT\"},\"RIPEMD128\":{\"description\":\"The `RIPEMD128` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-128](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"RIPEMD128( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD128\"},\"RIPEMD160\":{\"description\":\"The `RIPEMD160` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-160](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"RIPEMD160( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD160\"},\"RIPEMD256\":{\"description\":\"The `RIPEMD256` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-256](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"RIPEMD256( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD256\"},\"RIPEMD320\":{\"description\":\"The `RIPEMD320` function digests a byte array on the stack with the cryptographic hash function [RIPEMD-320](https://en.wikipedia.org/wiki/RIPEMD).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"RIPEMD320( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"RIPEMD320\"},\"RLOWESS\":{\"description\":\"The `RLOWESS` function applies an iterative smoothing program on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is done via locally weighted regression, and is robust to outliers.\\n\\n> ### REFERENCE\\n>\\n> **Cleveland, W. S.** (1979) Robust locally weighted regression and smoothing scatter plots. J. American Statistical Association 74, 829–836.\\n>\\n> **Cleveland, W. S.** (1981) LOWESS: A program for smoothing scatter plots by robust locally weighted regression. The American Statistician 35, 54.\\n\\n@param `p` The degree for the polynomial fit of the regression\\n\\n@param `d` The delta radius (in time units) within which the local regression is computed only once (other points are interpolated). For very large datasets, it can be wise to set `d` > 0 to speed up the computations.\\n\\n@param `r` The number of robustifying iterations. The higher the value of `r`, the better the program is robust to outliers.\\n\\n@param `q` The bandwidth of the local regression. To obtain a good smoothing, it is advised to choose an odd number of at least 5.\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"signature\":\"RLOWESS( gts:GTS q:LONG r:LONG d:LONG p:LONG ): result:GTS\\nRLOWESS( gtsList:LIST<GTS> q:LONG r:LONG d:LONG p:LONG ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RLOWESS\"},\"RLP->\":{\"description\":\"The `RLP->` function decodes a byte array containing [Recursive Length Prefix](https://eth.wiki/fundamentals/rlp) encoded content.\\n\\nNote that numbers are decoded as their byte representation, not actual `LONG`s.\\n\\n@param `encoded` RLP encoded content to decode.\\n\\n@param `decoded` Result of decoding.\\n\\n\",\"signature\":\"RLP->( encoded:BYTES ): decoded:ANY\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.8.0\",\"OPB64name\":\"JZlFAIs\"},\"ROLL\":{\"description\":\"`ROLL` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element at level *N* to the top of the stack and moving the other elements up one level.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"signature\":\"ROLL( eltN:ANY elt2:ANY elt1:ANY N:LONG ): elt2:ANY elt1:ANY eltN:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLL\"},\"ROLLD\":{\"description\":\"`ROLLD` consumes a number *N* off the stack then cycles through that number of elements on the stack, moving the element on top of the stack to level *N* and moving the other *N-1* elements down the stack.\\n\\n@param `N` The number of elements to cycle through\\n\\n@param `elt1` The first element to move\\n\\n@param `elt2` The second element to move\\n\\n@param `eltN` The Nth element to move\\n\\n\",\"signature\":\"ROLLD( eltN:ANY elt2:ANY elt1:ANY N:LONG ): elt1:ANY eltN:ANY elt2:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROLLD\"},\"ROT\":{\"description\":\"`ROT` cycles through the 3 topmost elements of the stack by moving the element at level 3 to the top of the stack and pushing the other 2 elements up the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n@param `level3` The element at the third level of the stack prior to the function execution\\n\\n\",\"signature\":\"ROT( level3:ANY level2:ANY top:ANY ): level2:ANY top:ANY level3:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROT\"},\"ROTATIONQ\":{\"description\":\"The `ROTATIONQ` function consumes on the stack 4 doubles representing a rotation vector and pushes back [quaternion](https://en.wikipedia.org/wiki/Quaternion) representation into a long.\\n\\n@param `quaternion` The quaternion representation\\n\\n@param `angle` The angle of the vector\\n\\n@param `x` The X coordinate of the vector\\n\\n@param `y` The Y coordinate of the vector\\n\\n@param `z` The Z coordinate of the vector\\n\\n\",\"signature\":\"ROTATIONQ( x:DOUBLE y:DOUBLE z:DOUBLE angle:DOUBLE ): quaternion:QUATERNION\",\"tags\":[\"quaternions\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROTATIONQ\"},\"ROUND\":{\"description\":\"The `ROUND` function consumes a numeric parameter from the top of the stack and pushes back the long number the closest to the parameter.\\n\\n@param `input` Input to round.\\n\\n@param `output` Input rounded to the nearest Long.\\n\\n\",\"signature\":\"ROUND( input:NUMBER ): output:LONG\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ROUND\"},\"RSADECRYPT\":{\"description\":\"Decrypts content encrypted with an RSA key.\\n\\n@param `key` RSA key to use for decryption (a public key if content was encrypted with a private key, a private key otherwise).\\n\\n@param `cipher` Encrypted data.\\n\\n@param `data` Cleartext data.\\n\\n\",\"signature\":\"RSADECRYPT( cipher:BYTES key:KEY ): data:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSADECRYPT\"},\"RSAENCRYPT\":{\"description\":\"Encrypts a byte array using an RSA key (either public or private).\\n\\n@param `key` Instance of the RSA private or public key to use for encryption.\\n\\n@param `data` Data to encrypt.\\n\\n@param `encrypted` Ciphered version of `data`.\\n\\n\",\"signature\":\"RSAENCRYPT( data:BYTES key:KEY ): encrypted:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAENCRYPT\"},\"RSAGEN\":{\"description\":\"Generates an RSA public key pair.\\n\\n@param `keylen` Key length in bits.\\n\\n@param `publicExponent` RSA public exponent, typically 65537.\\n\\n@param `pubkeyparams` Parameters of the generated RSA public key. Can be converted to a public key using [`RSAPUBLIC`](/doc/RSAPUBLIC).\\n\\n@param `privkeyparams` Parameters of the generated RSA privsate key. Can be converted to a private key using [`RSAPRIVATE`](/doc/RSAPRIVATE)\\n\\n\",\"signature\":\"RSAGEN( publicExponent:LONG keylen:LONG ): privkeyparams:MAP pubkeyparams:MAP\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAGEN\"},\"RSAPRIVATE\":{\"description\":\"Creates an RSA private key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `privkeyparams` Map of private key parameters.\\n\\n@param `privkey` RSA private key instance.\\n\\n\",\"signature\":\"RSAPRIVATE( privkeyparams:MAP ): privkey:KEY\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPRIVATE\"},\"RSAPUBLIC\":{\"description\":\"Creates an RSA public key from a map of key parameters such as the one generated by [`RSAGEN`](/doc/RSAGEN).\\n\\n@param `pubkeyparams` Map of public key parameters.\\n\\n@param `pubkey` RSA public key instance.\\n\\n\",\"signature\":\"RSAPUBLIC( pubkeyparams:MAP ): pubkey:KEY\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAPUBLIC\"},\"RSASIGN\":{\"description\":\"Signs a byte array with an RSA private key.\\n\\n@param `privkey` RSA private key to use for signing.\\n\\n@param `alg` Name of algorithm to use for computing the data fingerprint. Supported algorithms are those provided by [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `data` Data to sign.\\n\\n@param `signature` Computed signature.\\n\\n\",\"signature\":\"RSASIGN( data:BYTES alg:STRING privkey:KEY ): signature:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSASIGN\"},\"RSAVERIFY\":{\"description\":\"The `RSAVERIFY` function verify a signature generated with [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) cryptosystem and a hash algorithm.\\n\\nAlgorithms are those supported by [BouncyCastle](http://stackoverflow.com/questions/8778531/bouncycastle-does-not-find-algorithms-that-it-provides).\\n\\n@param `pubkey` RSA public key to use for verifying the signature.\\n\\n@param `alg` Algorithm used for generating the signature. See [BouncyCastle](https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/provider/JDKDigestSignature.html).\\n\\n@param `signature` Signature to verify.\\n\\n@param `content` Signed content.\\n\\n@param `verified` Status of the signature verification.\\n\\n\",\"signature\":\"RSAVERIFY( content:BYTES signature:BYTES alg:STRING pubkey:KEY ): verified:BOOLEAN\",\"tags\":[\"crypto\"],\"since\":\"1.0.11\",\"OPB64name\":\"RSAVERIFY\"},\"RSORT\":{\"description\":\"Sort Geo Time Series™ values (and associated locations/elevations) by reverse order of their ticks (i.e. most recent ticks first).\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"signature\":\"RSORT( gts:GTS ): result:GTS\\nRSORT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RSORT\"},\"RTFM\":{\"description\":\"The `RTFM` function pushes onto the stack the URL of the Warp 10 documentation, so whenever you are lost you can rapidly retrieve the URL you need to get back on track!\\n\\n@param `url` URL of the Warp 10 documentation.\\n\\n\",\"signature\":\"RTFM(): url:STRING\",\"tags\":[\"misc\",\"help\"],\"since\":\"1.0.7\",\"OPB64name\":\"RTFM\"},\"RUN\":{\"description\":\"The `RUN` function attempts to execute the macro whose name is on top of the stack. It is equivalent to `@macro` if called with `macro` on top of the stack.\\n\\n@param `macroName` Name of macro to execute, without a leading '@'\\n\\n@param `macroRegister` Register number in which the macro is stored, without a leading '@'\\n\\n\",\"signature\":\"RUN( macroName:STRING ): \\nRUN( macroRegister:LONG ): \",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"RUN\"},\"RUNNERAT\":{\"description\":\"`RUNNERAT` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds, starting at the Warp 10 instance start. \\n`RUNNERAT` allow to dynamically schedule the next run to an absolute timestamp before the period defined in the path. Combined with `RUNNERIN`, `RUNNERAT` can be used to schedule the next run to an absolute timestamp whatever the period defined in the path. See examples below.\\n\\n`RUNNERAT` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERAT to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond offset to now allowed for `RUNNERAT`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `t` reschedule timestamp in platform time unit. Next iteration will be at scheduled at t.\\n\\n\",\"signature\":\"RUNNERAT( t:LONG ): \",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERAT\"},\"RUNNERIN\":{\"description\":\"`RUNNERIN` has no effect has soon as `runner.endpoint` configuration is defined (typically on Warp 10 distributed version).\\n\\nRunners period is defined by the path of the WarpScript file. Typically, `/opt/warp10/warpscripts/myapp/60000/myrunner.mc2` will be scheduled every 60 seconds. \\n`RUNNERIN` allow to dynamically schedule the next run, overriding the period defined in the path. See also `RUNNERAT` to schedule next run at an absolute time.\\n\\n`RUNNERIN` careless use may bring problems: If a runner is planified every hour, and the execution time is 10 minutes, calling RUNNERIN to reschedule the runner every minute will lead to saturate a runner thread.\\nThat's why the usage is restricted to a capability. Use [`CAPADD`](/doc/CAPADD) to add `runner.reschedule.min.period` capability from a read or write token at runtime.\\n\\n`runner.reschedule.min.period` capability must contain the minimum of millisecond allowed for `RUNNERIN`. See example below. This capability also overrides `runner.minperiod` configuration.\\n\\nExamples are available [here](https://blog.senx.io/runners-dynamic-scheduling/) on our blog.\\n\\n\\n@param `p` reschedule period in platform time unit. Next iteration will be at scheduled at runnerstart + p\\n\\n\",\"signature\":\"RUNNERIN( p:LONG ): \",\"tags\":[\"stack\"],\"since\":\"2.10.2\",\"OPB64name\":\"RUNNERIN\"},\"RUNNERNONCE\":{\"description\":\"The `RUNNERNONCE` function decrypts the content of a runner *nonce* as generated when a script is executed by a Warp 10 runner instance.\\n\\nWhen a script is executed by a runner instance, the following symbols are defined when the script is invoked:\\n\\n| Symbol | Description |\\n| --- | --- |\\n| `runner.periodicity` | Periodicity at which the script is supposed to run, in ms. |\\n| `runner.path` | Path of the script. |\\n| `runner.scheduledat` | Time at which the current execution was scheduled, in ms since the [UNIX Epoch](). |\\n| `runner.nonce` | Encrypted time of execution, in time units since the [UNIX Epoch](). |\\n\\nNote that if the runner pre-shared key is not configured via `runner.psk`, the `RUNNERNONCE` function will push `NULL` onto the stack. Note that in this case, the `runner.nonce` symbol will not be defined.\\n\\n@param `nonce` Runner *nonce* as stored in `runner.nonce`.\\n\\n@param `time` Time retrieved from the *nonce*.\\n\\n\",\"signature\":\"RUNNERNONCE( nonce:STRING ): time:LONG\",\"tags\":[\"stack\"],\"since\":\"1.2.7\",\"OPB64name\":\"RUNNERNONCE\"},\"RUNR\":{\"description\":\"Run the macro currently contained in the designated register.\\n\\nThe `RUNR` function is really a family of functions named `RUNRx` where `x` is a register number. The default registers supported by Warp 10™ are numbered 0 to 255.\\n\\n\",\"signature\":\"RUNR(): \",\"tags\":[\"maps\"],\"since\":\"2.7.0\",\"OPB64name\":\"RUNR\"},\"RVALUESORT\":{\"description\":\"Sort Geo Time Series™ values (and associated locations/elevations) by by reverse order of their values.\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `result` A sorted Geo Time Series™\\n\\n@param `resultList` A list of sorted Geo Time Series™\\n\\n\",\"signature\":\"RVALUESORT( gts:GTS ): result:GTS\\nRVALUESORT( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"RVALUESORT\"},\"SAVE\":{\"description\":\"The `SAVE` function pushes onto the stack a *context* object which contains all the symbols currently defined in the current stack. This context can be passed as a parameter to the [`RESTORE`](doc/RESTORE) function to later reset the symbol table to the state store in the context. Any symbol created after the context was saved and before it is restored will be discarded when `RESTORE` is called.\\n\\n@param `context` Stack context, suitable as a parameter to [`RESTORE`](doc/RESTORE).\\n\\n\",\"signature\":\"SAVE(): context:CONTEXT\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SAVE\"},\"SCALB\":{\"description\":\"The `SCALB` function consumes a scale factor *scaleFactor* and a numeric parameter *d* and pushes back <math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>d</mi><mo>&#xD7;</mo><msup><mn>2</mn><mi>scaleFactor</mi></msup></math>. The scale factor must fit into an INT.\\n\\n@param `scaleFactor` The scaling factor, must fit into an INT\\n\\n@param `d` The value to be scaled\\n\\n@param `result` The scaled value\\n\\n\",\"signature\":\"SCALB( d:NUMBER scaleFactor:LONG ): result:TYPE\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SCALB\"},\"SECTION\":{\"description\":\"The `SECTION` function modifies the value of the *section* attribute of the stack. This value appears in the error messages and can therefore help you debug your WarpScript code. Typically, the `SECTION` function is used to separate your code in different logical units.\\n\\n@param `section` Name to assign to the *section* attribute.\\n\\n\",\"signature\":\"SECTION( section:STRING ): \",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.2.7\",\"OPB64name\":\"SECTION\"},\"SECURE\":{\"description\":\"The `SECURE` function encrypts a STRING representing a WarpScript code fragment using the platform's secure script cryptographic key and the current secret set via [`SECUREKEY`](doc/SECUREKEY).\\n\\nSecure scripts can also be created using the `<S .... S>` syntax.\\n\\n@param `script` Cleartext version of the WarpScript fragment to encrypt.\\n\\n@param `encrypted` Encrypted secure script.\\n\\n\",\"signature\":\"SECURE( script:STRING ): encrypted:STRING\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.2.11\",\"OPB64name\":\"SECURE\"},\"SECUREKEY\":{\"description\":\"The `SECUREKEY` function sets the secret which will be used to decrypt further secure scripts.\\n\\nSecure scripts are WarpScript fragments which are encrypted with a cryptographic key specific to the platform they were created on. They can be executed on a platform configured with the same cryptographic key.\\n\\n@param `key` Secret to use for unlocking the cleartext versions of future secure scripts.\\n\\n\",\"signature\":\"SECUREKEY( key:STRING ): \",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SECUREKEY\"},\"SENSISION.DUMP\":{\"description\":\"The `SENSISION.DUMP` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) metrics in the JVM.\\n\\nThe STRING produced by `SENSISION.DUMP` can be parsed using `PARSE`.\\n\\n@param `valueTimestamp` Flag indicating whether to dump the Geo Time Series™ with the timestamp of last updates or the timestamp at which the value is read.\\n\\n@param `dump` Latest values of all Geo Time Series™ known to Sensision in Geo Time Series™ output input.\\n\\n\",\"signature\":\"SENSISION.DUMP( valueTimestamp:BOOLEAN ): dump:STRING\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMP\"},\"SENSISION.DUMPEVENTS\":{\"description\":\"The `SENSISION.DUMPEVENTS` function produces a STRING representing the current values of all [Sensision](https://github.com/senx/sensision) events in the events history.\\n\\nThe STRING produced by `SENSISION.DUMPEVENTS` can be parsed using `PARSE`.\\n\\nNote that if the system property `sensision.events.history` is not set to a value greater than 0, the function will always return an empty STRING.\\n\\nThe Sensision event history is a circular buffer.\\n\\n@param `dump` Latest values of all events in the Sensision event history.\\n\\n\",\"signature\":\"SENSISION.DUMPEVENTS(): dump:STRING\",\"tags\":[\"extensions\"],\"since\":\"2.1.0\",\"OPB64name\":\"SENSISION.DUMPEVENTS\"},\"SENSISION.EVENT\":{\"description\":\"The `SENSISION.EVENT` function creates a [Sensision](https://github.com/senx/sensision) event.\\n\\n@param `class` Name of the class of the Sensision event to emit.\\n\\n@param `labels` Map of label names to values, both STRINGs of the Sensision event.\\n\\n@param `value` Value associated with the event.\\n\\n@param `ts` Optional timestamp for the event (in Sensision time units), if omitted, the current timestamp will be used.\\n\\n\",\"signature\":\"SENSISION.EVENT( [ class:STRING labels:MAP value:LONG ] ): \\nSENSISION.EVENT( [ class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.EVENT( [ class:STRING labels:MAP value:STRING ] ): \\nSENSISION.EVENT( [ class:STRING labels:MAP value:BOOLEAN ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:LONG ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:STRING ] ): \\nSENSISION.EVENT( [ ts:LONG class:STRING labels:MAP value:BOOLEAN ] ): \",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.EVENT\"},\"SENSISION.GET\":{\"description\":\"The `SENSISION.GET` function reads the current value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to read.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to read.\\n\\n@param `selector` Geo Time Series™ selector (`class{labels}`) of the Sensision metric to read.\\n\\n@param `gts` A Geo Time Series™ containing the current value of the Sensision metric. If the metric does not exist, the resulting GTS will be empty.\\n\\n\",\"signature\":\"SENSISION.GET( selector:STRING ): gts:GTS\\nSENSISION.GET( class:STRING labels:MAP ): gts:GTS\",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.GET\"},\"SENSISION.SET\":{\"description\":\"The `SENSISION.SET` function sets a value for a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `value` Value to assign to the Sensision metric.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"signature\":\"SENSISION.SET( [ class:STRING labels:MAP value:LONG ] ): \\nSENSISION.SET( [ class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.SET( [ class:STRING labels:MAP value:STRING ] ): \\nSENSISION.SET( [ class:STRING labels:MAP value:BOOLEAN ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:LONG ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:DOUBLE ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:STRING ] ): \\nSENSISION.SET( [ ttl:LONG class:STRING labels:MAP value:BOOLEAN ] ): \",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.SET\"},\"SENSISION.UPDATE\":{\"description\":\"The `SENSISION.UPDATE` function updates the numerical value of a [Sensision](https://github.com/senx/sensision) metric.\\n\\n@param `class` Name of the class of the Sensision metric to set.\\n\\n@param `labels` Map of label names to values, both STRINGs for the Sensision metric to set.\\n\\n@param `delta` Delta to add to the current value of the Sensision metric. If the metric does not exist it will be created with this value.\\n\\n@param `ttl` Optional Time To Live of the metric, if the metric is not updated/set within that number of milliseconds, Sensision will discard it.\\n\\n\",\"signature\":\"SENSISION.UPDATE( [ class:STRING labels:MAP delta:LONG ] ): \\nSENSISION.UPDATE( [ class:STRING labels:MAP delta:DOUBLE ] ): \\nSENSISION.UPDATE( [ class:STRING labels:MAP delta:LONG ttl:LONG ] ): \\nSENSISION.UPDATE( [ class:STRING labels:MAP delta:DOUBLE ttl:LONG ] ): \",\"tags\":[\"extensions\"],\"since\":\"1.1.0\",\"OPB64name\":\"SENSISION.UPDATE\"},\"SET\":{\"description\":\"The `SET` function replaces item at specified index in a list.\\nIf the index is greater than the size of the list, it will raise an error.\\n\\nWhen used on a **BYTE ARRAY**, SET replaces the byte by the byte value. The byte value, signed or not, must be in the range of [-128,255].\\n\\nSince 2.1, the index can be negative. In this case the effective index is index + size of the **LIST** or **BYTE ARRAY**.\\n\\nSince 2.1, SET can set an element in a nested list. In this case, the index is a list.\\n\\n@param `index` The index in the list, 0 for the first item.\\n\\n@param `inputlist` The input list to modified.\\n\\n@param `outputlist` The input list modified,  this is not a new list object.\\n\\n@param `item` The item to update in the inputlist at index, could be any type.\\n\\n@param `array` Byte array to which write a byte.\\n\\n@param `bytevalue` The value of the byte, signed or unsigned (from -128 to 255).\\n\\n@param `outputarray` The input byte array modified, this is not a new byte array.\\n\\n\",\"signature\":\"SET( inputlist:LIST item:ANY index:LONG ): outputlist:LIST\\nSET( inputlist:LIST item:ANY index:LIST ): outputlist:LIST\\nSET( array:BYTES bytevalue:LONG index:LONG ): outputarray:LIST\",\"tags\":[\"lists\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SET\"},\"SET->\":{\"description\":\"The `SET->` function converts the set on top of the stack into a **LIST**.\\n\\n@param `input` Input set.\\n\\n@param `output` A list containing input elements.\\n\\n\",\"signature\":\"SET->( input:SET ): output:LIST\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"JoKJAIs\"},\"SETATTRIBUTES\":{\"description\":\"Modifies the attributes of a Geo Time Series™, an encoder or a list thereof. The `SETATTRIBUTES` function expects a parameter MAP whose entries are attributes to set or alter.\\n\\nIf the parameter MAP has an entry with a NULL key, the `SETATTRIBUTES` function will use the rest of the MAP as the actual attributes to set for the GTS. If no NULL key exist, then the other entries of the MAP will alter the existing attributes.\\n\\nAn entry with an empty STRING value will have the effect of removing the attribute from the attributes of the GTSs or encoders.   \\n\\n@param `attributes` Parameter map of attributes names to values.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lencoder` List of Encoders.\\n\\n@param `encoder` Encoder to relabel\\n\\n\",\"signature\":\"SETATTRIBUTES( gts:GTS attributes:MAP ): gts:GTS\\nSETATTRIBUTES( lgts:LIST<GTS> attributes:MAP ): lgts:LIST<GTS>\\nSETATTRIBUTES( encoder:GTSENCODER attributes:MAP ): encoder:GTSENCODER\\nSETATTRIBUTES( lencoder:LIST<GTS> attributes:MAP ): lencoder:LIST<GTS>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETATTRIBUTES\"},\"SETMACROCONFIG\":{\"description\":\"The `SETMACROCONFIG` function allows you to set or modify the value of a configuration key accessible via the [`MACROCONFIG`](/doc/MACROCONFIG) or [`MACROCONFIGDEFAULT`](/doc/MACROCONFIGDEFAULT) functions or via the runner script variable expansion.\\n\\nThis function can only be used if the `warpscript.macroconfig.secret` is set in the Warp 10™ configuration.\\n\\nThe configuration keys which can be set using `SETMACROCONFIG` must have the format `key@path/tomacro` or `key@/path/to/runner/script`.\\n\\nSetting the value of a configuration key to `NULL` has the effect of removing the configuration key altogether.\\n\\n@param `key` Configuration key to set.\\n\\n@param `secret` Macro config secret.\\n\\n@param `value` String value to set for the key or `NULL`.\\n\\n\",\"signature\":\"SETMACROCONFIG( value:STRING key:STRING secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.1.0\",\"OPB64name\":\"SETMACROCONFIG\"},\"SETVALUE\":{\"description\":\"The `SETVALUE` function adds a value to a GTS or override an existing value. If the tick already exists, this function will overwrite the first one it encounters in the GTS. If the tick does not exist, it is appended. \\nThe [`ADDVALUE`](/doc/ADDVALUE) function adds a value to a GTS but do not override an existing value.\\n\\nThe `SETVALUE` function only works on GTS, not on lists of GTS like those generated by the use of [`FETCH`](/doc/FETCH).\\nIf you want to use `SETVALUE` after a [`FETCH`](/doc/FETCH), you will need to extract the GTS from the list, using [`GET`](/doc/GET) for instance.\\n\\n@param `value` Value of the tick\\n\\n@param `gts` Geo Time Serie\\n\\n@param `tick` Timestamp\\n\\n@param `latitude` Latitude or NaN\\n\\n@param `longitude` Longitude or NaN\\n\\n@param `elevation` Elevation or NaN\\n\\n@param `result` modified Geo Time Series™\\n\\n\",\"signature\":\"SETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:STRING ): result:GTS\\nSETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:BOOLEAN ): result:GTS\\nSETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:DOUBLE ): result:GTS\\nSETVALUE( gts:GTS tick:LONG latitude:DOUBLE longitude:DOUBLE elevation:LONG value:LONG ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SETVALUE\"},\"SHA1\":{\"description\":\"The `SHA1` function digests a byte array on the stack with the cryptographic hash function [SHA-1](https://en.wikipedia.org/wiki/SHA-1).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA1( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1\"},\"SHA1HMAC\":{\"description\":\"The `SHA1HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-1](https://en.wikipedia.org/wiki/SHA-1) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"signature\":\"SHA1HMAC( message:BYTES secret:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA1HMAC\"},\"SHA224\":{\"description\":\"The `SHA224` function digests a byte array on the stack with the cryptographic hash function [SHA-224](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA224( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA224\"},\"SHA256\":{\"description\":\"The `SHA256` function digests a byte array on the stack with the cryptographic hash function [SHA-256](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA256( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256\"},\"SHA256HMAC\":{\"description\":\"The `SHA256HMAC` function computes a Hash-based Message Authentication Code [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) \\nthat uses a key in conjunction with a [SHA-256](https://en.wikipedia.org/wiki/SHA-2) cryptographic hash function.\\n\\n@param `secret` Secret key into byte array\\n\\n@param `message` Message string into byte array\\n\\n@param `result` MAC (message authentication code) byte array\\n\\n\",\"signature\":\"SHA256HMAC( message:BYTES secret:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"1.2.0\",\"OPB64name\":\"SHA256HMAC\"},\"SHA3.224\":{\"description\":\"The `SHA3.224` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA3.224( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.224\"},\"SHA3.256\":{\"description\":\"The `SHA3.256` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA3.256( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.256\"},\"SHA3.384\":{\"description\":\"The `SHA3.384` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA3.384( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.384\"},\"SHA3.512\":{\"description\":\"The `SHA3.512` function digests a byte array on the stack with the hash function [SHA-3](https://en.wikipedia.org/wiki/SHA-3).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA3.512( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA3.512\"},\"SHA384\":{\"description\":\"The `SHA384` function digests a byte array on the stack with the cryptographic hash function [SHA-384](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA384( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA384\"},\"SHA512\":{\"description\":\"The `SHA512` function digests a byte array on the stack with the cryptographic hash function [SHA-512](https://en.wikipedia.org/wiki/SHA-2).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"SHA512( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"SHA512\"},\"SHAPE\":{\"description\":\"Return the shape of an input list if it could be a tensor (or multidimensional array), or raise an Exception.\\n\\n@param `fast` If true, it does not check if the sizes of the nested lists are coherent and it returns a shape based on the first nested lists at each level. Default to false.\\n\\n@param `list` The input list.\\n\\n@param `shape` The shape of the input list.\\n\\n\",\"signature\":\"SHAPE( list:LIST ): shape:LIST\\nSHAPE( list:LIST fast:BOOLEAN ): shape:LIST\",\"tags\":[\"lists\",\"tensors\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHAPE\"},\"SHMDEFINED\":{\"description\":\"The `SHMDEFINED` function checks whether a shared symbol exists in shared memory, *i.e.* in a memory location independent of a given execution context. It return true if it exists, false otherwise.\\n\\nAs unused symbols can be removed from shared memory because of the `shm.ttl` configuration, a call to `SHMDEFINED` ensures that, within the same [`MUTEX`](/doc/MUTEX) call, a call to [`SHMLOAD`](/doc/SHMLOAD) on the same symbol name will not fail.\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `exists` Whether `symbol` exists or not.\\n\\n\",\"signature\":\"SHMDEFINED( symbol:STRING ): exists:BOOLEAN\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.7.2\",\"OPB64name\":\"SHMDEFINED\"},\"SHMLOAD\":{\"description\":\"The `SHMLOAD` function loads data previously stored by [`SHMSTORE`](/doc/SHMSTORE) in shared memory, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the requested shared symbol is not known or if the calling script does not currently hold the mutex associated with the symbol.\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to retrieve.\\n\\n@param `object` Object currently stored under `symbol`.\\n\\n\",\"signature\":\"SHMLOAD( symbol:STRING ): object:ANY\",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMLOAD\"},\"SHMSTORE\":{\"description\":\"The `SHMSTORE` function stores an object in a named shared memory location, *i.e.* in a memory location independent of a given execution context.\\n\\nThe call will fail if the calling script is not currently holding a mutex (in a call to [`MUTEX`](/doc/MUTEX)). The call will have no effect if the named memory location was already set by a previous call to `SHMSTORE`.\\n\\nIn order to overwrite a shared memory location, its content must first be cleared by storing [`NULL`](/doc/NULL).\\n\\nIf the calling script currently holds a mutex, this mutex will be associated with the shared memory location, the same mutex will have to be held when retrieving the content of the memory location via [`SHMLOAD`](/doc/SHMLOAD).\\n\\nThe `shm.ttl` configuration, in millisecond, allow you to tune the retention time in memory. Default value is one hour. Tip: you can call [`SHMLOAD`](/doc/SHMLOAD) in a runner with a period shorter than `shm.ttl` if you want to keep value in memory indefinitely.\\n\\nUsage examples are available [here](https://blog.senx.io/speeding-up-your-analytics-with-shm/) on our blog.\\n\\n\\n@param `symbol` Name of shared symbol to store.\\n\\n@param `object` Object to store under `symbol` or `NULL` to clear its content.\\n\\n\",\"signature\":\"SHMSTORE( object:ANY symbol:STRING ): \",\"tags\":[\"extensions\",\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"SHMSTORE\"},\"SHOW\":{\"description\":\"The `SHOW` function makes visible some levels of the stack which were previously hidden by a call to [`HIDE`](/doc/HIDE).\\n\\nThe levels made visible are the ones closest to the top of the stack. Depending on the `levels` parameter to the call to `SHOW`, the revealed levels could be the whole stack (`levels` == 0), a maximum number of levels (`levels` >= 0) or a number of levels such that there are at most a certain number ((*abs(`levels`)*) with `levels` < 0) of visible levels after the call.\\n\\nWhen called with `NULL` as parameter, `SHOW` wil reveal all levels currently hidden.\\n\\n@param `levels` Number of levels to reveal, or `NULL` to reveal them all.\\n\\n\",\"signature\":\"SHOW( levels:LONG ): \",\"tags\":[\"stack\"],\"since\":\"2.7.1\",\"OPB64name\":\"SHOW\"},\"SHRINK\":{\"description\":\"Shrink the number of values of a Geo Time Series™ to `size`. The oldest values are kept if `size` is non negative. The earliest ones are kept in the other case.\\n\\nThis function has the side effect of sorting the Geo Time Series™. If the Geo Time Series™ has fewer than `size` values the function raises an error.\\n\\n@param `size` Size used to shrink the Geo Time Series™\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `result` A shrinked Geo Time Series™\\n\\n\",\"signature\":\"SHRINK( gts:GTS size:LONG ): result:GTS\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SHRINK\"},\"SHUFFLE\":{\"description\":\"The `SHUFFLE` function shuffles a list.\\n\\nIf it is not a list, it raises an error. The original list is modified.\\n\\n@param `input` The reference of the list to shuffle\\n\\n@param `shuffled` The original list shuffled, this is not a new list object\\n\\n\",\"signature\":\"SHUFFLE( input:LIST ): shuffled:LIST\",\"tags\":[\"lists\"],\"since\":\"2.1.0\",\"OPB64name\":\"SHUFFLE\"},\"SIGNUM\":{\"description\":\"The `SIGNUM` function consumes a numeric parameter from the top of the stack and pushes back its signum.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Signum, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `lvalue` List of numeric value\\n\\n@param `lresult` List of signum for each given value, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are signum of the given GTS values, i.e. it returns -1 if the parameter is negative, 1 if positive and 0 if it is 0.\\n\\n\",\"signature\":\"SIGNUM( value:NUMBER ): result:DOUBLE\\nSIGNUM( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSIGNUM( gts:GTS ): gtsresult:GTS\",\"tags\":[\"operators\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIGNUM\"},\"SIN\":{\"description\":\"The `SIN` function consumes a floating point number from the top of the stack and pushes back its sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Sine of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the sine of the given GTS values\\n\\n\",\"signature\":\"SIN( value:NUMBER ): result:DOUBLE\\nSIN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSIN( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIN\"},\"SINGLEEXPONENTIALSMOOTHING\":{\"description\":\"The `SINGLEEXPONENTIALSMOOTHING` function takes a Geo Time Series™ and smooths it with the\\n[additive Simple Exponential Smoothing](https://www.otexts.org/fpp/7/1) formula.\\n\\nIt consumes two parameters from the top of the stack:\\n * A level smoothing factor alpha (a numeric parameter between 0 < alpha < 1)\\n * The GTS to smooth\\n\\n The resulting smoothed **GTS** is pushed onto the stack.\\n\\n@param `alpha` The level smoothing factor, it should be strictly between 0.0 and 1.0, the lower the smoother\\n\\n@param `gts` The Geo Time Series™ to smooth\\n\\n@param `result` The smoothed Geo Time Series™\\n\\n\",\"signature\":\"SINGLEEXPONENTIALSMOOTHING( gts:GTS alpha:DOUBLE ): result:GTS\",\"tags\":[\"gts\",\"statistics\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINGLEEXPONENTIALSMOOTHING\"},\"SINH\":{\"description\":\"The `SINH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic sine.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic sine of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic sine of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic sine of the given GTS values\\n\\n\",\"signature\":\"SINH( value:NUMBER ): result:DOUBLE\\nSINH( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSINH( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"SINH\"},\"SIZE\":{\"description\":\"Returns the size of the input parameter.\\n\\nThe `SIZE` function computes the size of a LIST, MAP, GTS or ENCODER (number of values), STRING, byte array MACRO (number of statements)  or GEOSHAPE (number of cells).\\n\\n@param `input` The input parameter\\n\\n@param `size` The size of the input parameter\\n\\n\",\"signature\":\"SIZE( input:LIST ): size:LONG\\nSIZE( input:MAP ): size:LONG\\nSIZE( input:GTS ): size:LONG\\nSIZE( input:STRING ): size:LONG\\nSIZE( input:BYTES ): size:LONG\\nSIZE( input:GEOSHAPE ): size:LONG\\nSIZE( input:GTSENCODER ): size:LONG\\nSIZE( input:SET ): size:LONG\\nSIZE( input:MACRO ): size:LONG\",\"tags\":[\"strings\",\"lists\",\"maps\",\"gts\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"SIZE\"},\"SKEWNESS\":{\"description\":\"The `SKEWNESS` function computes the [skewness](https://en.wikipedia.org/wiki/Skewness) of a Geo Time Series™.\\n\\n@param `bessel` Boolean indicating whether or not to apply [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction) when computing the skewness.\\n\\n@param `gts` Non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `lgts` List of non empty numerical Geo Time Series™ for which to compute the skewness.\\n\\n@param `skewness` Computed skewness of the Geo Time Series™ instance.\\n\\n@param `lskewness` List of computed skewness of the Geo Time Series™ instances.\\n\\n\",\"signature\":\"SKEWNESS( gts:GTS bessel:BOOLEAN ): skewness:DOUBLE\\nSKEWNESS( lgts:LIST<GTS> bessel:BOOLEAN ): lskewness:LIST<DOUBLE>\",\"tags\":[\"statistics\",\"gts\"],\"since\":\"1.2.13\",\"OPB64name\":\"SKEWNESS\"},\"SMARTPARSE\":{\"description\":\"The `SMARTPARSE` function parses STRING values, either from a single STRING parameter or from STRING Geo Time Series™, and produces a number of GTS from the parsed data.\\n\\nThe parsing is done according to a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) which contains [named capturing groups](https://www.regular-expressions.info/named.html) with the Java/.NET syntax, *i.e.* `(?<name>...)`.\\n\\nThe captured group is interpreted differently based on the syntax of the name.\\n\\n| Syntax | Interpretation |\\n| --- | --- |\\n| Lxxx | Captured content is used as the value of label `xxx` |\\n| TU | Captured group is interpreted as a timestamp in unit `U` from the [UNIX Epoch](https://en.wikipedia.org/wiki/Unix_time) origin. Valid values for U are `s`, `ms`, `us`, `ns` |\\n| lat | Captured group is interpreted as the latitude if another group named `lon` is also present |\\n| lon | Captured group is interpreted as the longitude if another group named `lat` is also present |\\n| elevU | Captured group is interpreted as the elevation in unit `U`, where `U` can be `m`, `cm`, `mm`, `ft`, `km`, `mi`, `nm` (Nautical Mile). The value is parsed as a DOUBLE and converted to a LONG in `mm` |\\n| VTxxx | Captured group is interpreted as a value for a GTS with class `xxx`. The type of the value is determined by the value of `T` which can be `B`(oolean) `S`(tring) `L`(ong) or `D`(ouble) |\\n\\nThis function is ideally suited for parsing log messages and producing Geo Time Series™ from their content.\\n\\n@param `regexp` Regular expression to use for parsing. See the function description for the syntax to use.\\n\\n@param `string` String to parse\\n\\n@param `results` List of Geo Time Series™ created from the parsed data.\\n\\n@param `lresults` List of list of GTS created from the parsed data.\\n\\n@param `gts` STRING valued Geo Time Series™ whose values are to be parsed.\\n\\n@param `lgts` List of STRING valued GTS whose values are to be parsed.\\n\\n\",\"signature\":\"SMARTPARSE( string:STRING regexp:STRING ): results:LIST<GTS>\\nSMARTPARSE( gts:GTS regexp:STRING ): results:LIST<GTS>\\nSMARTPARSE( lgts:LIST<GTS> regexp:STRING ): lresults:LIST<LIST<GTS>>\",\"tags\":[\"gts\",\"strings\"],\"since\":\"1.2.13\",\"OPB64name\":\"SMARTPARSE\"},\"SNAPSHOT\":{\"description\":\"The `SNAPSHOT` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOT` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOT( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.0.6\",\"OPB64name\":\"SNAPSHOT\"},\"SNAPSHOTALL\":{\"description\":\"The `SNAPSHOTALL` functions acts similarly as [`SNAPSHOT`](/doc/SNAPSHOT) and produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTALL` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTALL( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALL\"},\"SNAPSHOTALLTOMARK\":{\"description\":\"The `SNAPSHOTALLTOMARK` functions acts similarly as [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) and produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTALLTOMARK` was called. It differs by the fact that it also adds code to repopulate the symbol table.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTALLTOMARK( mark:MARK stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTALLTOMARK\"},\"SNAPSHOTCOPY\":{\"description\":\"The `SNAPSHOTCOPY` function behaves like [`SNAPSHOT`](/doc/SNAPSHOT) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPY` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTCOPY( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPY\"},\"SNAPSHOTCOPYALL\":{\"description\":\"The `SNAPSHOTCOPYALL` function behaves like [`SNAPSHOTALL`](/doc/SNAPSHOTALL) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALL` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTCOPYALL( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALL\"},\"SNAPSHOTCOPYALLTOMARK\":{\"description\":\"The `SNAPSHOTCOPYALLTOMARK` function behaves like [`SNAPSHOTALLTOMARK`](/doc/SNAPSHOTALLTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack and its symbols as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYALLTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTCOPYALLTOMARK( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYALLTOMARK\"},\"SNAPSHOTCOPYN\":{\"description\":\"Performs a [`SNAPSHOTCOPY`](/doc/SNAPSHOTCOPY) on the top *N* elements of the stack.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTCOPYN( stack:ANY* n:LONG ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTCOPYN\"},\"SNAPSHOTCOPYTOMARK\":{\"description\":\"The `SNAPSHOTCOPYTOMARK` function behaves like [`SNAPSHOTTOMARK`](/doc/SNAPSHOTTOMARK) but does not consume the elements of the stack, instead it produces WarpScript code which will regenerate the stack as it was before the call and pushes this code on top of the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTCOPYTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTCOPYTOMARK( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.2.5\",\"OPB64name\":\"SNAPSHOTCOPYTOMARK\"},\"SNAPSHOTN\":{\"description\":\"Produces a WarpScript code fragment which will regenerate the *N* top levels of the stack. The content of those levels is consumed off the stack.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOT` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\n@param `n` The number of stack levels to snapshot\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTN( stack:ANY* n:LONG ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.2.13\",\"OPB64name\":\"SNAPSHOTN\"},\"SNAPSHOTREADABLE\":{\"description\":\"The `SNAPSHOTREADABLE` functions produces a STRING which contains WarpScript code to regenerate the stack in the exact same state as when `SNAPSHOTREADABLE` was called.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTREADABLE` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed.\\n\\nThis is similar to the [`SNAPSHOT`](/doc/SNAPSHOT) function but the output is easier to read for a human.\\n\\n@param `stack` The content of the stack before the call\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTREADABLE( stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"2.9.0\",\"OPB64name\":\"SNAPSHOTREADABLE\"},\"SNAPSHOTTOMARK\":{\"description\":\"The `SNAPSHOTTOMARK` functions produces a STRING which contains WarpScript code to regenerate the stack up to the first [`MARK`](/doc/MARK) in the exact same state as when `SNAPSHOTTOMARK` was called.\\n\\nThe [`MARK`](/doc/MARK) is consumed off the stack but will not be pushed back by the produced WarpScript code.\\n\\nNote that some types of objects created by third party functions may not be serializable, `SNAPSHOTTOMARK` will emit a STRING of the form `UNSUPPORTED: class xxx` when such a type is encountered.\\n\\nThe elements of the stack are consumed up to the mark.\\n\\n@param `stack` The stack elements below [`MARK`](/doc/MARK) which will be regenerated by the produced WarpScript code\\n\\n@param `mark` [`MARK`](/doc/MARK) which indicates the end of the stack levels to consider\\n\\n@param `snapshot` The WarpScript code to regenerate the stack\\n\\n\",\"signature\":\"SNAPSHOTTOMARK( mark:MARK stack:ANY* ): snapshot:STRING\",\"tags\":[\"stack\"],\"since\":\"1.0.7\",\"OPB64name\":\"SNAPSHOTTOMARK\"},\"SORT\":{\"description\":\"Sorts a Geo Time Series™ or each GTS of a list of GTS in ascending tick order.\\n\\n@param `gts` Single Geo Time Series™ instance to sort.\\n\\n@param `sgts` Sorted Geo Time Series™, this is the same instance as `gts`.\\n\\n@param `lgts` List of Geo Time Series™ instances to sort.\\n\\n@param `slist` List of sorted Geo Time Series™. Each instance is the same as the input one.\\n\\n\",\"signature\":\"SORT( gts:GTS ): sgts:GTS\\nSORT( lgts:LIST<GTS> ): slist:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"SORT\"},\"SORTBY\":{\"description\":\"The `SORTBY` function sorts a **LIST** or a **MAP** according to a value returned by a macro. The macro must return a value of the same type (LONG, DOUBLE or STRING) for each element.\\n\\nOnly **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nBefore release `1.2.22`, the `SORTBY` function could only sort lists of Geo Time Series™.\\n\\nBefore release `2.7.0`, the `SORTBY` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for sorting, consumes a list element off the stack and produces a LONG, DOUBLE or STRING value.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"signature\":\"SORTBY( list:LIST macro:MACRO ): lsorted:LIST\\nSORTBY( map:MAP macro:MACRO ): msorted:MAP\",\"tags\":[\"lists\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"SORTBY\"},\"SORTWITH\":{\"description\":\"The `SORTWITH` function sorts a **LIST** or a **MAP** according to a value returned by a comparison macro. Only **MAP**s of type [LinkedHashMap](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html), which are the most commons in WarpScript, can be sorted.\\n\\nIn used a on **LIST**, the comparison macro is given 2 elements of the **LIST** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest element in the stack is respectively strictly less than, equal to or strictly more than than the element on the stack.\\n\\nIn used a on **MAP**, the comparison macro is given 2 entries (key deepest, value shallowest) of the **MAP** and return a **LONG** which can be represented on 32 bits. The returned value must be negative, zero or positive if the deepest entry in the stack is respectively strictly less than, equal to or strictly more than than the shallowest entry on the stack.\\n\\nBefore release `2.7.0`, the `SORTWITH` function could only sort lists but not maps.\\n\\n@param `macro` Macro used for comparison, must consume two elements of the stack and produces a LONG.\\n\\n@param `list` List to sort.\\n\\n@param `map` Map to sort.\\n\\n@param `lsorted` Sorted list, same instance as `list`.\\n\\n@param `msorted` Sorted map, same instance as `map`.\\n\\n\",\"signature\":\"SORTWITH( list:LIST macro:MACRO ): lsorted:LIST\\nSORTWITH( map:MAP macro:MACRO ): msorted:MAP\",\"tags\":[\"lists\",\"gts\"],\"since\":\"2.2.0\",\"OPB64name\":\"SORTWITH\"},\"SPLIT\":{\"description\":\"The SPLIT function split a string in segments given a delimiter.\\n\\n\\nIt consumes two parameters from the top of the stack: the delimiter and the string to test matching with. The delimiter must be a string of length 1, i.e. only one character.\\n\\n\\nThe function will return a list with all the segments. If delimiter is not found, the output list contains the input string.\\n\\n@param `delimiter` One character delimiter.\\n\\n@param `s` The string to split\\n\\n@param `limit` The maximum size of the resulting **LIST**, must be positive. The last entry will contain all input beyond the last matched delimiter\\n\\n@param `result` List of strings.\\n\\n\",\"signature\":\"SPLIT( s:STRING delimiter:STRING ): result:LIST<STRING>\\nSPLIT( s:STRING delimiter:STRING limit:LONG ): result:LIST<STRING>\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"SPLIT\"},\"SQRT\":{\"description\":\"The `SQRT` function consumes a numeric parameter from the top of the stack and pushes back its square root.\\n\\nFor negative numbers, SQRT returns NaN.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value\\n\\n@param `result` Square root of the given value, NaN if it is negative.\\n\\n@param `lvalue` List of numeric values\\n\\n@param `lresult` List of square root of each given value, NaN if it is negative.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the square root of the given GTS values\\n\\n\",\"signature\":\"SQRT( value:NUMBER ): result:DOUBLE\\nSQRT( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nSQRT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"SQRT\"},\"SRAND\":{\"description\":\"The `SRAND` function pushes onto the stack a random DOUBLE between 0.0 (inclusive) and 1.0 (exlusive) generated by the seeded [Pseudorandom Number Generator (PRNG)](https://en.wikipedia.org/wiki/Pseudorandom_number_generator).\\n\\nThe seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThis generation is **NOT** cryptographically secure, use [RAND](/doc/RAND) if you need a secure random number.\\n\\n@param `num` Generated random number between 0 and 1.\\n\\n\",\"signature\":\"SRAND(): num:DOUBLE\",\"tags\":[\"math\"],\"since\":\"1.2.9\",\"OPB64name\":\"SRAND\"},\"SRANDPDF\":{\"description\":\"Pushes on the stack a function which emits values according to a provided value histogram.\\n\\nThe randomization is seeded. The seeded PRNG must have been initialized beforehand using [`PRNG`](/doc/PRNG).\\n\\nThe result is a function. This function does not have any arguments.\\n\\nTo use the function pushed by `SRANDPDF` onto the stack, use [`EVAL`](/doc/EVAL).\\n\\n@param `valueHistogram` the [value histogram](/doc/VALUEHISTOGRAM). The value histogram is a map whose keys are the values and the elements the cardinality at which they occur or their occurrence probability.\\n\\n@param `result` A function pushed onto the stack. This function will emits values.\\n\\n\",\"signature\":\"SRANDPDF( valueHistogram:MAP ): result:STRING\",\"tags\":[\"math\",\"statistics\"],\"since\":\"2.2.1\",\"OPB64name\":\"SRANDPDF\"},\"SSSS->\":{\"description\":\"The `SSSS->` retrieves a secret from `K` splits generated using `->SSSS`.\\n\\nNote that no check is performed to ensure that the retrieved secret is the expected one.\\n\\n@param `secret` Reconstructed secret.\\n\\n@param `splits` List of splits to use for reconstruction.\\n\\n\",\"signature\":\"SSSS->( splits:LIST<BYTES> ): secret:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.7.5\",\"OPB64name\":\"JpCIJmoy\"},\"SSTFIND\":{\"description\":\"Identifies Geo Time Series™ which MAY have data within a given key range, assuming those keys are bounds of an SST file.\\n\\nThis function is key to identifying which SST files should be purged using `SSTPURGE`.\\n\\nIf no token and selectors are specified in the parameter list of `SSTFIND`, all Geo Time Series™ will be considered, otherwise, only those matching the entered criteria will be used.\\n\\nThe return value of the `SSTFIND` function is a list of lists, each inner list containing 3 fields, `gts`, `mints`, `maxts`.\\n\\nThe `gts` field is either an actual empty Geo Time Series™, but with all metadata set, or `null`. If `gts` is not null, it means that the Geo Time Series™ **may** have data in the file given because its internal id falls within the key range. If `gts` is `null`, it means there is a Geo Time Series™ that may exist in the file but whose metadata (class and labels) were not matched by the provided selectors. This is a helpful hint to indicate that there may be some data in the file which belong to series you were not initially interested in.\\n\\nThe values of `mints` and `maxts` indicate between which timestamps `gts` may have datapoints. If the id of `gts` is not matched by either the smallest or largest key of the range, both `mints` and `maxts` will have extreme values (respectively `MINLONG` and `MAXLONG`). If the `gts` id matches one of the bounds, the `mints` and/or `maxts` fields will have more meaningful values.\\n\\nKeys of datapoints start with `0x52' (`R`), keys for metadata start with `0x4d` (`M`).\\n\\nWhen `SSTFIND` is called with metadata keys, the fields `mints` and `maxts` will be set to `null`.\\n\\nIf `SSTFIND` is called with keys for both metadata and data, an error is raised indicating that `SSTFIND` cannot determine what lies inside *hydrid* files.\\n\\nKeys invalid for both metadata and data will also lead to an *invalid key range* error.\\n\\n@param `secret` LevelDB secret.\\n\\n@param `smallestkey` Hex encoded lower key of the range to check.\\n\\n@param `largeskey` Hex encoded higher key of the range to check.\\n\\n@param `token` Warp 10™ read token to use for finding Geo Time Series™.\\n\\n@param `classSelector` Selector to use for identifying classes of Geo Time Series™.\\n\\n@param `labelsSelectors` Map of label selectors for matching Geo Time Series™.\\n\\n@param `report` Report about the Geo Time Series™ which may have data or metadata within the provided key range.\\n\\n\",\"signature\":\"SSTFIND( [ secret:STRING largeskey:STRING smallestkey:STRING ] ): report:LIST\\nSSTFIND( [ secret:STRING largeskey:STRING smallestkey:STRING labelsSelectors:MAP classSelector:STRING token:STRING ] ): report:LIST\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTFIND\"},\"SSTINFO\":{\"description\":\"Retrieves informations about a LevelDB SST file.\\n\\nThe `infos` map returned by `SSTINFO` contains the following entries:\\n\\n| Key | Description |\\n|-----|-------------|\\n| size | Size of SST file in bytes |\\n| creationTime | Creation time of the SST file in platform's time units. Note that on some architectures this information might be inaccurate due to limitations of the filesystem interaction by the JVM. |\\n\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `id` LevelDB SST file id.\\n\\n@param `infos` Map of retrieved informations.\\n\\n\",\"signature\":\"SSTINFO( id:LONG secret:STRING ): infos:MAP\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTINFO\"},\"SSTPURGE\":{\"description\":\"Attempts to purge a set of SST Files. A `.sst` file will be deleted only if it is at the deepest level of the LevelDB file organization.\\n\\nDuring file deletion, the underlying LevelDB database is closed and therefore all operations which interact with the DB will be blocked until the deletion has finished.\\n\\nEven though the LevelDB database is closed for updates and reads, it is not safe to manipulate its files as the deletion process actually modifies some of them.\\n\\nThe maximum number of SST files which can be deleted in a single call to `SSTPURGE` is set using the `leveldb.maxpurge` configuration key, it defaults to 1000.\\n\\n@param `secret` Current LevelDB secret.\\n\\n@param `ids` List of file ids to delete.\\n\\n@param `ldeleted` List of ids of files which were deleted from the LevelDB database.\\n\\n\",\"signature\":\"SSTPURGE( ids:LIST<LONG> secret:STRING ): ldeleted:LIST<LONG>\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTPURGE\"},\"SSTREPORT\":{\"description\":\"Builds a report on the content of the various SST (Sorted String Table) files of the LevelDB database backing the Warp 10™ storage engine.\\n\\nThe function returns a map containing the following keys:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `maxlevel` | Deepest level of SST files |\\n| `manifest` | Name of `MANIFEST` file used for building the report |\\n| `sst` | List of SST file descriptors |\\n\\nEach SST file descriptor is a list containing the following elements:\\n\\n* Level of the file\\n* Number (id) of the file\\n* Hex encoded smallest key found in the file\\n* Hex encoded largest key found in the file\\n\\n\\n@param `secret` LevelDB secret.\\n\\n@param `report` Report about the SST files of the LevelDB database.\\n\\n\",\"signature\":\"SSTREPORT( secret:STRING ): report:MAP\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTREPORT\"},\"SSTTIMESTAMP\":{\"description\":\"Given a key from an SST File, for example as returned by `SSTREPORT`, extracts the timestamp encoded in the key (in the platform time units).\\n\\n@param `key` Hex encoded SST File key from which to extract the timestamp.\\n\\n@param `bkey` Byte array containing an SST File key from which to extract the timestamp.\\n\\n@param `ts` Extracted timestamp.\\n\\n\",\"signature\":\"SSTTIMESTAMP( key:STRING ): ts:LONG\\nSSTTIMESTAMP( bkey:BYTES ): ts:LONG\",\"tags\":[\"extensions\",\"commercial\"],\"since\":\"2.7.0\",\"OPB64name\":\"SSTTIMESTAMP\"},\"STACKATTRIBUTE\":{\"description\":\"Retrieves the value of a stack attribute.\\n\\n@param `name` Name of the stack attribute to retrieve.\\n\\n@param `value` Associated value or null if attribute is not set.\\n\\n\",\"signature\":\"STACKATTRIBUTE( name:STRING ): value:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STACKATTRIBUTE\"},\"STACKPSSECRET\":{\"description\":\"Modifies the secret needed for using functions such as `WSPS`, `WSSTOP` and `WSKILL`.\\n\\nThis function is only usable if a secret was configured using `stackps.secret`.\\n\\n@param `secret` Current secret for process status operations, initially the value configured via `stackps.secret`.\\n\\n@param `newsecret` New secret to set for process status operations.\\n\\n\",\"signature\":\"STACKPSSECRET( newsecret:STRING secret:STRING ): \",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"STACKPSSECRET\"},\"STACKTOLIST\":{\"description\":\"Converts the whole stack into a list and pushes this list on top of the stack. The elements are consumed off the stack in the way [`->LIST`](/doc/AItBHKCJ) does it.\\n\\n@param `stack` Content of the stack.\\n\\n@param `list` List containing the elements of the stack.\\n\\n\",\"signature\":\"STACKTOLIST( stack:ANY* ): list:LIST\",\"tags\":[\"stack\"],\"since\":\"1.0.14\",\"OPB64name\":\"STACKTOLIST\"},\"STANDARDIZE\":{\"description\":\"Standardizes a single (or a list of) numeric Geo Time Series™ (i.e. it replaces X by (X-mu)/sd).\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"signature\":\"STANDARDIZE( gts:GTS ): result:GTS\\nSTANDARDIZE( gtsList:LIST<GTS> ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STANDARDIZE\"},\"STDERR\":{\"description\":\"The `STDERR` function prints text to the standard error stream.\\n\\nThe `STDERR` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `msg` The debug text to print\\n\\n\",\"signature\":\"STDERR( msg:STRING ): \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDERR\"},\"STDIN\":{\"description\":\"The `STDIN` function outputs an iterable which allows to iterate over the lines present in the standard input.\\n\\nThis function is intended to be used via `WarpRun` or the `run` command of `warp10-standalone.sh`, it is part of the `io.warp10.script.ext.warprun.WarpRunWarpScriptExtension`.\\n\\n@param `iterable` An iterable containing the lines from standard input.\\n\\n\",\"signature\":\"STDIN(): iterable:OBJECT\",\"tags\":[\"extensions\"],\"since\":\"2.11.0\",\"OPB64name\":\"STDIN\"},\"STDOUT\":{\"description\":\"The `STDOUT` function prints text to the standard output stream.\\n\\nThe `STDOUT` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `obj` The object to print. Its `.toString()` method is used to generate the outputed String.\\n\\n\",\"signature\":\"STDOUT( obj:ANY ): \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"STDOUT\"},\"STL\":{\"description\":\"The `STL` function applies a Seasonal Trend decomposition on a Geo Time Series™ or a **LIST** of Geo Time Series™, which is based on multiple calls of [`RLOWESS`](/doc/RLOWESS).\\n\\nThese Geo Time Series™ are the seasonal part and the trend part of the input Geo Time Series™. Their classnames are suffixed with \\\"_seasonal\\\" and \\\"_trend\\\".\\n\\nThis function can only be applied to [bucketized](/doc/BUCKETIZE) Geo Time Series™ of numeric type.\\n\\nThe **MAP** parameter must have at least the field `PERIOD`. You can provide additional optional parameters:\\n\\n## Optional parameters\\n### Global\\n- `ROBUST` if TRUE, set defaults of number of inner and outer loops to 1 and 15 instead of 2 and 0. Default is FALSE\\n- `PRECISION` number of inner loops (a LONG). Default is 2 or 1\\n- `ROBUSTNESS` number of outer loops (a LONG). Default is 0 or 15\\n\\n### Seasonal extract\\n- `BANDWIDTH_S` the bandwidth (a LONG) of the local regression. Default is 7\\n- `DEGREE_S` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_S` the number of values interpolated instead of estimated. Default is BANDWIDTH_S/10\\n\\n### Low frequency filtering\\n- `BANDWIDTH_L` the bandwidth (a LONG) of the local regression. Default is nextOdd(PERIOD)\\n- `DEGREE_L` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_L` the number of values interpolated instead of estimated. Default is BANDWIDTH_L/10\\n\\n### Trend extract\\n- `BANDWIDTH_T` the bandwidth (a LONG) of the local regression. Default is nextOdd(ceiling(1.5*PERIOD/(1-(1.5/BANDWIDTH_S))))\\n- `DEGREE_T` the degree (a LONG) of the polynomial fit. Default is 1\\n- `SPEED_T` the number of values interpolated instead of estimated. Default is BANDWIDTH_T/10\\n\\n### Post seasonal smoothing\\n- `BANDWIDTH_P` the bandwidth (a LONG) of the local regression. Default is 0 (i.e. no post smoothing)\\n- `DEGREE_P` the degree (a LONG) of the polynomial fit. Default is 2\\n- `SPEED_P` the number of values interpolated instead of estimated. Default is BANDWIDTH_P/10\\n\\n### Additional fields\\n- `BANDWIDT` value of all BANDWIDTH_X fields that are not set\\n- `DEGREE` value of all DEGREE_X fields that are not set\\n- `SPEED` value of all SPEED_X fields that are not set\\n\\n> ### REFERENCE\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n\\n\\n@param `gts`  A numeric Geo Time Series™\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gtsList`  A list of numeric Geo Time Series™\\n\\n@param `result` A standardized Geo Time Series™\\n\\n@param `resultList` A list of standardized Geo Time Series™\\n\\n\",\"signature\":\"STL( gts:GTS { p:LONG  } ): result:GTS\\nSTL( gtsList:LIST<GTS> { p:LONG  } ): resultList:LIST<GTS>\",\"tags\":[\"gts\",\"bucketize\"],\"since\":\"1.0.0\",\"OPB64name\":\"STL\"},\"STLESDTEST\":{\"description\":\"The 'STLESDTEST' function detects outliers in a Geo Time Series™ (or a **LIST** of Geo Time Series™) which has a seasonal part.\\n\\nThe seasonal part and the trend part of the Geo Time Series™ are extracted using [`STL`](/doc/STL) decomposition, then an [`ESDTEST`](/doc/ESDTEST) is performed on the remainder.\\n\\nThis function only applies to [bucketized](/doc/BUCKETIZE) GTS of type **DOUBLE**.\\n\\n> ### References\\n> **Cleveland, Robert B., et al.** \\\"STL: A seasonal-trend decomposition procedure based on loess.\\\" Journal of Official Statistics 6.1 (1990): 3-73.\\n> **Rosner, Bernard (May 1983)**, \\\"Percentage Points for a Generalized ESD Many-Outlier Procedure\\\",Technometrics, 25(2), pp. 165-172.\\n\\n@param `STLOption` Optional parameters of the [`STL`](/doc/STL) call\\n\\n@param `alpha` Optional significance level for the statistical test. Default value is 0.05\\n\\n@param `k` Upperbound of the number of outliers to detect\\n\\n@param `p` The number of buckets that compose a period\\n\\n@param `gts` A Geo Time Series™\\n\\n@param `gtsList` A list of Geo Time Series™\\n\\n@param `resultList` A **LIST** of ticks corresponding to the outliers\\n\\n@param `result` A **LIST** of LIST of ticks corresponding to the outliers\\n\\n\",\"signature\":\"STLESDTEST( gts:GTS p:LONG k:LONG alpha:DOUBLE STLOption:MAP ): result:LIST<LONG>\\nSTLESDTEST( gts:GTS p:LONG k:LONG alpha:DOUBLE ): result:LIST<LONG>\\nSTLESDTEST( gts:GTS p:LONG k:LONG STLOption:MAP ): result:LIST<LONG>\\nSTLESDTEST( gts:GTS p:LONG k:LONG ): result:LIST<LONG>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG alpha:DOUBLE STLOption:MAP ): resultList:LIST<LIST<LONG>>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG alpha:DOUBLE ): resultList:LIST<LIST<LONG>>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG STLOption:MAP ): resultList:LIST<LIST<LONG>>\\nSTLESDTEST( gtsList:LIST<GTS> p:LONG k:LONG ): resultList:LIST<LIST<LONG>>\",\"tags\":[\"outlier\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STLESDTEST\"},\"STOP\":{\"description\":\"The `STOP` function stops the current execution by throwing a `WarpScriptStopException`. This means that the current script execution will be aborted unless the call to `STOP` was in a macro invoked via [`TRY`](/doc/TRY).\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"STOP\"},\"STORE\":{\"description\":\"The `STORE` function stores a value in a symbol.\\n\\nSince 2.7, when the list of symbols contains duplicates only the last occurence in the list is assigned to its corresponding value.\\n\\n@param `symbol` Name of the symbol to modify.\\n\\n@param `register` Index of the register to modify.\\n\\n@param `symbols` List of symbols or registers to modify. The last element of the list will contain the top of the stack.\\n\\n@param `value` Value to store under `symbol`.\\n\\n@param `values` Multiple values to store in `symbols`.\\n\\n\",\"signature\":\"STORE( value:ANY symbol:STRING ): \\nSTORE( value:ANY register:LONG ): \\nSTORE( values:ANY* symbols:LIST<STRING> ): \",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"STORE\"},\"STRICTMAPPER\":{\"description\":\"Wraps a *mapper* or a *macro* in such a way that MAP will only call it if the number of ticks in the window is in the specified range.\\n\\nSince 2.1 STRICTMAPPER can also take a timespan definition by inputing negative numbers. Number of ticks and timespan can also be mixed to specify, for instance, more than 2 points but less than 5 seconds.\\n\\nPrior to 2.8 STRICTMAPPER could only wrap a mapper, now it can also wrap a macro if this macro is expected to be used as a mapper.\\n\\n@param `max` If positive, maximum number of ticks in the window. If negative, maximum timespan of the window.\\n\\n@param `min` If positive, minimum number of ticks in the window. If negative, minimum timespan of the window.\\n\\n@param `mapper` Mapper to wrap.\\n\\n@param `wrapped` Wrapped mapper.\\n\\n@param `macro` Macro to wrap\\n\\n@param `wrappedMacro` Wrapped macro\\n\\n\",\"signature\":\"STRICTMAPPER( mapper:AGGREGATOR min:NUMBER max:NUMBER ): wrapped:AGGREGATOR\\nSTRICTMAPPER( macro:MACRO min:NUMBER max:NUMBER ): wrappedMacro:MACRO\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTMAPPER\"},\"STRICTPARTITION\":{\"description\":\"The `STRICTPARTITION` splits a Geo Time Series™ list in equivalence classes based on label values just like [`PARTITION`](/doc/PARTITION) but only retains in each equivalence class key the labels on which the partitioning was done.\\n\\n@param `labels` List of labels to consider for creating equivalence classes.\\n\\n@param `lgts` List of Geo Time Series™ to partition.\\n\\n@param `result` Map of equivalence classes, keyed by the map of label names to values for the labels in `labels`.\\n\\n\",\"signature\":\"STRICTPARTITION( lgts:LIST<GTS> labels:LIST<STRING> ): result:MAP\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"STRICTPARTITION\"},\"STRICTREDUCER\":{\"description\":\"Wraps a *reducer* so it is only applied if there are values for all the Geo Time Series™ being reduced.\\n\\n@param `reducer` Reducer to wrap.\\n\\n@param `wrapped` Wrapped version of the reducer.\\n\\n\",\"signature\":\"STRICTREDUCER( reducer:AGGREGATOR ): wrapped:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.6\",\"OPB64name\":\"STRICTREDUCER\"},\"STRINGFORMAT\":{\"description\":\"The STRINGFORMAT function format a String in the same ways as Java [String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.util.Locale-java.lang.String-java.lang.Object...-) does.\\n\\nThis function consumes an optional locale in [ISO 639](http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry), a list of Objects to be used in the format string and a [format string](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax).\\n\\nIf no locale is specified, it defaults to the default JVM locale.\\n\\n@param `format` A format string.\\n\\n@param `args` Arguments referenced by the format specifiers in the format string.\\n\\n@param `locale` The locale to apply during formatting.\\n\\n@param `formattedString` A formatted string.\\n\\n\",\"signature\":\"STRINGFORMAT( format:STRING args:LIST ): formattedString:STRING\\nSTRINGFORMAT( format:STRING args:LIST locale:STRING ): formattedString:STRING\",\"tags\":[\"strings\"],\"since\":\"2.2.0\",\"OPB64name\":\"STRINGFORMAT\"},\"STU\":{\"description\":\"The `STU` function pushes onto the stack the number of platform time units in one second. This allows WarpScript scripts to be compatible with any platform, regardless of their configured time units (millisecond, microsecond or nanosecond).\\n\\n@param `numberTimeUnits` Number of platform time units in one second.\\n\\n\",\"signature\":\"STU(): numberTimeUnits:LONG\",\"tags\":[\"date\",\"time\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"STU\"},\"SUBLIST\":{\"description\":\"It creates a new list with the elements of the base list whose indices are in the argument list.\\n\\nIf the argument list contains two indices [a,b] then `SUBLIST` returns the list of elements from index a to index b (included). If the argument list contains more than two indices, the result of `SUBLIST` contains all the elements at the specified indices, with possible duplicates.\\n\\nNegative indexing is allowed, with negative index effectively referring to index + size.\\n\\nSince 2.1 a new signature allowing the step to be defined has been introduced. Instead of specifying a list has range, you can put the start, end (optional) and step (optional) as **LONG** values.\\n\\n@param `arguments` List of indices. Negative indices are considered to be calculated from the end of the list.\\n\\n@param `base` Base list\\n\\n@param `result` Filtred list\\n\\n@param `start` The first index to consider, will be included.\\n\\n@param `end` The last index to consider, will be included. If not specified, defaults to -1.\\n\\n@param `step` The delta between two consecutive indexes to consider. If end is after start in the list, step must be strictly positive. If start is after end in the list, step must be strictly negative. If not specified, defaults to 1 or -1 depending on start and end.\\n\\n\",\"signature\":\"SUBLIST( base:LIST<ANY> arguments:LIST<LONG> ): result:LIST<ANY>\\nSUBLIST( base:LIST<ANY> start:NUMBER ): result:LIST<ANY>\\nSUBLIST( base:LIST<ANY> start:NUMBER end:NUMBER ): result:LIST<ANY>\\nSUBLIST( base:LIST<ANY> start:NUMBER end:NUMBER step:NUMBER ): result:LIST<ANY>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBLIST\"},\"SUBMAP\":{\"description\":\"It creates a new map with the key-value pairs from the base map whose keys are in the argument list.\\n\\n@param `arguments` List of indices.\\n\\n@param `base` Base map\\n\\n@param `result` Filtred map\\n\\n\",\"signature\":\"SUBMAP( base:MAP arguments:LIST<STRING> ): result:MAP\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBMAP\"},\"SUBSTRING\":{\"description\":\"Extract a substring from a **STRING** input, or a subarray from a **BYTE ARRAY** input.  \\nIf the length is ommitted, it extracts until the end of the string or byte array. If length is greater than max length, extract stops at the input end.\\n\\nIf the start is greater than the input size, `SUBSTRING` raises an error.\\n\\nSince 2.1, the start index can be negative. In this case the effective index is index + size of the **STRING**.\\n\\n@param `len` Length of substring to extract.\\n\\n@param `start` First character to include in the substring (0 based).\\n\\n@param `str` String from which to extract a substring.\\n\\n@param `substr` Extracted substring.\\n\\n@param `array` Byte array from which to extract a sub array.\\n\\n@param `subarray` Extracted sub array.\\n\\n\",\"signature\":\"SUBSTRING( str:STRING start:LONG len:LONG ): substr:STRING\\nSUBSTRING( str:STRING start:LONG ): substr:STRING\\nSUBSTRING( array:BYTES start:LONG len:LONG ): subarray:BYTES\\nSUBSTRING( array:BYTES start:LONG ): subarray:BYTES\",\"tags\":[\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"SUBSTRING\"},\"SUBTRACTEXACT\":{\"description\":\"The `SUBTRACTEXACT` function consumes two LONGs from the top of the stack and puts back the difference between them. If the difference overflows a LONG, this function fails.\\n\\nSince 2.6.0, this function can be applied to a **LIST** of numerical values and a numerical value. The order of the parameter is very important in that case: considering this function as `F`, the result of `[ $a $b $c ] F` is `$a $b F $c F ]` but the result of `[ $a $b ] $c F` is `[ $a $c F $b $c F ]`.\\n\\nSince 2.7.1, this function can be applied to a **GTS** of numerical values. This is very similar to how this function works on **LIST**s, considering the values of the GTS. In that case, the order of the parameters also matters and the result is either a GTS or a single numerical value.\\n\\n@param `x` Numeric value\\n\\n@param `y` Numeric value\\n\\n@param `diff` The difference of x and y\\n\\n@param `list` List of numeric values\\n\\n@param `gts` Numerical GTS\\n\\n@param `sdiff` The first element of the list minus all the others\\n\\n@param `gdiff` The first value of the gts minus all the others\\n\\n@param `lx` List of numeric values\\n\\n@param `gtsx` Numerical GTS\\n\\n@param `ldiff` List of **LONG** where each value is the difference of y and an element in lx\\n\\n@param `gtsdiff` GTS of **LONG** values where each value is the difference of y and an element in gtsx\\n\\n\",\"signature\":\"SUBTRACTEXACT( x:NUMBER y:NUMBER ): diff:LONG\\nSUBTRACTEXACT( list:LIST<NUMBER> ): sdiff:LONG\\nSUBTRACTEXACT( lx:LIST<NUMBER> y:NUMBER ): ldiff:LIST<LONG>\\nSUBTRACTEXACT( gts:GTS ): gdiff:LONG\\nSUBTRACTEXACT( gtsx:GTS y:NUMBER ): gtsdiff:LIST<LONG>\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"SUBTRACTEXACT\"},\"SWAP\":{\"description\":\"Exchanges the positions of the top two elements of the stack.\\n\\n@param `top` The element on top of the stack prior to the function execution\\n\\n@param `level2` The element at the second level of the stack prior to the function execution\\n\\n\",\"signature\":\"SWAP( level2:ANY top:ANY ): top:ANY level2:ANY\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWAP\"},\"SWITCH\":{\"description\":\"Performs a [switch statement](https://en.wikipedia.org/wiki/Switch_statement) allowing to select a macro execution based on a series of condition macros or to fallback on to the execution of a default macro.\\n\\n@param `n` Number of cases to consider. The `SWITCH` function will expect `n` pairs of condition/execution macros plus a default macro on the stack.\\n\\n@param `default` Macro which will be executed if all condition macros returned false.\\n\\n@param `cond1` First condition macro. All condition macros are expected to push a boolean on the stack.\\n\\n@param `condn` `n`th condition macro.\\n\\n@param `exec1` First execution macro, this macro will be executed if `cond1` left `true` on the stack.\\n\\n@param `execn` `n`th execution macro.\\n\\n\",\"signature\":\"SWITCH( cond1:MACRO exec1:MACRO condn:MACRO execn:MACRO default:MACRO n:LONG ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"SWITCH\"},\"SYMBOLS\":{\"description\":\"The `SYMBOLS` function outputs the list of all defined symbols.\\n\\n@param `symbols` The list of the names of all defined symbols.\\n\\n\",\"signature\":\"SYMBOLS(): symbols:LIST\",\"tags\":[\"stack\"],\"since\":\"2.2.1\",\"OPB64name\":\"SYMBOLS\"},\"SYNC\":{\"description\":\"Executes a macro in a synchronized way while in a parallel execution triggered by a call to [`CEVAL`](/doc/CEVAL). If `SYNC` is called outside of a parallel execution, it simply executes the macro.\\n\\nWhen called within a `CEVAL` execution, the use of `SYNC` guarantees that only one of the concurrently executing threads will execute the specified macro at any given time.\\n\\n@param `macro` Macro to execute in a synchronized way.\\n\\n\",\"signature\":\"SYNC( macro:MACRO ): \",\"tags\":[\"extensions\"],\"since\":\"1.0.0\",\"OPB64name\":\"SYNC\"},\"T\":{\"description\":\"`T` stand for `true`. It is a boolean constant.\\n\\n\\n@param `b` true\\n\\n\",\"signature\":\"T(): b:BOOLEAN\",\"tags\":[\"logic\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"T\"},\"TAN\":{\"description\":\"The `TAN` function consumes a floating point number from the top of the stack and pushes back its tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value in radians\\n\\n@param `result` Tangent of the given value\\n\\n@param `lvalue` List of numeric values in radians\\n\\n@param `lresult` List of tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the tangent of the given GTS values\\n\\n\",\"signature\":\"TAN( value:NUMBER ): result:DOUBLE\\nTAN( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTAN( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TAN\"},\"TANH\":{\"description\":\"The `TANH` function consumes a floating point number from the top of the stack and pushes back its hyperbolic tangent.\\n\\nThe parameter is considered to be in radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Value, in radians.\\n\\n@param `result` Hyperbolic tangent of the gien value.\\n\\n@param `lvalue` List of numeric values, in radians.\\n\\n@param `lresult` List of hyperbolic tangent of the given values.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the hyperbolic tangent of the given GTS values\\n\\n\",\"signature\":\"TANH( value:NUMBER ): result:DOUBLE\\nTANH( lvalue:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTANH( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\",\"trigonometry\"],\"since\":\"1.0.0\",\"OPB64name\":\"TANH\"},\"TDESCRIBE\":{\"description\":\"The `TDESCRIBE` function is a recursive [`TYPEOF`](/doc/TYPEOF).\\n\\nWhen `TDESCRIBE` finds a LIST, it takes the first element of the list to look for his type. When `TDESCRIBE` finds a MAP, it takes a random key in the map to look for the type of the key and the type of the value.\\n\\n**By design, TDESCRIBE cannot describe heterogeneous lists or maps.**\\n\\nTDESCRIBE output is subject to change in the future. Do not try to parse it. This function is here to help you during Warpscript development.\\n\\n\\nThe `TDESCRIBE` function is part of the `io.warp10.script.ext.debug.DebugWarpScriptExtension`, this extension must be specified in the\\n`warpscript.extensions` configuration parameter for it to be available.\\n\\nAdd the following line to your Warp 10 configuration:\\n```\\nwarpscript.extension.debug=io.warp10.script.ext.debug.DebugWarpScriptExtension\\n```\\n\\n@param `object` Any kind of reference\\n\\n@param `description` The description of the object\\n\\n\",\"signature\":\"TDESCRIBE( object:ANY ): description:STRING\",\"tags\":[\"extensions\",\"debug\"],\"since\":\"1.2.19\",\"OPB64name\":\"TDESCRIBE\"},\"TEMPLATE\":{\"description\":\"`TEMPLATE` fills a template with values contained in a map. See example for syntax help.\\n\\nThe `TEMPLATE` function expects the map of values on top of the stack and will operate on the string template below it.\\n\\nValues speficied with `{{key}}` will be html-escaped. If you do not want that behavior, use `{{{key}}}`.\\n\\n@param `dictionnary` Each key will be replaced in a {{key}} template. Value could be string long, double, boolean, or a list of maps. If Value is a list of maps, each subkey/value will be replaced in a {{#key}}{{subkey}}{{/key}} template. \\n\\n@param `listofmaps` Contains a list of subkey/value map. Will be replaced in a {{#key}}{{subkey}}{{/key}} template.\\n\\n@param `template` Input template.\\n\\n@param `output` Result of substitution.\\n\\n\",\"signature\":\"TEMPLATE( template:STRING dictionnary:MAP ): output:STRING\\nTEMPLATE( template:STRING listofmaps:LIST<MAP> ): output:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TEMPLATE\"},\"THRESHOLDTEST\":{\"description\":\"Analyzes Geo Time Series™, identifying ticks where values are outliers above the given threshold.\\n\\n@param `threshold` Threshold above which values are considered outliers.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `ticks` List of ticks where outliers were found.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lticks` List of lists of ticks where outliers were found.\\n\\n\",\"signature\":\"THRESHOLDTEST( gts:GTS threshold:DOUBLE ): ticks:LIST<LONG>\\nTHRESHOLDTEST( lgts:LIST<GTS> threshold:DOUBLE ): lticks:LIST<LIST<LONG>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"THRESHOLDTEST\"},\"TICKINDEX\":{\"description\":\"Creates a clone of a Geo Time Series™, replacing each tick with the index (0 based) at which it appears at the moment of the call.\\n\\n@param `gts` Geo Time Series™ instance to transform.\\n\\n@param `encoder` Geo Time Series™ Encoder instance to transform.\\n\\n@param `indexed` Transformed GTS.\\n\\n@param `indexedenc` Transformed GTS Encoder.\\n\\n@param `lgts` List of Geo Time Series™ instances to transform.\\n\\n@param `lencoder` List of Geo Time Series™ Encoder instances to transform.\\n\\n@param `lindexed` List of indexed Geo Time Series™.\\n\\n@param `lindexedenc` List of indexed Geo Time Series™ Encoder.\\n\\n\",\"signature\":\"TICKINDEX( gts:GTS ): indexed:GTS\\nTICKINDEX( lgts:LIST<GTS> ): lindexed:LIST<GTS>\\nTICKINDEX( encoder:GTSENCODER ): indexedenc:GTSENCODER\\nTICKINDEX( lencoder:LIST<GTSENCODER> ): lindexedenc:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKINDEX\"},\"TICKLIST\":{\"description\":\"Pushes onto the stack the list of ticks of a Geo Time Series™ or encoder. The ticks appear in the order in which they are found.\\n`TICKLIST` is consistent with [`VALUES`](/doc/VALUES).\\n\\n\\nIf a list of Geo Time Series™ is given, the result is a list of list of ticks as if the TICKLIST function was applied to each Geo Time Series™ separately.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n@param `encoder` Instance of encoder from which to extract the ticks.\\n\\n@param `lencoder` List of encoders.\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `lticks` List of lists of ticks.\\n\\n\",\"signature\":\"TICKLIST( gts:GTS ): ticks:LIST<LONG>\\nTICKLIST( lgts:LIST<GTS> ): lticks:LIST<LIST<LONG>>\\nTICKLIST( encoder:GTSENCODER ): ticks:LIST<LONG>\\nTICKLIST( lencoder:LIST<GTSENCODER> ): lticks:LIST<LIST<LONG>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKLIST\"},\"TICKS\":{\"description\":\"Pushes onto the stack the sorted list of **distinct** ticks of a Geo Time Series™. If a list of Geo Time Series™ is given, all the **distinct** ticks are returned in a single sorted list as if all Geo Time Series™ were merged.\\n\\nThis function is not to be confused with [`TICKLIST`](/doc/TICKLIST) as this function returns **distinct** ticks and acts as it merges Geo Time Series™.\\n\\n** Warning:** To be consistent with [`VALUES`](/doc/VALUES), use [`TICKLIST`](/doc/TICKLIST).\\n\\n\\n@param `ticks` List of extracted ticks.\\n\\n@param `gts` Instance of Geo Time Series™.\\n\\n@param `lgts` List of GTS.\\n\\n\",\"signature\":\"TICKS( gts:GTS ): ticks:LIST<LONG>\\nTICKS( lgts:LIST<GTS> ): ticks:LIST<LONG>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TICKS\"},\"TIGER\":{\"description\":\"The `TIGER` function digests a byte array on the stack with the cryptographic hash function [Tiger](https://en.wikipedia.org/wiki/Tiger_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"TIGER( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"TIGER\"},\"TIMEBOX\":{\"description\":\"The `TIMEBOX` executes a macro with a maximum execution time. If the maximum time is reached, an exception will be thrown which can be caught using [`TRY`](/doc/TRY).\\n\\n@param `maxtime` Maximum execution time, in platform time units.\\n\\n@param `macro` Macro to execute.\\n\\n\",\"signature\":\"TIMEBOX( macro:MACRO maxtime:LONG ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TIMEBOX\"},\"TIMECLIP\":{\"description\":\"Clips Geo Time Series™ instances by restricting their ticks to those within a time interval.      \\n\\n@param `duration` Width of the time interval to retain, in time units.\\n\\n@param `end` Most recent timestamp to retain.\\n\\n@param `start` Start timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `stop` End timestamp to consider, expressed as an [`ISO8601`](/doc/ISO8601) string.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of GTS.\\n\\n@param `clipped` Clipped Geo Time Series™.\\n\\n@param `lclipped` List of clipped GTS.\\n\\n@param `encoder` Single GTS Encoder instance.\\n\\n@param `lencoder` List of GTS Encoder instances.\\n\\n@param `clippedEncoder` Clipped GST encoder.\\n\\n@param `lclippedEncoders` List of clipped GTS encoders.\\n\\n\",\"signature\":\"TIMECLIP( gts:GTS end:LONG duration:LONG ): clipped:GTS\\nTIMECLIP( lgts:LIST<GTS> end:LONG duration:LONG ): lclipped:LIST<GTS>\\nTIMECLIP( gts:GTS stop:STRING start:STRING ): clipped:GTS\\nTIMECLIP( lgts:LIST<GTS> stop:STRING start:STRING ): lclipped:LIST<GTS>\\nTIMECLIP( encoder:GTSENCODER end:LONG duration:LONG ): clippedEncoder:GTSENCODER\\nTIMECLIP( lencoder:LIST<GTSENCODER> end:LONG duration:LONG ): lclippedEncoders:LIST<GTSENCODER>\\nTIMECLIP( encoder:GTSENCODER stop:STRING start:STRING ): clippedEncoder:GTSENCODER\\nTIMECLIP( lencoder:LIST<GTSENCODER> stop:STRING start:STRING ): lclippedEncoders:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMECLIP\"},\"TIMED\":{\"description\":\"The `TIMED` function converts a macro to a timed macro, recording its execution time and its number of calls.\\n\\nTo recover the associated statistics, use [`CHRONOSTATS`](/doc/CHRONOSTATS).\\n\\n@param `name` A name identifying the macro.\\n\\n@param `macro` The macro you want to monitor.\\n\\n@param `timedMacro` A macro which, when called, will update the statitics associated with the given name.\\n\\n\",\"signature\":\"TIMED( macro:MACRO name:STRING ): timedMacro:MACRO\",\"tags\":[\"debug\"],\"since\":\"2.1.0\",\"OPB64name\":\"TIMED\"},\"TIMEMODULO\":{\"description\":\"Splits Geo Time Series™ into sub-GTS whose timestamps are the original timestamp modulo a given modulus value. Each sub-GTS will bear a label with the quotient of the original timestamps divided by the modulus. The output list order is not guaranteed, use [`SORTBY`](/doc/SORTBY) if you want to order the output by label.\\n\\nThis function can be used to generate for example one Geo Time Series™ per day with ticks from 0 to 86400 s (excluded).\\n\\n@param `label` Name of the label which will have the quotient value.\\n\\n@param `modulus` Value by which to divide the original timestamps.\\n\\n@param `gts` Geo Time Series™ to split.\\n\\n@param `splits` Resulting splits.\\n\\n@param `lgts` List of GTS to split.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"signature\":\"TIMEMODULO( gts:GTS modulus:LONG label:STRING ): splits:LIST<GTS>\\nTIMEMODULO( lgts:LIST<GTS> modulus:LONG label:STRING ): lsplits:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMEMODULO\"},\"TIMEOFF\":{\"description\":\"Turns off the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"TIMEOFF(): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEOFF\"},\"TIMEON\":{\"description\":\"Turns on the display of the execution time of each WarpScript™ line entered in interactive (REPL) mode.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"TIMEON(): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"TIMEON\"},\"TIMESCALE\":{\"description\":\"Modifies the ticks of Geo Time Series™ instances by multiplying each tick by a provided scale.      \\n\\nThe resulting tick will be converted to a LONG after multiplication by the scale.\\n\\nIf the Geo Time Series™ instance is bucketized, the `lastbucket` and `bucketspan` parameters will also be scaled. If the scale would incur a `bucketspan` of 0, the call will end with an error.\\n\\n@param `scale` Scale by which to multiply each tick.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `scaled` Geo Time Series™ result.\\n\\n@param `lscaled` List of Geo Time Series™ result.\\n\\n\",\"signature\":\"TIMESCALE( gts:GTS scale:DOUBLE ): scaled:GTS\\nTIMESCALE( gts:GTS scale:LONG ): scaled:GTS\\nTIMESCALE( lgts:LIST<GTS> scale:DOUBLE ): lscaled:LIST<GTS>\\nTIMESCALE( lgts:LIST<GTS> scale:LONG ): lscaled:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESCALE\"},\"TIMESHIFT\":{\"description\":\"Shifts the ticks of Geo Time Series™ instances by a given amount.\\n\\n@param `offset` Offset to apply to the ticks, in time units.\\n\\n@param `gts` Single Geo Time Series™ instance to shift.\\n\\n@param `lgts` List of GTS to shift.\\n\\n@param `shifted` Shifted Geo Time Series™.\\n\\n@param `lshifted` List of shifted Geo Time Series™.\\n\\n\",\"signature\":\"TIMESHIFT( gts:GTS offset:LONG ): shifted:GTS\\nTIMESHIFT( lgts:LIST<GTS> offset:LONG ): lshifted:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESHIFT\"},\"TIMESPLIT\":{\"description\":\"The `TIMESPLIT` functions splits Geo Time Series™ instances based on *quiet periods*, *i.e.* periods during which the GTS has no values.\\n\\nWhenever a quiet period longer than a minimum duration is encountered, the Geo Time Series™ is split.\\n\\nIf input gts has no values or if 'label' is already part of the labels of 'gts', then the resulting list of GTS will only contain a clone of 'gts'. **Make sure to test your GTS split size if needed.**\\n\\n@param `label` Name of label in which to store the sequence number.\\n\\n@param `minvalues` Minimum number of values a split should contain. Splits with less than that many values will be discarded.\\n\\n@param `quietperiod` Minimum duration of the silent period (*i.e.* with no values) between splits.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `splits` List of resulting splits.\\n\\n@param `lsplits` List of lists of resulting splits.\\n\\n\",\"signature\":\"TIMESPLIT( gts:GTS quietperiod:LONG minvalues:LONG label:STRING ): splits:LIST<GTS>\\nTIMESPLIT( lgts:LIST<GTS> quietperiod:LONG minvalues:LONG label:STRING ): lsplits:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMESPLIT\"},\"TIMINGS\":{\"description\":\"Turns on the collection of timing information for each line of the script. The collected timings can be put onto the stack by using [`ELAPSED`](/doc/ELAPSED).\\n\\nTo measure executions of named tasks (several lines of WarpScript, possibly nested inside macros), prefer [`CHRONOSTART`](/doc/CHRONOSTART) and [`CHRONOEND`](/doc/CHRONOEND), with [`CHRONOSTATS`](/doc/CHRONOSTATS) to display results.\\n\\n\\n\",\"signature\":\"\",\"tags\":[\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"TIMINGS\"},\"TLTTB\":{\"description\":\"The `TLTTB` function performs downsampling of Geo Time Series™ by applying the [LTTB (Largest Triangle Three Buckets)](http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf) algorithm. This algorithm downsamples a GTS by selecting datapoints from the original GTS which will preserve the overall shape of the graphical representation of the data. It differs from the [`LTTB`](doc/LTTB) function by the fact that it considers time based buckets instead of buckets based on a number of values.\\n\\n@param `samples` Number of datapoints to keep.\\n\\n@param `gts` Geo Time Series™ instance to downsample.\\n\\n@param `downsampled` Downsampled GTS.\\n\\n@param `lgts` List of Geo Time Series™ to downsample.\\n\\n@param `ldownsampled` List of downsampled GTS.\\n\\n\",\"signature\":\"TLTTB( gts:GTS samples:LONG ): downsampled:GTS\\nTLTTB( lgts:LIST<GTS> samples:LONG ): ldownsampled:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"TLTTB\"},\"TOBIN\":{\"description\":\"Converts the long on top of the stack to its 64 bits binary representation.\\n\\nSince the 2.8.0 version, this function also converts the byte array or the string on top of the stack to its binary representation. Thus, this function and [\\\\->BIN](/doc/AIt1HJs) are equivalent.\\n\\n@param `input` value to convert\\n\\n@param `output` String converted binary representation of param\\n\\n\",\"signature\":\"TOBIN( input:STRING ): output:STRING\\nTOBIN( input:BYTES ): output:STRING\\nTOBIN( input:LONG ): output:STRING\\nTOBIN( input:BITSET ): output:STRING\",\"tags\":[\"conversion\",\"strings\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBIN\"},\"TOBITS\":{\"description\":\"Converts a number or each numerical value of a Geo Time Series™ into a LONG with the same bits as the DOUBLE ([IEEE754](https://en.wikipedia.org/wiki/IEEE_754)) encoding of the original number.\\n\\n**Deprecation notice** the `TOBITS` function will be removed, please use `->DOUBLEBITS` or `->FLOATBITS`.\\n\\n@param `number` Numeric value to represent, will first be converted to a DOUBLE if not already the case.\\n\\n@param `bits` LONG containing the same bits as the double precision IEEE754 representation of the input.\\n\\n@param `gts` Numerical Geo Time Series™ to convert.\\n\\n@param `longgts` Result GTS with LONG values.\\n\\n\",\"signature\":\"TOBITS( number:NUMBER ): bits:LONG\\nTOBITS( gts:GTS ): longgts:GTS\",\"tags\":[\"math\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOBITS\"},\"TOBOOLEAN\":{\"description\":\"Converts a value of primitive type into a boolean value.\\n\\nThe `TOBOOLEAN` function consumes a parameter from the top of the stack and pushes back its conversion to boolean.\\nNumbers will be false if they are equal to 0 and true otherwise.\\nStrings will be false if they are equals to '' and true otherwise.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The boolean conversion of the value\\n\\n\",\"signature\":\"TOBOOLEAN( value:BOOLEAN ): result:BOOLEAN\\nTOBOOLEAN( value:NUMBER ): result:BOOLEAN\\nTOBOOLEAN( value:STRING ): result:BOOLEAN\",\"tags\":[\"conversion\"],\"since\":\"1.0.5\",\"OPB64name\":\"TOBOOLEAN\"},\"TODEGREES\":{\"description\":\"Converts an angle measured in radians to its equivalent in degrees.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from radians to degrees.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in radian to convert in degree\\n\\n@param `result` Result of the conversion from radians to degrees\\n\\n@param `langle` List of angles in radian to convert in degree\\n\\n@param `lresult` List of results of the conversion from radians to degrees\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from radians to degrees of the given GTS values\\n\\n\",\"signature\":\"TODEGREES( angle:NUMBER ): result:DOUBLE\\nTODEGREES( langle:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTODEGREES( gts:GTS ): gtsresult:GTS\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODEGREES\"},\"TODOUBLE\":{\"description\":\"Converts a value of primitive type into a double value.\\n\\nThe `TODOUBLE` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to double.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The double conversion of the value\\n\\n\",\"signature\":\"TODOUBLE( value:BOOLEAN ): result:DOUBLE\\nTODOUBLE( value:NUMBER ): result:DOUBLE\\nTODOUBLE( value:STRING ): result:DOUBLE\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TODOUBLE\"},\"TOHEX\":{\"description\":\"Converts a long to its 64 bits hexadecimal representation.\\n\\nSince the 2.8.0 version this function also decodes an hex encoded string or a byte array. For different encodings, use bytes array conversion [`BYTES->`](/doc/F__JGKBhEV). Thus, this function is equivalent to [`->HEX`](/doc/AIt7GKV).\\n\\n@param `input` Signed long integer.\\n\\n@param `output` Hexadecimal string representation of input.\\n\\n\",\"signature\":\"TOHEX( input:STRING ): output:STRING\\nTOHEX( input:BYTES ): output:STRING\\nTOHEX( input:LONG ): output:STRING\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOHEX\"},\"TOINTEXACT\":{\"description\":\"The `TOINTEXACT` function consumes one NUMBER from the top of the stack and puts back the value. If the result overflows an INT, this function fails.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` The value to be checked not to overflow an INT\\n\\n@param `result` The given value\\n\\n@param `lvalue` List of values to be checked not to overflow an INT\\n\\n@param `lresult` List of given values\\n\\n@param `gts` Numerical GTS whose values are to be checked not to overflow an INT\\n\\n@param `gtsresult` A copy of the given GTS\\n\\n\",\"signature\":\"TOINTEXACT( value:NUMBER ): result:LONG\\nTOINTEXACT( lvalue:LIST<NUMBER> ): lresult:LIST<LONG>\\nTOINTEXACT( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.2.23\",\"OPB64name\":\"TOINTEXACT\"},\"TOKENDUMP\":{\"description\":\"Deciphers a token and outputs a map describing the various elements of the token.\\n\\nThe map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Original token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| params | MAP | Map of token parameters, can be used as input to [`TOKENGEN`](/doc/TOKENGEN) |\\n\\nThe `params` map contains the following entries for both `READ` and `WRITE` tokens:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| type  | STRING | `READ` or `WRITE` depending on the type of token |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application asociated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in ms since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in ms since the Unix Epoch |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nAdditionally, for `READ` tokens, the map contains those entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, those will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nNote that the `TOKENDUMP` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration key was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to decode the token.\\n\\n@param `token` Token to decode.\\n\\n@param `map` Map with the extracted parameters, the original token and its *ident*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENDUMP` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"signature\":\"TOKENDUMP( token:STRING ): map:MAP\\nTOKENDUMP( token:STRING secret:STRING ): map:MAP\\nTOKENDUMP( token:STRING aes:BYTES hash:BYTES ): map:MAP\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENDUMP\"},\"TOKENGEN\":{\"description\":\"Generates a token given a map of parameters. The `TOKENGEN` function outputs a map.\\n\\nThe input parameter map contains the following entries:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| id | STRING | Optional identifier that will be put verbatim in the result map |\\n| type  | STRING | `READ` or `WRITE` depending on the type of token to generate |\\n| owner | STRING | UUID of the owner associated with the token |\\n| producer | STRING | UUID of the producer associated with the token |\\n| application | STRING | Name of application associated with the token |\\n| issuance | LONG | Issuance timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| expiry | LONG | Expiry timestamp of the token, in **milliseconds** since the Unix Epoch |\\n| ttl | LONG | If `expiry` is not specified, a time to live can be set with this key. The TTL is expressed in **milliseconds**, the computed expiry timestamp will be the issuance timestamp plus the ttl |\\n| labels | MAP | Map of labels which will be added to the pushed Geo Time Series™ int the case of a `WRITE` token, or map of label selectors which will be added to the selection criteria for a `READ` token |\\n| attributes | MAP | Map of attributes attached to the token |\\n\\nWhen generating a `READ` token, the following parameters are needed to ensure data isolation:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| owners | LIST | List of owners the `READ` token can access, they will be added to the selection criteria |\\n| producers | LIST | List of producers the `READ` token can access, they will be added to the selection criteria |\\n| applications | LIST | List of applications the `READ` token can access, they will be added to the selection criteria |\\n\\nIf one of these parameter key is not set or set to an empty list, then the generated `READ` token will be granted access to all the scope associated with the parameter key. For example, if `owners` is not set, data from all owners will be accessible to this token.\\n\\nThe `TOKENGEN` function outputs a map with the following keys:\\n\\n| Key | Type | Description |\\n|-----|------|-------------|\\n| token | STRING | Generated token |\\n| ident | LONG | TokenIdent associated with `token`, can be used in a [TRL](/content/03_Documentation/05_Security/04_Token_revocation_list) |\\n| id | STRING | Optional identifier if the `id` key was specified in the parameter map |\\n\\nNote that the `TOKENGEN` function can only be called using the [`Worf`](/content/03_Documentation/05_Security/03_Worf#tokengen) tool if the `token.secret` configuration was not set.\\n\\nSince 2.7.3, Siphash and AES key can be specified to create the token.\\n\\n@param `params` Map of parameters used to generate the token.\\n\\n@param `result` Map containing the token, its *ident* and an optional *id*.\\n\\n@param `secret` Secret configured via `token.secret`. This parameter should not be specified when calling `TOKENGEN` from Worf.\\n\\n@param `hash` Siphash for token IDs. Defaults to `warp.hash.token` configuration when both hash and aes are not specified.\\n\\n@param `aes` AES key for wrapping tokens. Defaults to `warp.aes.token` configuration when both hash and aes are not specified.\\n\\n\",\"signature\":\"TOKENGEN( params:MAP ): result:MAP\\nTOKENGEN( params:MAP secret:STRING ): result:MAP\\nTOKENGEN( params:MAP aes:BYTES hash:BYTES ): result:MAP\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.0\",\"OPB64name\":\"TOKENGEN\"},\"TOKENINFO\":{\"description\":\"Retrieves information from token.\\n\\nThe `TOKENINFO` function consumes a token from the top of the stack and pushes back a map containing the token information:\\n* type: type of token 'Read' or 'Write'\\n* issuance: timestamp of token creation, in **milliseconds** since the Unix Epoch \\n* expiry: timestamp of token expiration, in **milliseconds** since the Unix Epoch \\n* application: name of the application accessing the data\\n* apps: list of applications whose data can be accessed (usually limited to a single application)\\n\\n@param `token` Token to extract information\\n\\n@param `infos` Token information extract from the tokens\\n\\n\",\"signature\":\"TOKENINFO( token:STRING ): infos:MAP\",\"tags\":[\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOKENINFO\"},\"TOKENSECRET\":{\"description\":\"Modifies the secret needed for using `TOKENGEN` or `TOKENDUMP`.\\n\\nThis function is only usable if a secret was configured using `token.secret`.\\n\\n@param `secret` Current secret for token operations, initially the value configured via `token.secret`.\\n\\n@param `newsecret` New secret to set for token operations.\\n\\n\",\"signature\":\"TOKENSECRET( newsecret:STRING secret:STRING ): \",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"TOKENSECRET\"},\"TOLONG\":{\"description\":\"Converts a value of primitive type or a **BYTE ARRAY** into a long value.\\n\\nThe `TOLONG` function consumes a parameter (BOOLEAN, LONG, DOUBLE, STRING) from the top of the stack and pushes back its conversion to long.\\n\\nBeware of string inputs with leading zeros: it could be considered as octal. See examples below.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The long conversion of the value\\n\\n@param `array` Maximum 8 bytes to convert to a LONG. Sign is kept.\\n\\n\",\"signature\":\"TOLONG( value:BOOLEAN ): result:LONG\\nTOLONG( value:NUMBER ): result:LONG\\nTOLONG( value:STRING ): result:LONG\\nTOLONG( array:BYTES ): result:LONG\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLONG\"},\"TOLOWER\":{\"description\":\"Converts the **STRING** on top of the stack to lower case.\\n\\n@param `input` input string\\n\\n@param `output` Lower case string\\n\\n\",\"signature\":\"TOLOWER( input:STRING ): output:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOLOWER\"},\"TORADIANS\":{\"description\":\"Converts an angle measured in degrees to its equivalent in radians.\\n\\nThe `TORADIANS` function consumes a number from the top of the stack and pushes back its conversion from degrees to radians.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `angle` Angle in degree to convert in radian\\n\\n@param `result` Result of the conversion from degree to radian\\n\\n@param `langle` List of angles in degree to convert in radian\\n\\n@param `lresult` List of results of the conversion from degree to radian\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the conversion from degree to radian of the given GTS values\\n\\n\",\"signature\":\"TORADIANS( angle:NUMBER ): result:DOUBLE\\nTORADIANS( langle:LIST<NUMBER> ): lresult:LIST<DOUBLE>\\nTORADIANS( gts:GTS ): gtsresult:GTS\",\"tags\":[\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TORADIANS\"},\"TOSELECTOR\":{\"description\":\"The `TOSELECTOR` function takes a Geo Time Series™ or Geo Time Series™ LIST from the top of the stack and, for each encountered GTS, replace it with a selector which would select it.\\n\\nThis selector can be used as input of [`PARSESELECTOR`](/doc/PARSESELECTOR) for a [`FETCH`](/doc/FETCH).\\n\\n@param `gts` The input Geo Time Series™.\\n\\n@param `gtslist` The input list of Geo Time Series™.\\n\\n@param `encoder` The input encoder.\\n\\n@param `encoderlist` The input list of encoders.\\n\\n@param `selector` The selector string.\\n\\n@param `selectorlist` The list of selector strings, one per GTS in gtslist.\\n\\n\",\"signature\":\"TOSELECTOR( gts:GTS ): selector:STRING\\nTOSELECTOR( gtslist:LIST<GTS> ): selectorlist:LIST<STRING>\\nTOSELECTOR( encoder:GTSENCODER ): selector:STRING\\nTOSELECTOR( encoderlist:LIST<GTSENCODER> ): selectorlist:LIST<STRING>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSELECTOR\"},\"TOSTRING\":{\"description\":\"Converts a value of primitive type into a string value.\\n\\nThe `TOSTRING` function consumes a parameter from the top of the stack and pushes back its conversion to string.\\n\\nNote that GTS are converted to input format and that the string ends with CRLF to follow HTTP recommendations.\\n\\n@param `value` The value of primitive type\\n\\n@param `result` The string conversion of the value\\n\\n\",\"signature\":\"TOSTRING( value:NUMBER ): result:STRING\\nTOSTRING( value:BOOLEAN ): result:STRING\\nTOSTRING( value:STRING ): result:STRING\\nTOSTRING( value:GTS ): result:STRING\",\"tags\":[\"strings\",\"conversion\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOSTRING\"},\"TOTIMESTAMP\":{\"description\":\"Converts a date in format ISO8601 into a timestamp in the platform's time unit.\\n\\nThe `TOTIMESTAMP` function consumes a string parameter (date + time + time zone) from the top of the stack and pushes back its conversion to a number of time units since the Unix Epoch.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nThe supported format is ISO8601 and are:\\n* yyyy-mm-dddThh:mm:ss.ssssssZ\\n* yyyy-mm-dddThh:mm:ss+hh:mm\\n\\nAs the string are URL encoded, the symbol + have to be replaced by %2B, otherwise a space will replace the + in the string.\\n\\n@param `input` ISO8601 string.\\n\\n@param `result` timestamp in the platform unit.\\n\\n\",\"signature\":\"TOTIMESTAMP( input:STRING ): result:LONG\",\"tags\":[\"conversion\",\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOTIMESTAMP\"},\"TOUPPER\":{\"description\":\"Converts the **STRING** on top of the stack to upper case.\\n\\n@param `input` input string\\n\\n@param `output` Upper case string\\n\\n\",\"signature\":\"TOUPPER( input:STRING ): output:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TOUPPER\"},\"TR\":{\"description\":\"Computes the [trace](https://en.wikipedia.org/wiki/Trace_(linear_algebra)) of a square matrix. If the input matrix is not square, an error is raised.\\n\\n@param `matrix` The square matrix for which to compute the trace.\\n\\n@param `trace` The computed trace.\\n\\n\",\"signature\":\"TR( matrix:MATRIX ): trace:DOUBLE\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TR\"},\"TRANSPOSE\":{\"description\":\"Computes the [transpose](https://en.wikipedia.org/wiki/Transpose) of a matrix.\\n\\n@param `matrix` Matrix to transpose.\\n\\n@param `transpose` The transpose of the original matrix.\\n\\n\",\"signature\":\"TRANSPOSE( matrix:MATRIX ): transpose:MATRIX\",\"tags\":[\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"TRANSPOSE\"},\"TRIM\":{\"description\":\"Trims whitespaces from both ends of the string on top of the stack.\\n\\n@param `str` String to trim\\n\\n@param `trimmedstr` String trimmed\\n\\n\",\"signature\":\"TRIM( str:STRING ): trimmedstr:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"TRIM\"},\"TRY\":{\"description\":\"The `TRY` function provides a way to execute a macro in a safety harness with [Exception handling](https://en.wikipedia.org/wiki/Exception_handling).\\n\\nIf an error is thrown, it is recorded and will be available via [`ERROR`](/doc/ERROR).\\n\\n@param `try` Macro whose execution is *attempted*.\\n\\n@param `catch` Macro which will be executed if an error is encountered while executing the `try` macro.\\n\\n@param `finally` Macro which will be executed unconditionally after either the `try` or `try`/`catch` execution.\\n\\n\",\"signature\":\"TRY( try:MACRO catch:MACRO finally:MACRO ): \",\"tags\":[\"control\"],\"since\":\"1.2.11\",\"OPB64name\":\"TRY\"},\"TSELEMENTS\":{\"description\":\"Alias of [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nThe `TSELEMENTS` function consumes an optional **STRING** timezone and a **LONG** timestamp and pushes back information on the day and time it represents as a **LIST** of **LONG**:\\n```flow\\n[\\n    year\\n    month\\n    day_of_month\\n    hours\\n    minutes\\n    seconds\\n    subseconds_in_platform_unit\\n    day_of_year\\n    day_of_week\\n    week_of_year\\n  ]\\n```\\n\\nThe indexing is the following: `month`, `day_of_month`, `day_of_year`, `day_of_week` and `week_of_year` use 1-indexing. For `day_of_week`, Monday has the value `1` and Sunday `7`.\\n\\nDepending on the platform time unit, the part representing subseconds can have 3, 6 or 9 digits respectively for milliseconds, microseconds or nanoseconds platform time unit.\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"signature\":\"TSELEMENTS( timestamp:LONG ): dateAndTimeElements:LIST<LONG>\\nTSELEMENTS( timestamp:LONG timezone:STRING ): dateAndTimeElements:LIST<LONG>\",\"tags\":[\"date\",\"time\"],\"since\":\"1.0.0\",\"OPB64name\":\"TSELEMENTS\"},\"TSELEMENTS->\":{\"description\":\"The `TSELEMENTS->` function consumes an optional **STRING** timezone and a **LIST** of **LONG** describing a time and date and pushes back the **LONG** timestamp. The **LIST** of **LONG** follows the format given by [`->TSELEMENTS`](/doc/AItJJoKBGJp4I_GI).\\n\\nValid values for the timezone can be found on the [Joda website](http://joda-time.sourceforge.net/timezones.html) in any of the three columns. If no timezone is specified the pushed back representation is UTC.\\n\\n@param `timezone` Timezone of the pushed back date and time elements.\\n\\n@param `timestamp` Timestamp in platform unit, UTC.\\n\\n@param `dateAndTimeElements` List of long in the format given in the description.\\n\\n\",\"signature\":\"TSELEMENTS->( dateAndTimeElements:LIST<LONG> ): timestamp:LONG\\nTSELEMENTS->( dateAndTimeElements:LIST<LONG> timezone:STRING ): timestamp:LONG\",\"tags\":[\"date\",\"time\"],\"since\":\"1.2.0\",\"OPB64name\":\"K4C4I3KCGJtJJmoy\"},\"TYPEOF\":{\"description\":\"Gets the type of an element.\\n\\nThe `TYPEOF` function consumes the top element on the stack and pushes back a string containing the type. The output could be:\\n+ AGGREGATOR\\n+ BITSET\\n+ BOOLEAN\\n+ BYTES\\n+ CONTEXT\\n+ COUNTER\\n+ DOUBLE\\n+ FILLER\\n+ FILTER\\n+ FUNCTION\\n+ GEOSHAPE\\n+ GTS\\n+ GTSENCODER\\n+ KEY\\n+ LIST\\n+ LONG\\n+ MACRO\\n+ MAP\\n+ MARK\\n+ MATCHER\\n+ MATRIX\\n+ NULL\\n+ OPERATOR\\n+ PFONT\\n+ PGRAPHICS\\n+ PIMAGE\\n+ PSHAPE\\n+ SET\\n+ STRING\\n+ VECTOR\\n+ VLIST\\n\\nFor any object introduced by a WarpScript extension whose output of TYPEOF is not in the list thereof, the output would be preceded by \\\"X-\\\".\\n\\nNote: since revision 2.5.0, the TYPEOF output of bucketizers, mappers, reducers is changed from 'MAPPER' to 'AGGREGATOR'.\\n\\n\\n@param `object` Any kind of reference\\n\\n@param `type` The type of the object\\n\\n\",\"signature\":\"TYPEOF( object:ANY ): type:STRING\",\"tags\":[\"stack\",\"debug\"],\"since\":\"1.0.0\",\"OPB64name\":\"TYPEOF\"},\"UDF\":{\"description\":\"The `UDF` function invokes a User Defined Function from a Jar. A new function instance is loaded at each invocation.\\n\\nThe UDF is a Java class implementing `io.warp10.warp.sdk.WarpScriptJavaFunction` or `io.warp10.warp.sdk.WarpScriptRawJavaFunction`. These interfaces will be deprecated in future releases of Warp 10.\\n\\n@param `class` Fully qualified Java class name of the UDF to invoke.\\n\\n\",\"signature\":\"UDF( class:STRING ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UDF\"},\"ULP\":{\"description\":\"Returns the size of the [ULP (Unit in the Last Place)](https://en.wikipedia.org/wiki/Unit_in_the_last_place) for the argument. The ulp for a DOUBLE is the positive distance between this floating-point value and the DOUBLE value next larger in magnitude.\\n\\nSince 2.6.0, this function can be applied to a list of numeric values. In this case, the function is applied to each element of the list thus returning a list.\\n\\nSince 2.7.1, this function can be also applied to a GTS. In this case, the function is applied to each value of the given GTS, returning a new GTS.\\n\\n@param `value` Numeric value.\\n\\n@param `ulp` Computed ULP.\\n\\n@param `lvalue` List of numeric values.\\n\\n@param `lulp` List of computed ULPs.\\n\\n@param `gts` Numerical GTS\\n\\n@param `gtsresult` GTS whose values are the ULP of the given GTS values\\n\\n\",\"signature\":\"ULP( value:NUMBER ): ulp:DOUBLE\\nULP( lvalue:LIST<NUMBER> ): lulp:LIST<DOUBLE>\\nULP( gts:GTS ): gtsresult:GTS\",\"tags\":[\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"ULP\"},\"UNBUCKETIZE\":{\"description\":\"Transforms a bucketized Geo Time Series™ into a non bucketized one. Note that this function transforms the original GTS, it does not clone it.\\n\\n@param `gts` Single Geo Time Series™ instance.\\n\\n@param `lgts` List of Geo Time Series™ instances.\\n\\n\",\"signature\":\"UNBUCKETIZE( gts:GTS ): gts:GTS\\nUNBUCKETIZE( lgts:LIST<GTS> ): lgts:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNBUCKETIZE\"},\"UNBUCKETIZE.CALENDAR\":{\"description\":\"On a GTS that is calendar-bucketized, this function replaces the ticks with the timestamp end boundaries of each bucket, and unbucketize it.\\n\\n@param `gts` One or more Geo Time Series™ or lists of Geo Time Series™\\n\\n@param `lgts` One or more lists of Geo Time Series™\\n\\n\",\"signature\":\"UNBUCKETIZE.CALENDAR( gts:GTS ): gts:GTS\\nUNBUCKETIZE.CALENDAR( lgts:LIST<GTS> ): lgts:LIST<GTS>\",\"tags\":[\"framework\",\"bucketize\",\"gts\",\"bucketizer\",\"date\"],\"since\":\"2.4.1\",\"OPB64name\":\"UNBUCKETIZE.CALENDAR\"},\"UNGZIP\":{\"description\":\"Decompresses a byte array containing data compressed by [`GZIP`](doc/GZIP).\\n\\n@param `compressed` Compressed byte array to decompress.\\n\\n@param `uncompressed` Byte array resulting from the decompression of 'compressed'.\\n\\n\",\"signature\":\"UNGZIP( compressed:BYTES ): uncompressed:BYTES\",\"tags\":[\"conversion\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNGZIP\"},\"UNION\":{\"description\":\"Computes the union &#x222a; of two sets.\\n\\nThe `UNION` function consumes two sets from the top of the stack and pushes back its mathematical union.\\n\\n@param `setA` The *A* set\\n\\n@param `setB` The *B* set\\n\\n@param `output` The new set containing *A* &#x222a; *B*\\n\\n\",\"signature\":\"UNION( setA:SET setB:SET ): output:SET\",\"tags\":[\"sets\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNION\"},\"UNIQUE\":{\"description\":\"The `UNIQUE` function eliminates duplicate elements on the LIST on the top of the stack.\\nThe order of the resulting LIST is not the same than the original one.\\n\\nIt makes elements of a list unique by converting it to a set temporarily. See [()](/doc/91Z) for more informations.\\n\\n@param `input` The list to parse\\n\\n@param `output` The new list object, without any duplicates\\n\\n\",\"signature\":\"UNIQUE( input:LIST ): output:LIST\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNIQUE\"},\"UNLIST\":{\"description\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`]`](/doc/MF).\\n\\n@param `list` List to expand.\\n\\n@param `elts` Elements of `list`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"signature\":\"UNLIST( list:LIST ): mark:MARK elts:ANY*\",\"tags\":[\"lists\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNLIST\"},\"UNMAP\":{\"description\":\"Unpacks a map, pushing its keys and values onto the stack along a mark as the deepest stack element such that one can use [`}`](/doc/UF) to rebuild the map.\\n\\n@param `k1` First map key.\\n\\n@param `v1` First map value.\\n\\n@param `kN` Nth map key.\\n\\n@param `vN` Nth map value.\\n\\n@param `map` Map to unpack.\\n\\n@param `mark` Mark indicating the deepest level to consider when building the map.\\n\\n\",\"signature\":\"UNMAP( map:MAP ): mark:MARK k1:ANY v1:ANY kN:ANY vN:ANY\",\"tags\":[\"maps\"],\"since\":\"1.0.11\",\"OPB64name\":\"UNMAP\"},\"UNPACK\":{\"description\":\"The `UNPACK` function unpacks a list of numeric or boolean values according to a specified string format.\\n\\nEndianness is at bit-level and not byte-level.\\n\\n* **<Lxx**: Little-endian long, `xx` is optional and is the number of bits which must be less or equal to 64.\\n* **>Lxx**: Big-endian long, `xx` is optional and is the number of bits which must be less or equal to 64\\n* **<Uxx**: Little-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **>Uxx**: Big-endian unsigned long, `xx` is optional and is the number of bits which must be less or equal to 64. U and L only differ when unpacking.\\n* **<D**: Little-endian Double length always equals 64 bits.\\n* **>D**: Big-endian Double length always equals 64 bits.\\n* **B**: Boolean\\n* **Sxx**: Any number of bits set to 1, `xx` is mandatory.\\n* **sxx**: Any number of bits set to 0, `xx` is mandatory.\\n\\n* **<**: No bigendian\\n* **>**: Bigendian\\n* **L**: Long\\n* **B**: Boolean\\n* **D**: Double length always equals 64.\\n* **<L32**: No bigendian 32 bits Long\\n\\n@param `list` Pqcked list to unpack\\n\\n@param `format` Format used to unpack\\n\\n@param `result` Unpacked list\\n\\n\",\"signature\":\"UNPACK( list:BYTES format:STRING ): result:LIST<ANY>\",\"tags\":[\"lists\"],\"since\":\"1.0.7\",\"OPB64name\":\"UNPACK\"},\"UNSECURE\":{\"description\":\"The `UNSECURE` function decrypts a secure script. The correct secret MUST have been set using [`SECUREKEY`](doc/SECUREKEY) prior to calling this function.\\n\\n@param `secure` STRING with the secure script to decode.\\n\\n@param `script` Decoded scripted.\\n\\n\",\"signature\":\"UNSECURE( secure:STRING ): script:STRING\",\"tags\":[\"crypto\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNSECURE\"},\"UNSET\":{\"description\":\"Expands a list by pushing a [`MARK`](/doc/MARK) followed by all the lists elements onto the stack.\\n\\nThe list can be regenerated by calling [`)`](/doc/9F).\\n\\n@param `set` Set to expand.\\n\\n@param `elts` Elements of `set`.\\n\\n@param `mark` Instance of MARK.\\n\\n\",\"signature\":\"UNSET( set:SET ): mark:MARK elts:ANY*\",\"tags\":[\"sets\"],\"since\":\"2.6.0\",\"OPB64name\":\"UNSET\"},\"UNTIL\":{\"description\":\"The `UNTIL` function implements an until loop. It takes two macros as arguments from the stack: the code to execute until the condition is true and the condition to evaluate after every iteration.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force UNTIL to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n\\n@param `code` Macro executed on each loop\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"signature\":\"UNTIL( code:MACRO condition:MACRO ): \\nUNTIL( code:MACRO condition:MACRO index:BOOLEAN ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNTIL\"},\"UNWRAP\":{\"description\":\"Unwraps packed Geo Time Series™ instances.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"signature\":\"UNWRAP( wrapped:STRING ): gts:GTS\\nUNWRAP( wrappedbytes:BYTES ): gts:GTS\\nUNWRAP( lwrapped:LIST<STRING> ): lgts:LIST<GTS>\\nUNWRAP( lwrapped:LIST<BYTES> ): lgts:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"UNWRAP\"},\"UNWRAPEMPTY\":{\"description\":\"Unwraps wrapped Geo Time Series™ instances without unpacking the actual datapoints. This is handy to extract the metadata (class, labels, attributes) from a set of wrapped GTS.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `gts` Decoded Geo Time Series™.\\n\\n@param `lgts` List of decoded Geo Time Series™.\\n\\n\",\"signature\":\"UNWRAPEMPTY( wrapped:STRING ): gts:GTS\\nUNWRAPEMPTY( wrappedbytes:BYTES ): gts:GTS\\nUNWRAPEMPTY( lwrapped:LIST<STRING> ): lgts:LIST<GTS>\\nUNWRAPEMPTY( lwrapped:LIST<BYTES> ): lgts:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPEMPTY\"},\"UNWRAPENCODER\":{\"description\":\"Unwraps packed Geo Time Series™ into encoders.      \\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `encoder` Encoder with decoded Geo Time Series™ datapoints.\\n\\n@param `lencoder` List of encoders with decoded Geo Time Series™.\\n\\n\",\"signature\":\"UNWRAPENCODER( wrapped:STRING ): encoder:GTSENCODER\\nUNWRAPENCODER( wrappedbytes:BYTES ): encoder:GTSENCODER\\nUNWRAPENCODER( lwrapped:LIST<STRING> ): lencoder:LIST<GTSENCODER>\\nUNWRAPENCODER( lwrapped:LIST<BYTES> ): lencoder:LIST<GTSENCODER>\",\"tags\":[\"gts\"],\"since\":\"1.2.9\",\"OPB64name\":\"UNWRAPENCODER\"},\"UNWRAPSIZE\":{\"description\":\"Extracts the size (number of datapoints) of wrapped Geo Time Series™ instances.\\n\\n@param `wrapped` String representation of a packed Geo Time Series™ instance.\\n\\n@param `wrappedbytes` Byte array of a packed GTS.\\n\\n@param `lwrapped` List of packed representations of Geo Time Series™, either as STRING or byte arrays.\\n\\n@param `size` Decoded Geo Time Series™ size.\\n\\n@param `lsize` List of decoded Geo Time Series™ sizes.\\n\\n\",\"signature\":\"UNWRAPSIZE( wrapped:STRING ): size:LONG\\nUNWRAPSIZE( wrappedbytes:BYTES ): size:LONG\\nUNWRAPSIZE( lwrapped:LIST<STRING> ): lsize:LIST<LONG>\\nUNWRAPSIZE( lwrapped:LIST<BYTES> ): lsize:LIST<LONG>\",\"tags\":[\"gts\"],\"since\":\"1.2.5\",\"OPB64name\":\"UNWRAPSIZE\"},\"UPDATE\":{\"description\":\"Pushes Geo Time Series™ data to the Warp 10 instance.\\n\\nThe `UPDATE` function allows you to push data directly from your WarpScript code without having to retrieve the data and use the `/update` endpoint.\\n\\nThe GTS or Encoder instances to push *MUST* have a non empty name and in the case of Geo Time Series™ *MUST* have been renamed (to avoid pushing data by mistake which could override existing data you just retrieved).\\n\\n@param `token` Write token to use for pushing the data.\\n\\n@param `gts` Geo Time Series™ to push.\\n\\n@param `encoder` GTS Encoder to push.\\n\\n@param `list` List containing Geo Time Series™ and/or GTS Encoder instances to push.\\n\\n\",\"signature\":\"UPDATE( gts:GTS token:STRING ): \\nUPDATE( encoder:GTSENCODER token:STRING ): \\nUPDATE( list:LIST<GTS> token:STRING ): \\nUPDATE( list:LIST<GTSENCODER> token:STRING ): \",\"tags\":[\"gts\",\"platform\"],\"since\":\"1.0.0\",\"OPB64name\":\"UPDATE\"},\"UPDATEOFF\":{\"description\":\"Disables update operations on the platform. Attempts to perform such operations will fail with the provided message.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n@param `message` Message to return when an update operation is attempted.\\n\\n\",\"signature\":\"UPDATEOFF( message:STRING secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEOFF\"},\"UPDATEON\":{\"description\":\"Enables update operations on the platform.\\n\\n@param `secret` Warp 10™ Manager Secret.\\n\\n\",\"signature\":\"UPDATEON( secret:STRING ): \",\"tags\":[\"platform\"],\"since\":\"2.0.3\",\"OPB64name\":\"UPDATEON\"},\"URLDECODE\":{\"description\":\"Decodes a [URL encoded](https://en.wikipedia.org/wiki/Percent-encoding) STRING.\\n\\n@param `encoded` Encoded STRING to decode.\\n\\n@param `decoded` Decoded STRING.\\n\\n\",\"signature\":\"URLDECODE( encoded:STRING ): decoded:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLDECODE\"},\"URLENCODE\":{\"description\":\"Encodes a STRING using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and replacing occurrences of '+' with '%20'.\\n\\nThe character set used is [UTF-8](https://en.wikipedia.org/wiki/UTF-8).\\n\\n@param `string` Input STRING to encode.\\n\\n@param `encoded` Encoded version of 'string' using the UTF-8 character set.\\n\\n\",\"signature\":\"URLENCODE( string:STRING ): encoded:STRING\",\"tags\":[\"strings\"],\"since\":\"1.0.0\",\"OPB64name\":\"URLENCODE\"},\"URLFETCH\":{\"description\":\"The `URLFETCH` function sends HTTP(S) GET requests, waits for the responses and puts them on the stack.\\n\\nFor security reasons, the stack must be authenticated for this function to work, see [`AUTHENTICATE`](/doc/AUTHENTICATE).\\n\\nSince 2.7.0, this function also accepts a MAP of headers.\\n\\n@param `url` The URL to send the GET request to. Must begin with `http://` or `https://`.\\n\\n@param `urls` The list of URLs to send the GET requests to. Each URL must begin with `http://` or `https://`. \\n\\n@param `result` A list containing, for each URL, a 4-element list. These 4-element lists contain, in this order, a LONG status code, a STRING status message or an empty STRING if not available, a MAP of headers and a STRING representing a bytes array encoded as base 64.\\n\\n@param `headers` \\n\\n\",\"signature\":\"URLFETCH( url:STRING ): result:LIST<LIST>\\nURLFETCH( url:STRING headers:MAP ): result:LIST<LIST>\\nURLFETCH( urls:LIST<STRING> ): result:LIST<LIST>\\nURLFETCH( urls:LIST<STRING> headers:MAP ): result:LIST<LIST>\",\"tags\":[\"extensions\",\"web\"],\"since\":\"1.0.2\",\"OPB64name\":\"URLFETCH\"},\"UUID\":{\"description\":\"Pushes onto the stack a randomly generated [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).\\n\\n@param `uuid` Generated UUID string\\n\\n\",\"signature\":\"UUID(): uuid:STRING\",\"tags\":[\"misc\"],\"since\":\"1.0.0\",\"OPB64name\":\"UUID\"},\"V->\":{\"description\":\"The `V->` function converts a Vector (VLIST) on top of the stack into a list.\\n\\n@param `list` Input Vector.\\n\\n@param `result` Result list.\\n\\n\",\"signature\":\"V->( list:VLIST ): result:LIST\",\"tags\":[\"lists\",\"conversion\",\"pig\"],\"since\":\"1.0.11\",\"OPB64name\":\"KXoy\"},\"VALUEDEDUP\":{\"description\":\"Deletes duplicated values of the Geo Time Series™.\\n\\nThe `VALUEDEDUP` function takes as parameter a **GTS** or a **LIST** of **GTS** and it removes its duplicate values.\\n\\nExpects a boolean indicating whether we keep the oldest or most recent datapoint for a given value.\\n\\n@param `order` Boolean value, true for keeping the oldest datapoint for a given value, false otherwise.\\n\\n@param `gts` Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `lgts` List of Geo Time Series™ for which to remove the duplicated values.\\n\\n@param `dedupgts` Geo Time Series™ with unique values.\\n\\n@param `ldedupgts` List of Geo Time Series™ with unique values.\\n\\n\",\"signature\":\"VALUEDEDUP( gts:GTS order:BOOLEAN ): dedupgts:GTS\\nVALUEDEDUP( lgts:LIST<GTS> order:BOOLEAN ): ldedupgts:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEDEDUP\"},\"VALUEHISTOGRAM\":{\"description\":\"Produces the value histogram of a Geo Time Series™ or (since 2.2.0) of a GTS Encoder.\\n\\nThe histogram is a map with an entry for each value (used as the map key), with an associated value equal to the number of occurrences of the value in the series.\\n\\nIf the input is a bucketized Geo Time Series™, the `NULL` key will have an associated value which is the number of buckets without values (assuming no datapoints were added at timestamps other than those of buckets).\\n\\nWhen the input is a GTS Encoder, keys may be BigDecimal, LONG, DOUBLE, BOOLEAN or STRING, binary values are not used as keys, their STRING representation (in ISO-8859-1) is used.\\n\\n@param `gts` Geo Time Series™ for which to compute the histogram\\n\\n@param `encoder` GTS Encoder for which to compute the histogram\\n\\n@param `histogram` The value histogram for the input Geo Time Series™ or GTS Encoder\\n\\n@param `list` List of Geo Time Series™ or GTS Encoders\\n\\n@param `lhistogram` The list of value histogram maps\\n\\n\",\"signature\":\"VALUEHISTOGRAM( gts:GTS ): histogram:MAP\\nVALUEHISTOGRAM( encoder:GTSENCODER ): histogram:MAP\\nVALUEHISTOGRAM( list:LIST<GTS> ): lhistogram:LIST<MAP>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUEHISTOGRAM\"},\"VALUELIST\":{\"description\":\"Gets values from a **MAP**.\\n\\nThe function `VALUELIST` extracts the values of a **MAP** on the top of the stack and pushes on the stack a list with those values. The **MAP** is consumed.\\n\\n\\n@param `map` Map for which to get the values.\\n\\n@param `values` List of values for the input MAP.\\n\\n\",\"signature\":\"VALUELIST( map:MAP ): values:LIST\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUELIST\"},\"VALUES\":{\"description\":\"Gets the values of Geo Time Series™ or encoders.\\n\\nThe `VALUES` function consumes a Geo Time Series™, an encoder or a list thereof from the stack, and it replaces each instance of Geo Time Series™ or encoder by a list of its values.\\n\\n\\n** Warning:** To be consistent with `VALUES`, use [`TICKLIST`](/doc/TICKLIST), not `TICKS`.\\n\\n\\n@param `gts` Geo Time Series™ for which to get the values.\\n\\n@param `lgts` List of Geo Time Series™ for which to get the values.\\n\\n@param `encoder` Encoder for which to get the values.\\n\\n@param `lencoder` List of encoders for which to get the values.\\n\\n@param `values` List of values from the input Geo Time Series™.\\n\\n@param `lvalues` List of list of values from the input Geo Time Series™ list.\\n\\n\",\"signature\":\"VALUES( gts:GTS ): values:LIST\\nVALUES( lgts:LIST<GTS> ): lvalues:LIST<LIST>\\nVALUES( encoder:GTSENCODER ): values:LIST\\nVALUES( lencoder:LIST<GTSENCODER> ): lvalues:LIST<LIST>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUES\"},\"VALUESORT\":{\"description\":\"Sorts values of the Geo Time Series™ in ascending order.\\n\\nThe function `VALUESORT` takes the **GTS** on top of the stack and sort its values (and associated locations/elevations) in ascending order.\\n\\n@param `gts` Geo Time Series™ for which to sort the values.\\n\\n@param `sortedgts` Geo Time Series™ with sorted values.\\n\\n@param `lgts` List of Geo Time Series™.\\n\\n@param `lsortedgts` List of Geo Time Series™ with sorted values.\\n\\n\",\"signature\":\"VALUESORT( gts:GTS ): sortedgts:GTS\\nVALUESORT( lgts:LIST<GTS> ): lsortedgts:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESORT\"},\"VALUESPLIT\":{\"description\":\"Splits Geo Time Series™ by values.\\n\\nThe function `VALUESPLIT` takes one **STRING** on top of the stack plus one **GTS** or a list of **GTS**. It splits **GTS** by values and creates a **GTS** for each different value. For each new **GTS**, the label specified in parameter will be added.\\n\\nThe new **GTS** will be sorted by value with `VALUESORT`.\\n\\n@param `label` Label to add to the new Geo Time Series™.\\n\\n@param `gts` Geo Time Series™ to split by value.\\n\\n@param `splitedgts` List of Geo Time Series™ splited by value.\\n\\n@param `lgts` List of Geo Time Series™ to split by value.\\n\\n@param `lsplitedgts` List of Geo Time Series™ splited by value.\\n\\n\",\"signature\":\"VALUESPLIT( gts:GTS label:STRING ): splitedgts:LIST<GTS>\\nVALUESPLIT( lgts:LIST<GTS> label:STRING ): lsplitedgts:LIST<LIST<GTS>>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"VALUESPLIT\"},\"VARINT->\":{\"description\":\"The `VARINT` function decodes [VarInt](https://developers.google.com/protocol-buffers/docs/encoding#varints) encoded numbers.\\n\\n@param `numbers` List of decoded numbers.\\n\\n@param `encoded` Byte array containing the encoded number(s) to decode.\\n\\n@param `count` Maximum number of `LONG`s to decode.\\n\\n@param `processed` Number of bytes which were processed to decode the numbers.\\n\\n\",\"signature\":\"VARINT->( encoded:BYTES ): numbers:LIST<LONG>\\nVARINT->( encoded:BYTES count:LONG ): numbers:LIST<LONG> processed:LONG\",\"tags\":[\"conversion\",\"binary\"],\"since\":\"2.6.0\",\"OPB64name\":\"KZ4HHJtJAIs\"},\"VARS\":{\"description\":\"Extracts all variables used in a macro. The `VARS` function scans the macro for occurrences of `LOAD`, `STORE` or `CSTORE` functions and inspects the associated variable name. If such a name is not an explicit STRING, the call to `VARS` will fail with an error.\\n\\nThe list of symbols is sorted according to the number of occurrences encountered, decreasing.\\n\\n@param `macro` Macro to inspect.\\n\\n@param `vars` List of encountered symbols.\\n\\n@param `onlyPoprAndStore` Returns only variables used by POPR, CPOPR and STORE. Defaults to false.\\n\\n\",\"signature\":\"VARS( macro:MACRO ): vars:LIST<STRING>\\nVARS( macro:MACRO onlyPoprAndStore:BOOLEAN ): vars:LIST<STRING>\",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"VARS\"},\"VEC->\":{\"description\":\"The `VEC->` function converts a Vector into a list.\\n\\n\\n@param `input` Vector to convert\\n\\n@param `result` list\\n\\n\",\"signature\":\"VEC->( input:VECTOR ): result:LIST\",\"tags\":[\"lists\",\"conversion\",\"math\"],\"since\":\"1.0.6\",\"OPB64name\":\"KZK2AIs\"},\"WEBCALL\":{\"description\":\"Makes an outbound HTTP call.\\n\\nNote that the hosts which may be reached via `WEBCALL` might have been restricted through the use of the `webcall.host.patterns` Warp&nbsp;10 configuration parameter.\\n\\nThe write token is here to check you have the right to send a webcall. If the write token is valid, then the request is sent. It will never be sent in the request.\\n\\nThe call to `WEBCALL` returns a UUID on the stack. The actual request is performed asynchronously, the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`.\\n\\n@param `body` body of the request.\\n\\n@param `headers` map of additionnal http headers.\\n\\n@param `url` supported schemes are http and https.\\n\\n@param `method` `GET` or `POST` string.\\n\\n@param `token` valid write token\\n\\n@param `uuid` the UUID will appear in the `X-Warp10-WebCall` header or the header configured via `http.header.webcall.uuid`\\n\\n\",\"signature\":\"WEBCALL( token:STRING method:STRING url:STRING headers:MAP body:STRING ): uuid:STRING\",\"tags\":[\"web\"],\"since\":\"1.0.0\",\"OPB64name\":\"WEBCALL\"},\"WF.ADDREPO\":{\"description\":\"The `WF.ADDREPO` function allows you to add a repository to the list of repositories taken into account by the WarpFleet™ macro resolver.\\n\\nIf the URL is valid (syntactically), then it will be added at the end of the current list of repositories scanned by the resolver. All repository URLs will then be validated by the `validator` macro defined in the configuration (`warpfleet.macros.validator`). Those URLs for which the `validator` macro returned true will be retained.\\n\\nNote that the repository is only added in the scope of the current stack.\\n\\n@param `url` URL to add to the list of repositories.\\n\\n\",\"signature\":\"WF.ADDREPO( url:STRING ): \",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.ADDREPO\"},\"WF.GETREPOS\":{\"description\":\"Retrieves the current list of repositories used by the WarpFleet™ resolver.\\n\\nNote that if the configuration disabled the use of this function (via `warpfleet.getrepos.disable`), the returned list will be empty even though it contains repositories.\\n\\n@param `repos` Current list of repository URLs.\\n\\n\",\"signature\":\"WF.GETREPOS(): repos:LIST<STRING>\",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.GETREPOS\"},\"WF.SETREPOS\":{\"description\":\"Sets the list of repositories used by the WarpFleet™ resolver to the given value (list of valid URLs).\\n\\nEach URL is tested against WarpFleet™ validator macro to check if it is allowed. Non-valid ones are discarded.\\n\\nNote that this changes the list only for the scope of the current WarpScript execution.\\n\\n@param `repos` List of URLs to use for the WarpFleet™ resolver.\\n\\n\",\"signature\":\"WF.SETREPOS( repos:LIST<STRING> ): \",\"tags\":[\"stack\"],\"since\":\"2.0.3\",\"OPB64name\":\"WF.SETREPOS\"},\"WFOFF\":{\"description\":\"The `WFOFF` function disables the WarpFleet™ Resolver. It can be re-enabled using `WFON`.\\n\\nThis is useful when you want to ensure that a macro call only looks it up locally.\\n\\n\",\"signature\":\"WFOFF(): \",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFOFF\"},\"WFON\":{\"description\":\"The `WFON` function enables the WarpFleet™ Resolver after it has been disabled by `WFOFF`.\\n\\n\",\"signature\":\"WFON(): \",\"tags\":[\"stack\"],\"since\":\"2.1.0\",\"OPB64name\":\"WFON\"},\"WHILE\":{\"description\":\"The `WHILE` function implements a while loop. It takes two macros as arguments from the stack: the condition macro to evaluate and the macro to execute while the condition is true.\\n\\nIf one iteration takes too long (`warpscript.maxloop`) the loop will be killed.\\n\\nSince Warp 10 2.4.0, you can force WHILE to push an index (iteration count, start at 0) on the top of the stack before calling the macro.\\n\\n@param `condition` Macro evaluated for the loop condition, must leave a boolean on top of the stack\\n\\n@param `code` Macro executed on each loop\\n\\n@param `index` When set to true, the current index (iteration count, starts at 0) will be on the top of the stack. By default, false\\n\\n\",\"signature\":\"WHILE( condition:MACRO code:MACRO ): \\nWHILE( condition:MACRO code:MACRO index:BOOLEAN ): \",\"tags\":[\"control\"],\"since\":\"1.0.0\",\"OPB64name\":\"WHILE\"},\"WHIRLPOOL\":{\"description\":\"The `WHIRLPOOL` function digests a byte array on the stack with the cryptographic hash function [Whirlpool](https://en.wikipedia.org/wiki/Whirlpool_(hash_function)).\\n\\n@param `input` Byte array\\n\\n@param `result` Byte array\\n\\n\",\"signature\":\"WHIRLPOOL( input:BYTES ): result:BYTES\",\"tags\":[\"crypto\"],\"since\":\"2.8.0\",\"OPB64name\":\"WHIRLPOOL\"},\"WRAP\":{\"description\":\"The `WRAP` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a STRING.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAP( encoder:GTSENCODER ): wrapped:STRING\\nWRAP( lencoder:GTSENCODER ): lwrapped:LIST<STRING>\\nWRAP( gts:GTS ): wrapped:STRING\\nWRAP( lgts:LIST<GTS> ): lwrapped:LIST<STRING>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.0\",\"OPB64name\":\"WRAP\"},\"WRAPFAST\":{\"description\":\"The `WRAPFAST` function packs a Geo Time Series™ (or a list thereof) or a GTS Encoder into a byte array. For fast execution, the content of the GTS is not compressed, so the resulting byte array will be larger than that produced by `WRAPRAW`.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAPFAST( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPFAST( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPFAST( gts:GTS ): wrapped:BYTES\\nWRAPFAST( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPFAST\"},\"WRAPMV\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPRAWOPT`, `WRAPMV` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAPMV( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPMV( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPMV( gts:GTS ): wrapped:BYTES\\nWRAPMV( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.1.0\",\"OPB64name\":\"WRAPMV\"},\"WRAPMV!\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES array as if the input was a Multivariate value.\\n\\nJust like `WRAPMV`, `WRAPMV!` attempts to optimize the representation of DOUBLE values for Geo Time Series™ but unlike `WRAPMV`, it does not increase the compression aggressiveness for GTS Encoders.\\n\\nThe result is also stripped of all Metadata (class, labels, attributes), and no sizing hint is given.        \\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAPMV!( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPMV!( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPMV!( gts:GTS ): wrapped:BYTES\\nWRAPMV!( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"tags\":[\"gts\",\"encoder\",\"multivariate\"],\"since\":\"2.6.0\",\"OPB64name\":\"Kp80J3pL7F\"},\"WRAPOPT\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a STRING. The packing performed by `WRAPOPT` differs from that of [`WRAP`](/doc/WRAP) only by the fact that `WRAPOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of STRINGs containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAPOPT( encoder:GTSENCODER ): wrapped:STRING\\nWRAPOPT( lencoder:GTSENCODER ): lwrapped:LIST<STRING>\\nWRAPOPT( gts:GTS ): wrapped:STRING\\nWRAPOPT( lgts:LIST<GTS> ): lwrapped:LIST<STRING>\",\"tags\":[\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPOPT\"},\"WRAPRAW\":{\"description\":\"The `WRAPRAW` function packs a Geo Time Series™ into a byte array.\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAPRAW( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPRAW( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPRAW( gts:GTS ): wrapped:BYTES\\nWRAPRAW( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.0.7\",\"OPB64name\":\"WRAPRAW\"},\"WRAPRAWOPT\":{\"description\":\"Packs a Geo Time Series™ (or a list thereof) or a GTS Encoder instance into a BYTES. The packing performed by `WRAPRAWOPT` differs from that of [`WRAPRAW`](/doc/WRAPRAW) only by the fact that `WRAPRAWOPT` attempts to optimize the representation of DOUBLE values for Geo Time Series™ and increases the compression aggressiveness for GTS Encoders.\\n\\n\\n@param `encoder` GTS Encoder to pack.\\n\\n@param `gts` Geo Time Series™ instance to pack.\\n\\n@param `lgts` List of Geo Time Series™ to pack.\\n\\n@param `lencoder` List of GTS encoders to pack.\\n\\n@param `wrapped` String containing the packed Geo Time Series™ or Encoder.\\n\\n@param `lwrapped` List of byte arrays containing packed GTS or Encoders.\\n\\n\",\"signature\":\"WRAPRAWOPT( encoder:GTSENCODER ): wrapped:BYTES\\nWRAPRAWOPT( lencoder:GTSENCODER ): lwrapped:LIST<BYTES>\\nWRAPRAWOPT( gts:GTS ): wrapped:BYTES\\nWRAPRAWOPT( lgts:LIST<GTS> ): lwrapped:LIST<BYTES>\",\"tags\":[\"gts\",\"encoder\"],\"since\":\"1.2.3\",\"OPB64name\":\"WRAPRAWOPT\"},\"WSINFO\":{\"description\":\"Displays information about WarpScript environments with a given session id. The information are returned as a map identical to that returned by [`WSPS`](/doc/WSPS):\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `session` Session of the environments to inspect.\\n\\n@param `infos` List of information about each WarpScript execution environment with 'session' as their session name.\\n\\n\",\"signature\":\"WSINFO( session:STRING ): infos:LIST<MAP>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSINFO\"},\"WSKILL\":{\"description\":\"Kills the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP) and marking the environment as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to kill.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"signature\":\"WSKILL( uuid:STRING secret:STRING ): status:BOOLEAN\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILL\"},\"WSKILLSESSION\":{\"description\":\"Kills the execution WarpScript programs by forcing a call to [`STOP`](/doc/STOP) and marking the environments as forcibly stopped.\\n\\nAny further attempt to execute a function will also force a call to [`STOP`](/doc/STOP).\\n\\n@param `session` Session id of the WarpScript execution environments to kill.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"signature\":\"WSKILLSESSION( session:STRING ): count:LONG\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSKILLSESSION\"},\"WSNAME\":{\"description\":\"Modifies the name associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stack.name` in the attributes map.\\n\\nName size is limited to 128 characters.\\n\\n@param `name` Name to assign to the calling execution environment, or `NULL` to simply read the current name.\\n\\n@param `current` Name assigned to the execution environment.\\n\\n\",\"signature\":\"WSNAME( name:STRING ): current:STRING\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSNAME\"},\"WSPS\":{\"description\":\"Lists all the registers WarpScript execution environments. For each environment a map is returned with the following fields:\\n\\n| Key | Description |\\n|-----|-------------|\\n| `uuid` | Unique id associated with the environment. |\\n| `attributes` | Map of exposed stack attributes. |\\n\\nThe list of exposed attributes may evolve in future releases.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `procs` List of information about each registered WarpScript execution environment.\\n\\n\",\"signature\":\"WSPS( secret:STRING ): procs:LIST<MAP>\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSPS\"},\"WSSESSION\":{\"description\":\"Modifies the session id associated with the execution environment. This name appears in the information returned by [`WSPS`](/doc/WSPS) and [`WSINFO`](/doc/WSINFO) under the key `stackps.session` in the attributes map.\\n\\nSession id size is limited to 128 characters.\\n\\nSession can also be set by setting the `X-Warp10-WarpScriptSession` header.\\n\\nOnce the session has been set it cannot be modified.\\n\\n@param `session` Session id to assign to the calling execution environment, or NULL to simply read the current session id.\\n\\n@param `current` The session id assigned to the execution environment.\\n\\n\",\"signature\":\"WSSESSION( session:STRING ): current:STRING\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSESSION\"},\"WSSTACK\":{\"description\":\"Select the WarpScript™ (*i.e.* SNAPSHOT) format for the display of stack levels.\\n\\nWhen called outside of interactive mode, does nothing.\\n\\n\",\"signature\":\"WSSTACK(): \",\"tags\":[\"stack\"],\"since\":\"2.0.0\",\"OPB64name\":\"WSSTACK\"},\"WSSTOP\":{\"description\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\n@param `secret` Secret for process status operations.\\n\\n@param `uuid` UUID of the WarpScript execution environment to stop.\\n\\n@param `status` `true` if an environment was found with that `uuid`, `false` otherwise.\\n\\n\",\"signature\":\"WSSTOP( uuid:STRING secret:STRING ): status:BOOLEAN\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOP\"},\"WSSTOPSESSION\":{\"description\":\"Stops the execution of a WarpScript program by forcing a call to [`STOP`](/doc/STOP). If the WarpScript program is currently in a [`TRY`](/doc/TRY) call, the execution may continue depending on the *catch* macro.\\n\\nThe environments to stop are identified by a session id.\\n\\n@param `session` Session of the WarpScript execution environments to stop.\\n\\n@param `count` Number of environments which had `session` as their session id.\\n\\n\",\"signature\":\"WSSTOPSESSION( session:STRING ): count:LONG\",\"tags\":[\"extensions\",\"platform\"],\"since\":\"2.5.0\",\"OPB64name\":\"WSSTOPSESSION\"},\"Z->\":{\"description\":\"Unpacks LONG values from a [Morton Code](https://en.wikipedia.org/wiki/Z-order_curve) stored in a byte array.\\n\\n@param `bitwidth` Size in bits of the LONG values to extract, from 1 to 63.\\n\\n@param `n` Number of LONG values to extract.\\n\\n@param `z` Byte array containing the Morton Code to unpack.\\n\\n@param `longs` List of extracted LONG values.\\n\\n\",\"signature\":\"Z->( z:BYTES n:LONG bitwidth:LONG ): longs:LIST<LONG>\",\"tags\":[\"conversion\"],\"since\":\"1.0.6\",\"OPB64name\":\"LXoy\"},\"ZDISCORDS\":{\"description\":\"The `ZDISCORDS` function detects discords in a standardized ([`STANDARDIZE`](/doc/STANDARDIZE) Geo Time Series™. The discord detection\\n algorithm is based on identifying outlier patterns in the Geo Time Series™. Outliers are patterns which differ significantly from their nearest neighbor.\\n\\nThe following constraints are enforced:\\n\\n- pattern length must divide window size\\n- quantization scale must be a power of two from 2 to 65536\\n- `ZDISCORDS` can only be applied to numeric Geo Time Series™ which are bucketized and filled (i.e. no bucket with missing values).\\n\\nGiven the `ZDISCORDS` expects the Geo Time Series™ it operates on to be standardized ([`STANDARDIZE`](/doc/STANDARDIZE), the discord detection \\nalgorithm is more sensitive than that of [`DISCORDS`](/doc/DISCORDS).\\n\\n@param `distance` This ratio is used to ignore patterns whose distance to their nearest neighbor is less than 1/ratio that of the previously selected pattern. This parameter is for advanced users, it is safe to leave it to 0.0.\\n\\n@param `overlapping` Flag indicating whether or not the `ZDISCORDS` function should report overlapping discords.\\n\\n@param `maximum` The maximum number of discords to identify.\\n\\n@param `window_size` Window size which is the width of each interval on which the pattern extraction should be performed, a pattern length which will determine how the window is segmented, and lastly a quantization scale which will determine how many different buckets will be used to ventilate the series values. (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `result` Geo Time Series™ whose ticks are those where discords were detected. The value, location and elevation at each tick are those of the input Geo Time Series™.\\n\\n\",\"signature\":\"ZDISCORDS( window_size:LONG maximum:LONG overlapping:BOOLEAN distance:DOUBLE ): result:GTS\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZDISCORDS\"},\"ZDTW\":{\"description\":\"The `DTW` function computes a [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) pseudo-distance on two Geo Time Series™.\\n\\nThe Geo Time Series™ will be Z-normalized prior to the computation.\\n\\n@param `threshold` Value above which the DTW computation will be aborted. Use 0.0 to disable the abort feature.\\n\\n@param `gts1` First Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `gts2` Second Geo Time Series™ on which to perform the DTW operation.\\n\\n@param `characteristic` Optional characteristic of the GTS to use to compute the DTW on. Valid values are 'values', 'locations', 'elevations', 'timestamps'. If not specified, defaults to 'values'.\\n\\n@param `distance` Optional distance to use. Valid values are 'manhattan', 'euclidean', 'squaredeuclidean', 'loxodromic' and 'orthodromic'. If not specified, default to 'manhattan'.\\n\\n@param `dtw` The computed [Dynamic Time Warping](https://en.wikipedia.org/wiki/Dynamic_time_warping) or -1 if the threshold was reached.\\n\\n\",\"signature\":\"ZDTW( gts1:GTS gts2:GTS threshold:DOUBLE ): dtw:DOUBLE\\nZDTW( gts1:GTS gts2:GTS threshold:DOUBLE characteristic:STRING ): dtw:DOUBLE\\nZDTW( gts1:GTS gts2:GTS threshold:DOUBLE distance:STRING characteristic:STRING ): dtw:DOUBLE\",\"tags\":[\"gts\",\"distance\"],\"since\":\"1.2.11\",\"OPB64name\":\"ZDTW\"},\"ZIP\":{\"description\":\"The function ZIP takes a list of lists as parameters. Each list which are not singletons must be of same size.\\n\\nIt returns a list of lists where the i-th list contains the i-th elements of each input list in the same order.\\n\\nAlso, it considers singletons as a list of the same size with a duplicated value.\\n\\n@param `input` List of lists\\n\\n@param `output` List of lists\\n\\n\",\"signature\":\"ZIP( input:LIST<LIST> ): output:LIST<LIST>\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZIP\"},\"ZPATTERNDETECTION\":{\"description\":\"The `ZPATTERNDETECTION` function will detect patterns in a Geo Time Series™. The patterns it is able to detect are those extracted by the [`ZPATTERNS`](/doc/ZPATTERNS) or [`PATTERNS`](/doc/PATTERNS) functions.\\n\\nThe `ZPATTERNDETECTION` does not standardize the datapoints in the sliding window, assuming (wrongly) they already are.\\n\\nThe following constraints are enforced:\\n\\n* pattern length must divide window size\\n* quantization scale must be a power of two from 2 to 65536\\n* `ZPATTERNDETECTION` can only be applied to numeric Geo Time Series™ which are [bucketized](/doc/BUCKETIZE) and [filled](/doc/FILLVALUE) (i.e. no bucket with missing values).\\n* the patterns to detect must have been extracted with the same quantization scale and pattern length, the window size can be different.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `patterns` The list of patterns to detect (see [`PATTERNS`](/doc/PATTERNS))\\n\\n@param `lgts` The list of Geo Time Series™ to transform.\\n\\n@param `gts` The single GTS to transform.\\n\\n@param `result` The new Geo Time Series™ with values only at ticks at which one of the patterns was detected. The actual pattern detected is not available, call `PATTERNDETECTION` with a single pattern if you need to keep track of it.\\n\\n@param `lresult` The list of result GTS.\\n\\n\",\"signature\":\"ZPATTERNDETECTION( gts:GTS patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nZPATTERNDETECTION( lgts:LIST<GTS> patterns:LIST<STRING> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNDETECTION\"},\"ZPATTERNS\":{\"description\":\"Extracts symbolic patterns from Geo Time Series™ as [`PATTERNS`](/doc/PATTERNS) does, but does not standardize each window, assuming (wrongly) the GTS windows are already standardized.\\n\\n@param `wsize` The window size which is the width of each interval on which the pattern extraction should be performed\\n\\n@param `length` The pattern length which will determine how the window is segmented\\n\\n@param `scale` The quantization scale which will determine how many different buckets will be used to ventilate the series values\\n\\n@param `lgts` The list of Geo Time Series™ to transform\\n\\n@param `gts` The single GTS to transform\\n\\n@param `result` The new Geo Time Series™ of patterns. The value at each tick is the pattern corresponding to the window of window size starting at the given tick\\n\\n@param `lresult` The list of result GTS\\n\\n\",\"signature\":\"ZPATTERNS( gts:GTS wsize:NUMBER length:NUMBER scale:NUMBER ): result:GTS\\nZPATTERNS( lgts:LIST<GTS> wsize:NUMBER length:NUMBER scale:NUMBER ): lresult:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.13\",\"OPB64name\":\"ZPATTERNS\"},\"ZSCORE\":{\"description\":\"The 'ZSCORE' function consumes a flag, then normalizes a Geo Time Series™ or a **LIST** of Geo Time Series™ that are below by replacing their values by their [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe flag indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median).\\n\\nIf the GTS isn’t of type **DOUBLE** or if the deviation equals 0, an exception is raised.\\n\\n@param `flag` Indicates whether to use the mean (False), or the median (True) to calculate the [Z-score](https://en.wikipedia.org/wiki/Standard_score).\\n\\n@param `gts` Geo Time Series™\\n\\n@param `gtsList` List of Geo Time Series™\\n\\n@param `result` Geo Time Series™\\n\\n@param `resultList` List of Geo Time Series™\\n\\n\",\"signature\":\"ZSCORE( gts:GTS flag:BOOLEAN ): result:GTS\\nZSCORE( gtsList:LIST<GTS> flag:BOOLEAN ): resultList:LIST<GTS>\",\"tags\":[\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORE\"},\"ZSCORETEST\":{\"description\":\"The ZSCORETEST function detects outliers in a GTS by comparing the Z-score of its values with a given threshold.\\n\\nThe Z-score of a value represents the number of standard deviations (or median absolute deviations) it is away from the mean (or the median). If this value is greater than the given threshold, it is flagged as an outlier.\\n\\nA LIST of ticks, corresponding to the outliers, is pushed back onto the stack.\\n\\nThis function only applies to GTS of type **DOUBLE**.\\n\\n@param `gts` The Geo Time Series™ to test\\n\\n@param `result` List of the detected outliers timestamps\\n\\n@param `lgts` The list of Geo Time Series™ to test\\n\\n@param `lresult` List of list of the detected outliers timestamps\\n\\n@param `mad` False: use the mean/sigma, true: use the median/mad to calculate the Z-score\\n\\n@param `trigger` Optional threshold. Default value is 3.5\\n\\n\",\"signature\":\"ZSCORETEST( gts:GTS mad:BOOLEAN ): result:LIST<LONG>\\nZSCORETEST( lgts:LIST<GTS> mad:BOOLEAN ): lresult:LIST<LIST<LONG>>\\nZSCORETEST( gts:GTS mad:BOOLEAN trigger:DOUBLE ): result:LIST<LONG>\\nZSCORETEST( lgts:LIST<GTS> mad:BOOLEAN trigger:DOUBLE ): lresult:LIST<LIST<LONG>>\",\"tags\":[\"gts\",\"outlier\"],\"since\":\"1.0.0\",\"OPB64name\":\"ZSCORETEST\"},\"[\":{\"description\":\"Starts a list creation.\\n\\nThe `[` function creates a list by pushing a mark onto the stack. This is a syntactic help to better present list constructions. This function behaves like [`MARK`](/doc/MARK).\\n\\n@param `mark` A MARK object.\\n\\n\",\"signature\":\"[(): mark:MARK\",\"tags\":[\"lists\",\"stack\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lk\"},\"[[\":{\"description\":\"Pushes a MARK on the stack. This is a syntactic help to better present Vector (VLIST) constructions.\\n \\n\\n@param `mark` A MARK instance.\\n\\n\",\"signature\":\"[[(): mark:MARK\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"Lpg\"},\"[[]]\":{\"description\":\"Pushes an empty Vector onto the stack.\\n\\n@param `vector` Empty Vector.\\n\\n\",\"signature\":\"[[]](): vector:VLIST\",\"tags\":[\"lists\"],\"since\":\"1.2.13\",\"OPB64name\":\"LphSMF\"},\"[]\":{\"description\":\"The [] function creates an empty LIST on the top of the stack.\\n\\n\\n@param `content` 0 to n elements.\\n\\n@param `newlist` list instance, initialized with content.\\n\\n\",\"signature\":\"[]( content:ANY ): newlist:LIST\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"Lpo\"},\"]\":{\"description\":\"Closes a currently open list and pushes it onto the stack.\\n\\n  The `]` function pops from the stack the elements of the list up to the first mark encountered. The marks are consumed.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"signature\":\"]( mark:MARK v1:ANY vN:ANY ): list:LIST\",\"tags\":[\"lists\"],\"since\":\"1.0.0\",\"OPB64name\":\"MF\"},\"]]\":{\"description\":\"Closes a currently open Vector (VLIST) and pushes it onto the stack. The elements on the stack are those up to the first mark encountered. The mark is discarded.\\n\\nVLIST are represented as lists on the stack.\\n\\n@param `v1` The first value\\n\\n@param `vN` The Nth value\\n\\n@param `list` The built list\\n\\n@param `mark` The mark indicating the deepest level to consider when building the list\\n\\n\",\"signature\":\"]]( mark:MARK v1:ANY vN:ANY ): list:VLIST\",\"tags\":[\"pig\"],\"since\":\"1.2.13\",\"OPB64name\":\"MKo\"},\"^\":{\"description\":\"Performs a bitwise **XOR** operation.\\n\\nThe `^` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **XOR**.\\n\\nSince Warp 10™ 2.1, `^` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be XOR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with XOR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts XOR with mask\\n\\n\",\"signature\":\"^( p1:LONG p2:LONG ): result:LONG\\n^( inputgts:GTS mask:LONG ): maskedgts:GTS\\n^( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"MV\"},\"babbage\":{\"description\":\"The `babbage` function returns 1000.\\n\\nThe unit is named after [Charles Babbage](https://en.wikipedia.org/wiki/Charles_Babbage).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"babbage(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"babbage\"},\"bucketizer.and\":{\"description\":\"The `bucketizer.and` function applies the logical operator **AND** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.and(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.and\"},\"bucketizer.count\":{\"description\":\"The `bucketizer.count` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.count(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count\"},\"bucketizer.count.exclude-nulls\":{\"description\":\"**Deprecated**: `bucketizer.count.exclude-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.exclude-nulls` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.count.exclude-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.exclude-nulls\"},\"bucketizer.count.include-nulls\":{\"description\":\"**Deprecated**: `bucketizer.count.include-nulls` has the same behavior as `bucketizer.count`, use `bucketizer.count` instead.\\n\\nThe `bucketizer.count.include-nulls function computes the number of values, including null values, found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.count.include-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.include-nulls\"},\"bucketizer.count.nonnull\":{\"description\":\"The `bucketizer.count.nonnull` function computes the number of non-null values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.count.nonnull(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.count.nonnull\"},\"bucketizer.first\":{\"description\":\"The `bucketizer.first` function returns the first value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.first` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.first(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.first\"},\"bucketizer.join\":{\"description\":\"The `bucketizer.join` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"bucketizer.join( separator:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join\"},\"bucketizer.join.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.join.forbid-nulls` has the same behavior as `bucketizer.join`, use `bucketizer.join` instead.\\n\\nThe `bucketizer.join.forbid-nulls` function renders the the concatenation of the string representation of values separated by the join string for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"bucketizer.join.forbid-nulls( separator:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.join.forbid-nulls\"},\"bucketizer.last\":{\"description\":\"The `bucketizer.last` function returns the last value of the interval to bucketize with its associated location and elevation.\\n\\nThe `bucketizer.last` function can be applied to values of any type.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.last(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.last\"},\"bucketizer.mad\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) of each bucket.\\n\\nThe returned location is the median of all the locations in the bucket, and the returned elevation is the median of all the elevations in the bucket.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.mad(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.0\",\"OPB64name\":\"bucketizer.mad\"},\"bucketizer.max\":{\"description\":\"The `bucketizer.max` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.max(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max\"},\"bucketizer.max.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.max.forbid-nulls` has the same behavior as `bucketizer.max`, use `bucketizer.max` instead.\\n\\nThe `bucketizer.max.forbid-nulls` function returns the max of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\nThe `bucketizer.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.max.forbid-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.max.forbid-nulls\"},\"bucketizer.mean\":{\"description\":\"The `bucketizer.mean` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.mean(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean\"},\"bucketizer.mean.circular\":{\"description\":\"The `bucketizer.mean.circular` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`bucketizer.mean.circular.exclude-nulls`](/doc/bucketizer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `bucketizer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"bucketizer.mean.circular( modulo:NUMBER ): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular\"},\"bucketizer.mean.circular.exclude-nulls\":{\"description\":\"**Deprecated**: `bucketizer.mean.circular.exclude-nulls` has the same behavior as `bucketizer.mean.circular`, use `bucketizer.mean.circular` instead.\\n        \\nThe `bucketizer.mean.circular.exclude-nulls` function returns the the circular mean of all the values found in the bucket.  \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned.\\n\\nThe `bucketizer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"bucketizer.mean.circular.exclude-nulls( modulo:NUMBER ): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.circular.exclude-nulls\"},\"bucketizer.mean.exclude-nulls\":{\"description\":\"**Deprecated**: `bucketizer.mean.exclude-nulls` has the same behavior as `bucketizer.mean`, use `bucketizer.mean` instead.\\n \\nThe `bucketizer.mean.exclude-nulls` function returns the mean of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `bucketizer.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.mean.exclude-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.mean.exclude-nulls\"},\"bucketizer.median\":{\"description\":\"The `bucketizer.median` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.median(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.median\"},\"bucketizer.median.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.median.forbid-nulls` has the same behavior as `bucketizer.median`, use `bucketizer.median` instead.\\n\\nThe `bucketizer.median.forbid-nulls` function returns the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.median.forbid-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"2.4.0\",\"OPB64name\":\"bucketizer.median.forbid-nulls\"},\"bucketizer.min\":{\"description\":\"The `bucketizer.min` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.min(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min\"},\"bucketizer.min.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.min.forbid-nulls` has the same behavior as `bucketizer.min`, use `bucketizer.min` instead.\\n\\nThe `bucketizer.min.forbid-nulls` function returns the min of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the selected value. If the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `bucketizer.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value true is considered greater than false.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.min.forbid-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.min.forbid-nulls\"},\"bucketizer.or\":{\"description\":\"The `bucketizer.or` function applies the logical operator **OR** on all the values found in the interval to bucketize.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.or(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.or\"},\"bucketizer.percentile\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"bucketizer.percentile( percentile:NUMBER ): bucketizer:AGGREGATOR\\nbucketizer.percentile( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile\"},\"bucketizer.percentile.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.percentile.forbid-nulls` has the same behavior as `bucketizer.percentile`, use `bucketizer.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the bucket.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"bucketizer.percentile.forbid-nulls( percentile:NUMBER ): bucketizer:AGGREGATOR\\nbucketizer.percentile.forbid-nulls( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.percentile.forbid-nulls\"},\"bucketizer.rms\":{\"description\":\"The `bucketizer.rms` function returns the root mean square of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe location and elevation returned are the last one encountered for each bucket.\\n\\nThe `bucketizer.rms` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.rms(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.2.18\",\"OPB64name\":\"bucketizer.rms\"},\"bucketizer.sd\":{\"description\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.sd( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd\"},\"bucketizer.sd.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.sd.forbid-nulls` has the same behavior as `bucketizer.sd`, use `bucketizer.sd` instead.\\n\\nThis bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"bucketizer.sd.forbid-nulls( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"2.2.1\",\"OPB64name\":\"bucketizer.sd.forbid-nulls\"},\"bucketizer.sd.welford\":{\"description\":\"This bucketizer function returns the standard deviation of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.sd`](/doc/bucketizer.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `bucketizer.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.sd.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.sd.welford\"},\"bucketizer.sum\":{\"description\":\"The `bucketizer.sum` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.sum(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum\"},\"bucketizer.sum.forbid-nulls\":{\"description\":\"**Deprecated**: `bucketizer.sum.forbid-nulls` has the same behavior as `bucketizer.sum`, use `bucketizer.sum` instead.\\n\\nThe `bucketizer.sum.forbid-nulls` function returns the sum of all the values found for each bucket of a [bucketized](/doc/BUCKETIZE) Geo Time Series™.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `bucketizer.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.sum.forbid-nulls(): bucketizer:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"1.0.11\",\"OPB64name\":\"bucketizer.sum.forbid-nulls\"},\"bucketizer.var\":{\"description\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThe `bucketizer.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.var( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var\"},\"bucketizer.var.welford\":{\"description\":\"This bucketizer function returns the variance of each bucket. The location and elevation returned are those associated with the most recent value in the bucket.\\n\\nThis is similar to [`bucketizer.var`](/doc/bucketizer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe `bucketizer.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Bucketizer to apply\\n\\n\",\"signature\":\"bucketizer.var.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"bucketizer\"],\"since\":\"2.9.0\",\"OPB64name\":\"bucketizer.var.welford\"},\"buterin\":{\"description\":\"The `buterin` function returns 1,000,000,000,000,000,000.\\n\\nThe unit is named after [Vitalik Buterin](https://en.wikipedia.org/wiki/Vitalik_Buterin).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"buterin(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"buterin\"},\"d\":{\"description\":\"Converts a number of days (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of days from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of days to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of days\\n\\n\",\"signature\":\"d( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"d\"},\"e\":{\"description\":\"Alias of [E](/doc/GF).\\n\\nThe `e` function pushes the value of *e* (2.718281828459045) onto the stack.\\n\\n@param `eValue` Value of *e* (2.718281828459045).\\n\\n\",\"signature\":\"e(): eValue:DOUBLE\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"OF\"},\"eth\":{\"description\":\"The `eth` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"eth(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"eth\"},\"ether\":{\"description\":\"The `ether` function returns 1,000,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"ether(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"ether\"},\"filler.interpolate\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with a linear interpolation of enclosing values in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading or trailing ticks as there is no possible interpolation.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\"filler.interpolate(): filler:FILLER\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.interpolate\"},\"filler.next\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with the next value in a Geo Time Series™.\\n\\nNote that this function will not fill missing trailing ticks as there is no next value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\"filler.next(): filler:FILLER\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.next\"},\"filler.previous\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with the previous value in a Geo Time Series™.\\n\\nNote that this function will not fill missing leading ticks as there is no previous value to use.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\"filler.previous(): filler:FILLER\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.previous\"},\"filler.trend\":{\"description\":\"Pushes onto the stack a *filler* function which fills missing values with the centroid of the points computed by projecting trends from both sides of the missing point.\\n\\nNote that this function will fill all missing points.\\n\\n@param `filler` Filler function to use for filling missing values.\\n\\n\",\"signature\":\"filler.trend(): filler:FILLER\",\"tags\":[\"filler\"],\"since\":\"2.0.0\",\"OPB64name\":\"filler.trend\"},\"filter.all.eq\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.all.eq( filter-value:LONG ): result:FILTER\\nfilter.all.eq( filter-value:DOUBLE ): result:FILTER\\nfilter.all.eq( filter-value:BOOLEAN ): result:FILTER\\nfilter.all.eq( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.eq\"},\"filter.all.ge\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.all.ge( filter-value:LONG ): result:FILTER\\nfilter.all.ge( filter-value:DOUBLE ): result:FILTER\\nfilter.all.ge( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ge\"},\"filter.all.gt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.all.gt( filter-value:LONG ): result:FILTER\\nfilter.all.gt( filter-value:DOUBLE ): result:FILTER\\nfilter.all.gt( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.gt\"},\"filter.all.le\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.all.le( filter-value:LONG ): result:FILTER\\nfilter.all.le( filter-value:DOUBLE ): result:FILTER\\nfilter.all.le( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.le\"},\"filter.all.lt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.all.lt( filter-value:LONG ): result:FILTER\\nfilter.all.lt( filter-value:DOUBLE ): result:FILTER\\nfilter.all.lt( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.lt\"},\"filter.all.ne\":{\"description\":\"This filter function only selects the Geo Time Series™ whose every value does not equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.all.ne( filter-value:LONG ): result:FILTER\\nfilter.all.ne( filter-value:DOUBLE ): result:FILTER\\nfilter.all.ne( filter-value:BOOLEAN ): result:FILTER\\nfilter.all.ne( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.all.ne\"},\"filter.any.eq\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.any.eq( filter-value:LONG ): result:FILTER\\nfilter.any.eq( filter-value:DOUBLE ): result:FILTER\\nfilter.any.eq( filter-value:BOOLEAN ): result:FILTER\\nfilter.any.eq( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.eq\"},\"filter.any.ge\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.any.ge( filter-value:LONG ): result:FILTER\\nfilter.any.ge( filter-value:DOUBLE ): result:FILTER\\nfilter.any.ge( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ge\"},\"filter.any.gt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.any.gt( filter-value:LONG ): result:FILTER\\nfilter.any.gt( filter-value:DOUBLE ): result:FILTER\\nfilter.any.gt( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.gt\"},\"filter.any.le\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is lower or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.any.le( filter-value:LONG ): result:FILTER\\nfilter.any.le( filter-value:DOUBLE ): result:FILTER\\nfilter.any.le( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.le\"},\"filter.any.lt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value is strictly lower than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.any.lt( filter-value:LONG ): result:FILTER\\nfilter.any.lt( filter-value:DOUBLE ): result:FILTER\\nfilter.any.lt( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.lt\"},\"filter.any.ne\":{\"description\":\"This filter function only selects the Geo Time Series™ whose at least one value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.any.ne( filter-value:LONG ): result:FILTER\\nfilter.any.ne( filter-value:DOUBLE ): result:FILTER\\nfilter.any.ne( filter-value:BOOLEAN ): result:FILTER\\nfilter.any.ne( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.any.ne\"},\"filter.byattr\":{\"description\":\"This filter function only selects the Geo Time Series™ whose attributes match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter.byattr( filter:MAP ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.byattr\"},\"filter.byclass\":{\"description\":\"This filter function only selects the Geo Time Series™ whose class name matches the filter parameter.\\n\\n@param `filter` The filter parameter is a **STRING**, if it starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter.byclass( filter:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.byclass\"},\"filter.bylabels\":{\"description\":\"This filter function only selects the Geo Time Series™ whose labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter.bylabels( filter:MAP ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bylabels\"},\"filter.bylabelsattr\":{\"description\":\"This filter function only selects the Geo Time Series™ whose attributes or labels match the filter parameter.\\n\\n@param `filter` The filter parameter is a map of attributes or labels names as key and a selector as value. If the selector starts with `~`, the rest of the string is considered as a regular expression. If it starts with `=`, it is considered as an exact match. If it does not start with `~` or `=`, it is also considered as an exact match.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter.bylabelsattr( filter:MAP ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.11\",\"OPB64name\":\"filter.bylabelsattr\"},\"filter.bymetadata\":{\"description\":\"Filter GTSs by retaining those whose metadata **exactly** match at least one metadata from the given GTS list. \\n\\nThe metadata consists of the classname and labels.\\n\\n@param `lgts` List of GTSs to extract the metadata from.\\n\\n@param `filter` Filter to apply which will keep only GTSs with exact metadata matching.\\n\\n\",\"signature\":\"filter.bymetadata( lgts:LIST<GTS> ): filter:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.bymetadata\"},\"filter.byselector\":{\"description\":\"This filter allow to select GTS with a standard or an extended selector.\\n###### Standard selector: `classname{labelOrAttribute=x}`\\n- If classname match, `filter.byselector` looks into input labels to check if labelOrAttribute exists and equals x. If labelOrAttribute is not found among input labels, it looks into input attributes if the label exists and equals x.\\n###### Extended selector: `classname{labelname=x}{attributename=y}` matches if:\\n- classname matches\\n- input have labelname in its labels, and label value matches\\n- input have attributename in its labels, and attribute value matches\\n\\n###### Selectors example:\\n- `~.*{}` matches everything.\\n- `={}` matches only emtpy classnames, whatever the labels and attributes.\\n- `~.*{label=value}{} filter.byselector` is equivalent to `{ 'label' 'value' } filter.bylabels`.\\n- `~.*{}{attribute~value} filter.byselector` is equivalent to `{ 'attribute' '~value' } filter.byattr`.\\n\\n\\n@param `selector` The selector parameter. It could be a standard or an extended selector.\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter.byselector( selector:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.byselector\"},\"filter.bysize\":{\"description\":\"Filter GTSs by retaining those whose size is contained between specified bounds (inclusive).\\n\\n@param `min` The minimum size\\n\\n@param `max` The maximum size\\n\\n@param `result` The filter to apply\\n\\n\",\"signature\":\"filter.bysize( min:LONG max:LONG ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"2.4.0\",\"OPB64name\":\"filter.bysize\"},\"filter.last.eq\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value equals the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.last.eq( filter-value:LONG ): result:FILTER\\nfilter.last.eq( filter-value:DOUBLE ): result:FILTER\\nfilter.last.eq( filter-value:BOOLEAN ): result:FILTER\\nfilter.last.eq( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.eq\"},\"filter.last.ge\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is greater or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.last.ge( filter-value:LONG ): result:FILTER\\nfilter.last.ge( filter-value:DOUBLE ): result:FILTER\\nfilter.last.ge( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ge\"},\"filter.last.gt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is greater than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.last.gt( filter-value:LONG ): result:FILTER\\nfilter.last.gt( filter-value:DOUBLE ): result:FILTER\\nfilter.last.gt( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.gt\"},\"filter.last.le\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is less or equal to the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.last.le( filter-value:LONG ): result:FILTER\\nfilter.last.le( filter-value:DOUBLE ): result:FILTER\\nfilter.last.le( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.le\"},\"filter.last.lt\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value is less than the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.last.lt( filter-value:LONG ): result:FILTER\\nfilter.last.lt( filter-value:DOUBLE ): result:FILTER\\nfilter.last.lt( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.lt\"},\"filter.last.ne\":{\"description\":\"This filter function only selects the Geo Time Series™ whose last value does not equal the filter parameter.\\n\\nThe filter parameter is a **LONG**, a **DOUBLE**, a **BOOLEAN** or a **STRING**.\\n\\n@param `filter-value` filter parameter\\n\\n@param `result` Filter to apply\\n\\n\",\"signature\":\"filter.last.ne( filter-value:LONG ): result:FILTER\\nfilter.last.ne( filter-value:DOUBLE ): result:FILTER\\nfilter.last.ne( filter-value:BOOLEAN ): result:FILTER\\nfilter.last.ne( filter-value:STRING ): result:FILTER\",\"tags\":[\"filter\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.last.ne\"},\"filter.latencies\":{\"description\":\"Pushes onto the stack a *pseudo* FILTER which computes latencies in a network. It uses the [`FILTER`](/doc/FILTER) framework for conveniency but really returns new GTS.\\n\\nThe input Geo Time Series™ are assumed to have values which are fingerprints of packet payloads. The first GTS is assumed to be the *uplink* and all the other GTS the *downlinks*.\\n\\nThe ticks are the time at which a packet with the given fingerprint was observed.\\n\\nThe generated Geo Time Series™ will have the same ticks as the uplink one, except the values will be latencies instead of packet fingerprints.\\n\\nThe `filter.latencies` function accepts a number of options:\\n\\n| Option | Description |\\n|--------|-------------|\\n| uplink.latency.min | Compute minimum latency on the uplink. |\\n| uplink.latency.max | Compute maximum latency on the uplink. |\\n| downlink.latency.min | Compute minimum latency on each downlink. |\\n| downlink.latency.max | Compute maximum latency on each downlink. |\\n| downlink.matches | Compute the number of matches for each downlink. |\\n| downlinks.totalmatches | Computes the total number of matches across downlinks. |\\n| downlinks.bitsets | Computes a bitset of downlinks which saw the packet (limited to 64 downlinks). |\\n| downlinks.withmatches | Computes the number of downlinks with matches for the given packet. |\\n\\nThis pseudo FILTER is very specific to a networking use case, but it is a good demonstration of the power of WarpScript and its frameworks.\\n\\n@param `options` List of options, see above for their description.\\n\\n@param `maxLatency` Maximum allowable latency, packets with latency above this threshold are ignored.\\n\\n@param `minLatency` Minimum latency, packets with a latency below this threshold are ignored.\\n\\n@param `filter` Instance of `filter.latencies`.\\n\\n\",\"signature\":\"filter.latencies( minLatency:LONG maxLatency:LONG options:LIST<STRING> ): filter:FILTER\",\"tags\":[\"filter\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"filter.latencies\"},\"finney\":{\"description\":\"The `finney` function returns 1,000,000,000,000,000.\\n\\nThe unit is named after [Hal Finney](https://en.wikipedia.org/wiki/Hal_Finney_(computer_scientist)).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"finney(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"finney\"},\"gwei\":{\"description\":\"The `gwei` function returns 1,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"gwei(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"gwei\"},\"h\":{\"description\":\"Converts a number of hours (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of hours from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of hours to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of hours\\n\\n\",\"signature\":\"h( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"h\"},\"kwei\":{\"description\":\"The `kwei` function returns 1000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"kwei(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"kwei\"},\"lovelace\":{\"description\":\"The `lovelace` function returns 1,000,000.\\n\\nThe unit is named after [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"lovelace(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"lovelace\"},\"m\":{\"description\":\"Converts a number of minutes (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of minutes from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of minutes to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of minutes\\n\\n\",\"signature\":\"m( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"m\"},\"mapper.abs\":{\"description\":\"This mapper function returns the absolute value of single value in a sliding window.\\n\\nThe `mapper.abs` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.abs(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.abs\"},\"mapper.add\":{\"description\":\"This mapper function adds a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.add` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.add` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Value to add\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.add( constant:DOUBLE ): result:AGGREGATOR\\nmapper.add( constant:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.add\"},\"mapper.and\":{\"description\":\"This mapper function applies the logical operator **AND** on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.and(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.and\"},\"mapper.ceil\":{\"description\":\"This mapper function rounds the single value in a sliding window to the closests greater **LONG**.\\n\\nThe `mapper.ceil` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ceil(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.ceil\"},\"mapper.count\":{\"description\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.count(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count\"},\"mapper.count.exclude-nulls\":{\"description\":\"**Deprecated**: `mapper.count.exclude-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.count.exclude-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.exclude-nulls\"},\"mapper.count.include-nulls\":{\"description\":\"**Deprecated**: `mapper.count.include-nulls` has the same behavior as `mapper.count`, use `mapper.count` instead.\\n\\nThis mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are included.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.count.include-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.include-nulls\"},\"mapper.count.nonnull\":{\"description\":\"This mapper function counts the number of all values found in the sliding window. The associated location and elevation are\\nthose of the most recent tick of the window. Null values are excluded.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.count.nonnull(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.count.nonnull\"},\"mapper.day\":{\"description\":\"This mapper function returns the day of the tick for which it is computed.\\n\\nThe `mapper.day` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n@param `timezone` Timezone to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"mapper.day( timezone:STRING ): result:AGGREGATOR\\nmapper.day( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.day\"},\"mapper.delta\":{\"description\":\"This mapper function computes the delta between the last and first values (delta = last - first) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.delta` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does \\nnot return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.delta(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.delta\"},\"mapper.dotproduct\":{\"description\":\"The `mapper.dotproduct` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.dotproduct( vector:LIST ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct\"},\"mapper.dotproduct.positive\":{\"description\":\"The `mapper.dotproduct.positive` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it sets all negative results to 0.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.dotproduct.positive( vector:LIST ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.positive\"},\"mapper.dotproduct.sigmoid\":{\"description\":\"The `mapper.dotproduct.sigmoid` function consumes a vector as parameter (a **LIST** of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the sigmoid of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.dotproduct.sigmoid( vector:LIST ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.sigmoid\"},\"mapper.dotproduct.tanh\":{\"description\":\"The `mapper.dotproduct.tanh` function consumes a vector as parameter (a **LIST* of **DOUBLE**) from the top of the stack.\\n\\nThe resulting mapper computes the dot product of the given vector with the values of the sliding window, then it returns the \\n[hyperbolic tangent](https://en.wikipedia.org/wiki/Hyperbolic_function) of this result.\\n\\nIf the sliding window at a tick does not have the same size as the given vector, then no value is produced.\\n\\nThe resulting mapper can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `vector` Element of the vector\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.dotproduct.tanh( vector:LIST ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.dotproduct.tanh\"},\"mapper.eq\":{\"description\":\"This mapper function returns the first value in a sliding window which is equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.eq` function can be applied to data of any type.\\n\\nThe `mapper.eq` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.eq( parameter:LONG ): result:AGGREGATOR\\nmapper.eq( parameter:DOUBLE ): result:AGGREGATOR\\nmapper.eq( parameter:BOOLEAN ): result:AGGREGATOR\\nmapper.eq( parameter:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.eq\"},\"mapper.eq.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is equal to a given value.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.eq.elev` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.eq.elev( parameter:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.elev\"},\"mapper.eq.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is equal to a given value.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.eq.hhcode` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.eq.hhcode( parameter:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.hhcode\"},\"mapper.eq.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is equal to a given value.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.eq.lat` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.eq.lat( parameter:LONG ): result:AGGREGATOR\\nmapper.eq.lat( parameter:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lat\"},\"mapper.eq.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is equal to a given value.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.eq.lon` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.eq.lon( parameter:LONG ): result:AGGREGATOR\\nmapper.eq.lon( parameter:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.lon\"},\"mapper.eq.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is equal to a given value.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.eq.tick` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.eq.tick( parameter:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.eq.tick\"},\"mapper.exp\":{\"description\":\"This mapper function raises a constant to the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.exp` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.exp` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\n> ## Note\\n> The `mapper.exp` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n>\\n> So you are looking for a way to apply the exponential function, ex, to a series of Geo Time Series™. It’s very easy to do it using `mapper.exp` and the\\n> [`e`](/doc/OF) constant.\\n\\n@param `result` Mapper to apply\\n\\n@param `constant` Constant to use\\n\\n\",\"signature\":\"mapper.exp( constant:LONG ): result:AGGREGATOR\\nmapper.exp( constant:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.exp\"},\"mapper.finite\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns its input value only if it is finite (*i.e.* a non DOUBLE or a DOUBLE which is neither NaN nor Infinity).\\n\\n@param `result` Instance of mapper.finite.\\n\\n\",\"signature\":\"mapper.finite(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.finite\"},\"mapper.first\":{\"description\":\"This mapper function returns the first value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.first` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.first(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.first\"},\"mapper.floor\":{\"description\":\"This mapper function rounds the *single value* in a sliding window to the closests lower **LONG**.\\n\\nThe `mapper.floor` function can be applied to data of type **LONG** or **DOUBLE**.      \\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.floor(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.floor\"},\"mapper.ge\":{\"description\":\"This mapper function returns the first value in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ge` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.ge` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ge( threshold:LONG ): result:AGGREGATOR\\nmapper.ge( threshold:STRING ): result:AGGREGATOR\\nmapper.ge( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ge\"},\"mapper.ge.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ge.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ge.elev( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.elev\"},\"mapper.ge.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ge.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ge.hhcode( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.hhcode\"},\"mapper.ge.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ge.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ge.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.ge.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lat\"},\"mapper.ge.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ge.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ge.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.ge.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.lon\"},\"mapper.ge.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is greater or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ge.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ge.tick( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ge.tick\"},\"mapper.geo.approximate\":{\"description\":\"Pushes onto the stack a mapper instance which will transform the input Geo Time Series™ by approximating the location to the given resolution.\\n\\nApproximation is done by clearing lower bits of the location [HHCode](https://en.wikipedia.org/wiki/HHCode). At resolution `R`, the lower `64 - 2R` bits are cleared.\\n\\n| Resolution | Precision |\\n| --- | --- |\\n| 2 | 10,000 km |\\n| 4 | 2,500 km |\\n| 6 | 625 km |\\n| 8 | 156 km |\\n| 10 | 39 km |\\n| 12 | 10 km |\\n| 14 |  2.5 km |\\n| 16 | 600 m |\\n| 18 | 150 m |\\n| 20 | 40 m |\\n| 22 | 10 m |\\n| 24 | 2.5 m |\\n| 26 | 60 cm |\\n| 28 | 15 cm |\\n| 30 | 4 cm |\\n\\nThe exact precision is 40,000 km divided by 2**resolution.\\n\\n\\n\\n@param `resolution` HHCode resolution at which to approximate the locations. Resoluion is an even number between 2 (coarsest) and 32 (finest).\\n\\n@param `result` Instance of mapper.\\n\\n\",\"signature\":\"mapper.geo.approximate( resolution:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.approximate\"},\"mapper.geo.clear\":{\"description\":\"Pushes onto the stack a mapper which will discard location and elevation information when applied to a Geo Time Series™.\\n\\nThis mapper can only be applied to single values\\n\\n@param `result` Instance of the `mapper.geo.clear` mapper.\\n\\n\",\"signature\":\"mapper.geo.clear(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.geo.clear\"},\"mapper.geo.fence\":{\"description\":\"This function produces a `mapper` which outputs a `BOOLEAN` for each point with an associated location. The value of the output is `true` if the location is inside the provided `GEOSHAPE` and `false` otherwise.\\nThe geo zone can be defined in [WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using [`GEO.WKT`](/doc/GEO.WKT) or in [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) using [`GEO.JSON`](/doc/GEO.JSON).\\n\\n@param `zone` Geographical zone.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.geo.fence( zone:GEOSHAPE ): result:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"2.7.1\",\"OPB64name\":\"mapper.geo.fence\"},\"mapper.geo.outside\":{\"description\":\"This mapper filters the Geo Time Series™, keeping only the points outside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.geo.outside( geoZone:GEOSHAPE ): result:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.outside\"},\"mapper.geo.within\":{\"description\":\"This mapper filters the Geo Time Series™, keeping only the points inside a geographical zone (geo zone). The geo zone can be defined in\\n[WKT](http://en.wikipedia.org/wiki/Well-known_text) format by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `geoZone` Geo zone defined by using the [`GEO.WKT`](/doc/GEO.WKT) function.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.geo.within( geoZone:GEOSHAPE ): result:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.geo.within\"},\"mapper.gt\":{\"description\":\"This mapper function returns the first value in a sliding window which is greater than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.gt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.gt` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.gt( threshold:LONG ): result:AGGREGATOR\\nmapper.gt( threshold:STRING ): result:AGGREGATOR\\nmapper.gt( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.gt\"},\"mapper.gt.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is greater than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.gt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.gt.elev( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.elev\"},\"mapper.gt.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is greater than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.gt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.gt.hhcode( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.hhcode\"},\"mapper.gt.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is greater than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.gt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.gt.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.gt.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lat\"},\"mapper.gt.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is greater than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.gt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.gt.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.gt.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.lon\"},\"mapper.gt.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is greater than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.gt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.gt.tick( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.gt.tick\"},\"mapper.hdist\":{\"description\":\"The `mapper.hdist` function computes the total distance traveled while going through the points in the sliding window in chronological order. This distance is in meters.\\n\\nThe distance used is the loxodromic distance aka rhumb line. As a consequence, elevation is not taken into account in the distance.\\n\\nIf a point has no position in the sliding window, it is ignored.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe `mapper.hdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `hdistMapper` A function which can be used in a mapper.\\n\\n\",\"signature\":\"mapper.hdist(): hdistMapper:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hdist\"},\"mapper.highest\":{\"description\":\"This mapper function returns the value associated with the highest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the most recent is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.highest(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.highest\"},\"mapper.hour\":{\"description\":\"This mapper function returns the hour of the tick for which it is computed.\\n\\nThe `mapper.hour` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"mapper.hour( timezone:STRING ): result:AGGREGATOR\\nmapper.hour( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.hour\"},\"mapper.hspeed\":{\"description\":\"This mapper function computes the horizontal speed along the path traveled in the sliding window.\\n\\nThe distance is computed by summing the distances along the rhumb line between two consecutive locations.\\n\\nIf there is only one tick in the sliding window, the speed is 0.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.hspeed` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.hspeed(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.hspeed\"},\"mapper.join\":{\"description\":\"This mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"mapper.join( separator:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join\"},\"mapper.join.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.join.forbid-nulls` has the same behavior as `mapper.join`, use `mapper.join` instead.\\n\\nThis mapper function renders the the concatenation of the string representation of values separated by the join string of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n@param `separator` Separator used for concatenation\\n\\n\",\"signature\":\"mapper.join.forbid-nulls( separator:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.join.forbid-nulls\"},\"mapper.kernel.cosine\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [cosine kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics.\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.cosine( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.cosine\"},\"mapper.kernel.epanechnikov\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using an [epanechnikov kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.epanechnikov( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.epanechnikov\"},\"mapper.kernel.gaussian\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [gaussian kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.gaussian( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.gaussian\"},\"mapper.kernel.logistic\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [logistic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted average](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) algorithm.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.logistic( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.logistic\"},\"mapper.kernel.quartic\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [quartic kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.quartic( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.quartic\"},\"mapper.kernel.silverman\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [silverman kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.silverman( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.silverman\"},\"mapper.kernel.triangular\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triangular kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.triangular( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triangular\"},\"mapper.kernel.tricube\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [tricube kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.tricube( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.tricube\"},\"mapper.kernel.triweight\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [triweight kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.triweight( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.triweight\"},\"mapper.kernel.uniform\":{\"description\":\"This function pushes onto the stack a [kernel smoothing](https://en.wikipedia.org/wiki/Kernel_smoother) mapper using a [uniform kernel](https://en.wikipedia.org/wiki/Kernel_(statistics)#In_non-parametric_statistics).\\nThe mapper applies the [Nadaraya-Watson kernel-weighted](https://en.wikipedia.org/wiki/Kernel_regression#Nadaraya.E2.80.93Watson_kernel_regression) average algorithm.\\n\\nThe function expects on top of the stack a bandwidth expressed as an odd number of ticks and below it a step expressed in time units. The step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel. The bandwidth in time units is the bandwidth in ticks times the step.\\n\\n@param `step` Expressed in time units, the step parameter is used to determine the distance of a tick from the tick being computed to feed it into the kernel.\\n\\n@param `bandwidth` Odd number of ticks, the bandwidth in time units is the bandwidth in ticks times the step\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.kernel.uniform( bandwidth:LONG step:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.kernel.uniform\"},\"mapper.last\":{\"description\":\"This [`mapper`](/doc/MAP) function returns the last value of each sliding window with its associated location and elevation.\\n\\nThe `mapper.last` function can be applied to values of any type.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.last(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.last\"},\"mapper.le\":{\"description\":\"This mapper function returns the first value in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.le` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.le` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.le( threshold:DOUBLE ): result:AGGREGATOR\\nmapper.le( threshold:LONG ): result:AGGREGATOR\\nmapper.le( threshold:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.le\"},\"mapper.le.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.le.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.le.elev( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.elev\"},\"mapper.le.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less or equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.le.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.le.hhcode( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.hhcode\"},\"mapper.le.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.le.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.le.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.le.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lat\"},\"mapper.le.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is less or equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.le.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.le.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.le.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.lon\"},\"mapper.le.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is less or equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.le.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.le.tick( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.le.tick\"},\"mapper.log\":{\"description\":\"This mapper function takes the log of the **single value** in a sliding window in the base used as parameter to `mapper.log`.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.log` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.log` function must be parameterized with the constant.\\n\\nThe result is always of type **DOUBLE**.\\n\\nThe `mapper.log` mapper needs a single value sliding window, i.e. pre-window and post-window to 0.\\n\\n@param `constant` Constant parameter\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.log( constant:DOUBLE ): result:AGGREGATOR\\nmapper.log( constant:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.log\"},\"mapper.lowest\":{\"description\":\"This mapper function returns the value associated with the lowest elevation in the sliding window. The location and elevation returned are those \\nassociated with the selected value. In case of multiple occurrences, the one appearing first chronologically is selected.\\n\\nIf no elevation data was found in the sliding window, no value will be returned.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lowest(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.lowest\"},\"mapper.lt\":{\"description\":\"This mapper function returns the first value in a sliding window which is less than a given threshold.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.lt` function can be applied to data of any type except **BOOLEAN**.\\n\\nThe `mapper.lt` function must be parameterized with the threshold.\\n\\n\\n@param `threshold` Threshold used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lt( threshold:DOUBLE ): result:AGGREGATOR\\nmapper.lt( threshold:LONG ): result:AGGREGATOR\\nmapper.lt( threshold:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.lt\"},\"mapper.lt.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is less than a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.lt.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lt.elev( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.elev\"},\"mapper.lt.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is less than a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.lt.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lt.hhcode( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.hhcode\"},\"mapper.lt.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is less than a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.lt.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lt.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.lt.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lat\"},\"mapper.lt.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is less than a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.lt.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lt.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.lt.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.lon\"},\"mapper.lt.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is less than a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.lt.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.lt.tick( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.lt.tick\"},\"mapper.mad\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) over each sliding window.\\n\\nThe returned location is the median of all the locations in the sliding window, and the returned elevation is the median of all the elevations in the window.\\n\\n@param `result` Instance of `mapper.mad`.\\n\\n\",\"signature\":\"mapper.mad(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.2.0\",\"OPB64name\":\"mapper.mad\"},\"mapper.max\":{\"description\":\"This mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.max(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max\"},\"mapper.max.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.max.forbid-nulls` has the same behavior as `mapper.max`, use `mapper.max` instead.\\n\\nThis mapper function returns the max of all the values found in each sliding window. The associated location and elevation are those of the selected value. If the max value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.max.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.max.forbid-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.max.forbid-nulls\"},\"mapper.max.x\":{\"description\":\"This mapper function returns the max between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.max.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.max.x( constant:DOUBLE ): result:AGGREGATOR\\nmapper.max.x( constant:LONG ): result:AGGREGATOR\\nmapper.max.x( constant:STRING ): result:AGGREGATOR\\nmapper.max.x( constant:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.max.x\"},\"mapper.mean\":{\"description\":\"This mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.mean(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean\"},\"mapper.mean.circular\":{\"description\":\"This function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`mapper.mean.circular.exclude-nulls`](/doc/mapper.mean.circular.exclude-nulls) if your sliding windows may contain nulls.\\n\\nThe `mapper.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"mapper.mean.circular( modulo:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular\"},\"mapper.mean.circular.exclude-nulls\":{\"description\":\"**Deprecated**: `mapper.mean.circular.exclude-nulls` has the same behavior as `mapper.mean.circular`, use `mapper.mean.circular` instead.\\n\\nThis function will push a mapper onto the stack which can then be used to compute the circular mean of all the values found in each sliding window. \\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe mapper function produced by `mapper.mean.circular.exclude-nulls` can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING**\\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `mapper.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be used to determine the span \\nof circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `result` Mapper to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"mapper.mean.circular.exclude-nulls( modulo:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.circular.exclude-nulls\"},\"mapper.mean.exclude-nulls\":{\"description\":\"**Deprecated**: `mapper.mean.exclude-nulls` has the same behavior as `mapper.mean`, use `mapper.mean` instead.\\n        \\nThis mapper function returns the mean of all the values found in each sliding window. The associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `mapper.mean.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.mean.exclude-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.mean.exclude-nulls\"},\"mapper.median\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median`.\\n\\n\",\"signature\":\"mapper.median(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.median\"},\"mapper.median.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.median.forbid-nulls` has the same behavior as `mapper.median`, use `mapper.median` instead.\\n\\nPushes onto the stack an AGGREGATOR which computes the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values in the sliding window.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `result` Instance of `mapper.median.forbid-nulls`.\\n\\n\",\"signature\":\"mapper.median.forbid-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"2.4.0\",\"OPB64name\":\"mapper.median.forbid-nulls\"},\"mapper.min\":{\"description\":\"This mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.min(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min\"},\"mapper.min.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.min.forbid-nulls` has the same behavior as `mapper.min`, use `mapper.min` instead.\\n\\nThis mapper function returns the min of all the values found in each sliding window. The associated location and elevation are those of the selected value. \\nIf the min value is encountered several times, the selected one is the one that appears first chronologically.\\n\\nThe `mapper.min.forbid-nulls` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than **true**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.min.forbid-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.min.forbid-nulls\"},\"mapper.min.x\":{\"description\":\"This mapper function returns the min between a constant passed as parameter and each value. The associated location and elevation are those of the \\nselected value.\\n\\nThe `mapper.min.x` function can be applied to values of any type, when applied to **BOOLEAN** types, the value **false** is considered less than true.\\n\\n\\n@param `constant` Constant used to compare\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.min.x( constant:DOUBLE ): result:AGGREGATOR\\nmapper.min.x( constant:LONG ): result:AGGREGATOR\\nmapper.min.x( constant:STRING ): result:AGGREGATOR\\nmapper.min.x( constant:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.min.x\"},\"mapper.minute\":{\"description\":\"This mapper function returns the minute of the tick for which it is computed.\\n\\nThe `mapper.minute` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"mapper.minute( timezone:STRING ): result:AGGREGATOR\\nmapper.minute( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.minute\"},\"mapper.mod\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the remainder of a value given a modulus.\\n\\nThis MAPPER can only be applied to a single value.\\n\\n@param `modulus` Modulus to consider when computing the remainder.\\n\\n@param `result` Instance of `mapper.mod`.\\n\\n\",\"signature\":\"mapper.mod( modulus:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.2.3\",\"OPB64name\":\"mapper.mod\"},\"mapper.month\":{\"description\":\"This mapper function returns the month of the tick for which it is computed.\\n\\nThe `mapper.month` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.month( timezone:STRING ): result:AGGREGATOR\\nmapper.month( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.month\"},\"mapper.mul\":{\"description\":\"This mapper function multiplies by a constant the single value in a sliding window.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.mul` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.mul` function must be parameterized with the constant.\\n\\nThe result will be of the same type as the constant.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.mul( constant:LONG ): result:AGGREGATOR\\nmapper.mul( constant:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.mul\"},\"mapper.ne\":{\"description\":\"This mapper function returns the first value in a sliding window which is not equal to a given value.\\n\\nThe associated location and elevation are those of the selected value.\\n\\nThe `mapper.ne` function can be applied to data of any type.\\n\\nThe `mapper.ne` function must be parameterized with the value against which to test for equality.\\n\\n@param `parameter` Parameter to use for comparision\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ne( parameter:LONG ): result:AGGREGATOR\\nmapper.ne( parameter:DOUBLE ): result:AGGREGATOR\\nmapper.ne( parameter:BOOLEAN ): result:AGGREGATOR\\nmapper.ne( parameter:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.ne\"},\"mapper.ne.elev\":{\"description\":\"This mapper function returns the first elevation in a sliding window which is not equal to a given threshold.\\n\\nThe associated location and value are those of the selected elevation.\\n\\nThe `mapper.ne.elev` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ne.elev( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.elev\"},\"mapper.ne.hhcode\":{\"description\":\"This mapper function returns the first location expressed as a hhcode in a sliding window which is not equal to a given threshold.\\n\\nThe associated elevation and value are those of the selected location.\\n\\nThe `mapper.ne.hhcode` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ne.hhcode( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.hhcode\"},\"mapper.ne.lat\":{\"description\":\"This mapper function returns the first latitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated longitude, elevation and value are those of the selected latitude.\\n\\nThe `mapper.ne.lat` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ne.lat( threshold:LONG ): result:AGGREGATOR\\nmapper.ne.lat( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lat\"},\"mapper.ne.lon\":{\"description\":\"This mapper function returns the first longitude in a sliding window which is not equal to a given threshold.\\n\\nThe associated latitude, elevation and value are those of the selected longitude.\\n\\nThe `mapper.ne.lon` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ne.lon( threshold:LONG ): result:AGGREGATOR\\nmapper.ne.lon( threshold:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.lon\"},\"mapper.ne.tick\":{\"description\":\"This mapper function returns the first tick in a sliding window which is not equal to a given threshold.\\n\\nThe associated location, elevation and value are those of the selected tick.\\n\\nThe `mapper.ne.tick` function must be parameterized with the threshold.\\n\\n@param `threshold` Threshold\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.ne.tick( threshold:LONG ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.2.0\",\"OPB64name\":\"mapper.ne.tick\"},\"mapper.npdf\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the probability of a value given a normal distribution.\\n\\n@param `mu` Mean of the normal (Gaussian) distribution to consider.\\n\\n@param `sigma` Standard deviation of the normal (Gaussian) distribution to consider.\\n\\n@param `result` Instance of `mapper.npdf`.\\n\\n\",\"signature\":\"mapper.npdf( mu:DOUBLE sigma:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"gts\",\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.npdf\"},\"mapper.or\":{\"description\":\"This mapper function applies the logical operator OR on all the values found in each sliding window.\\n\\nThe associated location and elevation are those of the most recent tick of the interval.\\n\\nThe `mapper.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.or(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.or\"},\"mapper.parsedouble\":{\"description\":\"This mapper function converts a **STRING** single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.parsedouble` function can be applied to data of type **STRING**.\\n\\nThis function expects a [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) \\nparameter in top of the mapper. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `tag` [IETF BCP 47 language tag string](https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#forLanguageTag-java.lang.String-) parameter. This tag is used to parse the **STRING** given as input according to the specified double format of this language.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.parsedouble( tag:STRING ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.2.5\",\"OPB64name\":\"mapper.parsedouble\"},\"mapper.percentile\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"mapper.percentile( percentile:NUMBER ): bucketizer:AGGREGATOR\\nmapper.percentile( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile\"},\"mapper.percentile.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.percentile.forbid-nulls` has the same behavior as `mapper.percentile`, use `mapper.percentile` instead.\\n\\nPushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values in the sliding window.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"mapper.percentile.forbid-nulls( percentile:NUMBER ): bucketizer:AGGREGATOR\\nmapper.percentile.forbid-nulls( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"mapper\",\"gts\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.percentile.forbid-nulls\"},\"mapper.pow\":{\"description\":\"This mapper function raises the single value in a sliding window to a constant power.\\n\\nIf the sliding window is empty, the function does not return any value. If the sliding window contains more than a single value, an error is produced.\\n\\nThe associated location and elevation are those of the single value.\\n\\nThe `mapper.pow` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nThe `mapper.pow` function must be parameterized with the constant.\\n\\nThe result is always of type DOUBLE.\\n\\n@param `constant` Constant to apply\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.pow( constant:LONG ): result:AGGREGATOR\\nmapper.pow( constant:DOUBLE ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.pow\"},\"mapper.product\":{\"description\":\"This mapper function computes the product of all the values found in the sliding window.\\n\\nThe `mapper.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\nOn [bucketized](/doc/BUCKETIZE) Geo Time Series™, it is necessary to fill gaps with [`FILLVALUE`](/doc/FILLVALUE)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.product(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.product\"},\"mapper.rate\":{\"description\":\"This mapper function computes the rate of change between the first and last values (rate = (last - first) / (lastick - firsttick)) of each sliding window. The location and\\nelevation returned are those associated with the most recent value in the sliding window.\\n\\nThe `mapper.rate` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value. If the\\nsliding window contains less than 2 values, the rate of change will be 0.0.\\n\\nThe rate of change is expressed in units per second.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.rate(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.rate\"},\"mapper.replace\":{\"description\":\"This mapper function replaces windows with at least one value with a constant. The location and elevation returned are those associated with the most \\nrecent value in the sliding window.\\n\\n@param `constant` constant used for replacement\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.replace( constant:LONG ): result:AGGREGATOR\\nmapper.replace( constant:DOUBLE ): result:AGGREGATOR\\nmapper.replace( constant:STRING ): result:AGGREGATOR\\nmapper.replace( constant:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.replace\"},\"mapper.rms\":{\"description\":\"This mapper function returns the root mean square of all the values found in each sliding window. The associated location is the last one of the window.\\n\\nThe `mapper.rms` function can only be applied to values of type **LONG** or **DOUBLE**.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.rms(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.2.18\",\"OPB64name\":\"mapper.rms\"},\"mapper.round\":{\"description\":\"This mapper function rounds the *single value* in a sliding window to the closests **LONG**.\\n\\nThe `mapper.round` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.round(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.round\"},\"mapper.sd\":{\"description\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sd( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd\"},\"mapper.sd.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.sd.forbid-nulls` has the same behavior as `mapper.sd`, use `mapper.sd` instead.\\n\\nThis mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sd.forbid-nulls( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sd.forbid-nulls\"},\"mapper.sd.welford\":{\"description\":\"This mapper function returns the standard deviation of each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nThe standard deviation is the square root of the variance as computed by [`mapper.var`](/doc/mapper.var).\\n\\nThe `mapper.sd.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sd.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.sd.welford\"},\"mapper.second\":{\"description\":\"This mapper function returns the second of the tick for which it is computed.\\n\\nThe `mapper.second` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"mapper.second( timezone:STRING ): result:AGGREGATOR\\nmapper.second( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.second\"},\"mapper.sigmoid\":{\"description\":\"This mapper function returns the sigmoid of *single value* in a sliding window.\\n\\nThe `mapper.sigmoid` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sigmoid(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sigmoid\"},\"mapper.sqrt\":{\"description\":\"This mapper function computes the square root of the single value in a sliding window.\\n\\nFor negative numerics, this mapper returns **NaN**. For string values, this mapper returns 0.\\n\\nThe associated location and elevation are those of the single value.\\n\\n> ### Note\\n> The `mapper.sqrt` mapper needs a single value sliding window, i.e. pre-window and post-window to 0\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sqrt(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.2.11\",\"OPB64name\":\"mapper.sqrt\"},\"mapper.sum\":{\"description\":\"This mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sum(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum\"},\"mapper.sum.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.sum.forbid-nulls` has the same behavior as `mapper.sum`, use `mapper.sum` instead.\\n\\nThis mapper function computes the sum of all the values found in the sliding window. The associated location and elevation are those of the most recent tick of the window.\\n\\nThe `mapper.sum.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.sum.forbid-nulls(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.sum.forbid-nulls\"},\"mapper.tanh\":{\"description\":\"This mapper function returns the hyperbolic tangent of *single value* in a sliding window.\\n\\nThe `mapper.tanh` function can be applied to data of type **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.tanh(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tanh\"},\"mapper.tick\":{\"description\":\"This mapper function returns the tick for which it is computed. The associated location and elevation are those of the selected value.\\n\\nThe `mapper.tick` function can be applied to values of any type.        \\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.tick(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.tick\"},\"mapper.toboolean\":{\"description\":\"This mapper function converts the single value in a sliding window to **BOOLEAN**.\\n\\nThe `mapper.toboolean` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.toboolean(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.toboolean\"},\"mapper.todouble\":{\"description\":\"This mapper function converts the single value in a sliding window to **DOUBLE**.\\n\\nThe `mapper.todouble` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.todouble(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.todouble\"},\"mapper.tolong\":{\"description\":\"This mapper function converts the single value in a sliding window to **LONG**.\\n\\nThe `mapper.tolong` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\nWhen used on bucketized GTS, this mapper will fail on empty bucket. Use [`UNBUCKETIZE`](/doc/UNBUCKETIZE) first.\\n\\nIf the GTS contains duplicated timestamps, this mapper will fail. Use [`DEDUP`](/doc/DEDUP) first.\\n\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.tolong(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tolong\"},\"mapper.tostring\":{\"description\":\"This mapper function converts the single value in a sliding window to **STRING**.\\n\\nThe `mapper.tostring` function can be applied to data of type **BOOLEAN**, **STRING**, **LONG** or **DOUBLE**.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.tostring(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.tostring\"},\"mapper.truecourse\":{\"description\":\"Pushes onto the stack a mapper which will compute the initial [true course]http://www.edwilliams.org/avform.htm#Crs) on a great circle from the first to the last datapoint in the sliding window.\\n\\nThe location and elevation of the result is that of the tick being considered.\\n\\n@param `result` Instance of mapper.truecourse.\\n\\n\",\"signature\":\"mapper.truecourse(): result:AGGREGATOR\",\"tags\":[\"mapper\",\"geo\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.truecourse\"},\"mapper.var\":{\"description\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.var( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var\"},\"mapper.var.forbid-nulls\":{\"description\":\"**Deprecated**: `mapper.var.forbid-nulls` has the same behavior as `mapper.var`, use `mapper.var` instead.\\n\\nThis mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated \\nwith the most recent value in the sliding window.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.forbid-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\nIf a value is **NULL** in the bucket, the result is **NULL**.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.var.forbid-nulls( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.var.forbid-nulls\"},\"mapper.var.welford\":{\"description\":\"This mapper function returns the variance of all the values found in each sliding window. The location and elevation returned are those associated with the most recent value in the sliding window.\\n\\nThis is similar to [`mapper.var`](/doc/mapper.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIf the number of values in the sliding window is greater than one, [Bessel’s correction](http://en.wikipedia.org/wiki/Bessel's_correction) is applied. \\nThe `mapper.var.welford` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** or **BOOLEAN** it does not return any value.\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.var.welford( bessel:BOOLEAN ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"2.9.0\",\"OPB64name\":\"mapper.var.welford\"},\"mapper.vdist\":{\"description\":\"This mapper function computes the total distance traveled in the vertical plane in the sliding window.\\n\\nThe distance is computed by summing the distances between consecutive elevations (this differs from the computation done in [`mapper.vspeed`](/doc/mapper.vspeed))\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed distance is expressed in meters.\\n\\nThe `mapper.vdist` function can be applied to data of any type since it only considers locations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.vdist(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vdist\"},\"mapper.vspeed\":{\"description\":\"This mapper function computes the vertical speed between the first and last readings of the sliding window. It does not compute the speed based on the total\\nvertical distance traveled in the sliding window, it only considers its extrema (it differs significantly of what is done for horizontal speed in\\n[`mapper.hspeed`](/doc/mapper.hspeed)), thus the result can be positive or negative.\\n\\nIf one of the extrema of the sliding window has no elevation, no value is returned.\\n\\nThe associated location and elevation are those at the tick being computed if it is part of the sliding window.\\n\\nThe computed speed is expressed in meters per second.\\n\\nThe `mapper.vspeed` function can be applied to data of any type since it only considers elevations.\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.vspeed(): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.11\",\"OPB64name\":\"mapper.vspeed\"},\"mapper.weekday\":{\"description\":\"This mapper function returns the day of the week of the tick for which it is computed.\\n\\nThe `mapper.weekday` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `offset` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n\",\"signature\":\"mapper.weekday( timezone:STRING ): result:AGGREGATOR\\nmapper.weekday( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.weekday\"},\"mapper.year\":{\"description\":\"This mapper function returns the year of the tick for which it is computed.\\n\\nThe `mapper.year` function can be applied to values of any type.\\n\\n@param `timezone` Timezone to use\\n\\n@param `result` Mapper to apply\\n\\n@param `offset` Time offset in milliseconds, can be used instead of a named timezone.\\n\\n\",\"signature\":\"mapper.year( timezone:STRING ): result:AGGREGATOR\\nmapper.year( offset:NUMBER ): result:AGGREGATOR\",\"tags\":[\"mapper\"],\"since\":\"1.0.0\",\"OPB64name\":\"mapper.year\"},\"max.tick.sliding.window\":{\"description\":\"Pushes onto the stack [`MAXLONG`](/doc/MAXLONG) divided by 2, to serve as the maximum number of ticks left or right of the current tick in a [`MAP`](/doc/MAP) sliding window.\\n\\nGiven that a Geo Time Series™ can have no more than 2**32 datapoints, this value is sufficient to cover the whole GTS left or right of the current tick.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"signature\":\"max.tick.sliding.window(): max:LONG\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.tick.sliding.window\"},\"max.time.sliding.window\":{\"description\":\"Pushes onto the stack half of the minimum LONG value, to serve as a *pre* or *post* extension of a [`MAP`](/doc/MAP) sliding window in time units.\\n\\nThis value spans a lot of time but may not be enough to cover the entirety of a GTS.\\n\\n@param `max` Value pushed onto the stack.\\n\\n\",\"signature\":\"max.time.sliding.window(): max:LONG\",\"tags\":[\"mapper\",\"framework\"],\"since\":\"1.0.0\",\"OPB64name\":\"max.time.sliding.window\"},\"ms\":{\"description\":\"Converts a number of milliseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of milliseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of milliseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of milliseconds\\n\\n\",\"signature\":\"ms( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ms\"},\"mwei\":{\"description\":\"The `mwei` function returns 1,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"mwei(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"mwei\"},\"ns\":{\"description\":\"Converts a number of nanoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of nanoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of nanoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of nanoseconds\\n\\n\",\"signature\":\"ns( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ns\"},\"op.add\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter Geo Time Series™.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator forbids null values, *i.e.* if a `null` is encountered, then there will be no result for the given tick.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.add(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.add\"},\"op.add.ignore-nulls\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), will add the values of the parameter GTS.\\n\\nThe type of the result is determined by the first value encountered.\\n\\nIf the result is of type **STRING**, then the operator acts as a concatenation.\\n\\nWhen the result is numeric, **STRING** values will cause an error, and **BOOLEAN** values will be converted to 1 (`true`) or 0 (`false`).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.add.ignore-nulls(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.add.ignore-nulls\"},\"op.and\":{\"description\":\"To apply an `op.and` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.and(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and\"},\"op.and.ignore-nulls\":{\"description\":\"To apply an `op.and.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.and.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.and.ignore-nulls` operation will applies **AND** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.and.ignore-nulls(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.and.ignore-nulls\"},\"op.div\":{\"description\":\"To apply an `op.div` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.div is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.div` operation can only operate on equivalence classes which have two GTS (if the equivalence class has more than two GTS, there is no result guaranted). It will divide at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.div(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.div\"},\"op.eq\":{\"description\":\"To apply an `op.eq` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then op.eq is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.eq` operation will check for equality at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.eq(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.eq\"},\"op.ge\":{\"description\":\"To apply an `op.ge` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ge` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ge` operation will check at each tick if the value of the current GTS is greater or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.ge(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ge\"},\"op.gt\":{\"description\":\"To apply an `op.gt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.gt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.gt` operation will check at each tick if the value of the current GTS is greater than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.gt(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.gt\"},\"op.le\":{\"description\":\"To apply an `op.le` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.le` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.le` operation will check at each tick if the value of the current GTS is lesser or equals to the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.le(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.le\"},\"op.lt\":{\"description\":\"To apply an `op.lt` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.lt` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.lt` operation will check at each tick if the value of the current GTS is lesser than the value of the next GTS. In a recursive way, it will run throw all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.lt(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.lt\"},\"op.mask\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), retains datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.mask(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mask\"},\"op.mul\":{\"description\":\"To apply an `op.mul` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.mul(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.mul\"},\"op.mul.ignore-nulls\":{\"description\":\"To apply an `op.mul.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.mul.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.mul.ignore-nulls` operation will multiply at each tick all the values of all the GTS belonging to the same class (if they do have a value for this current tick). To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\nSome types cannot be multiplied (eg it’s not possible to multiply a **STRING** to a **LONG**).\\n\\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.mul.ignore-nulls(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.2.4\",\"OPB64name\":\"op.mul.ignore-nulls\"},\"op.ne\":{\"description\":\"To apply an `op.ne` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.ne` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.ne` operation will check for inequality at each tick all the values of all the GTS belonging to the same class. If one GTS doesn’t have a value for the current tick the result for this tick is false.\\n\\nThe elevation and location are cleared.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.ne(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.ne\"},\"op.negmask\":{\"description\":\"Pushes onto the stack an operator which, in an [`APPLY`](/doc/APPLY), removes datapoints in Geo Time Series™ for the ticks where a BOOLEAN *mask* Geo Time Series™ has `true` values.\\n\\nThis operator can only be applied to pairs of GTS.\\n\\n@param `op` The operator instance.\\n\\n\",\"signature\":\"op.negmask(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.negmask\"},\"op.or\":{\"description\":\"To apply an `op.or` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.or(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or\"},\"op.or.ignore-nulls\":{\"description\":\"To apply an `op.or.ignore-nulls` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.or.ignore-nulls` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe `op.or.ignore-nulls` operation will applies an **OR** at each tick on values of all the GTS belonging to the same class (in the order they are passed). The elevation and location are cleared. To produce a result, all GTS of a same class must have a value at a same tick.\\n\\nIf the first value found isn’t a boolean, all values produced will be false.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n      \\nThis operator simply ignores null values.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.or.ignore-nulls(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.or.ignore-nulls\"},\"op.sub\":{\"description\":\"To apply an `op.sub` operation, N parameters are on top of the stack: N-1 Geo Time Series™ lists and one labels List. According to those labels, it produces multiple equivalence classes from the GTS inside those N-1 lists (if they match the same labels as the equivalence class). Then `op.sub` is applyied to the GTS in those classes, building only one result GTS for each class.\\n\\nThe sub operator can only operate on equivalence classes which have **exactly two GTS**. It will substract at each tick the value of the first GTS by the value of the second GTS. To produce a result, both GTS of a same class must have a value at a same tick.\\n\\nThe type of the resulting GTS will be determined by the first non null value. It only operates on **LONG** and **DOUBLE**.\\n\\nThe name of the resulting GTS is the one of the last GTS of the equivalence class. The labels kept are the one of the equivalence class.\\n\\n@param `op` The instance of operator.\\n\\n\",\"signature\":\"op.sub(): op:OPERATOR\",\"tags\":[\"op\"],\"since\":\"1.0.11\",\"OPB64name\":\"op.sub\"},\"pi\":{\"description\":\"Alias of [PI](/doc/J3Z).\\n\\nPushes &#x03c0; constant on the stack (3.1415...).\\n\\n@param `pi` Pi constant\\n\\n\",\"signature\":\"pi(): pi:DOUBLE\",\"tags\":[\"math\",\"constants\"],\"since\":\"1.0.0\",\"OPB64name\":\"R5Z\"},\"ps\":{\"description\":\"Converts a number of picoseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of picoseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of picoseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of picoseconds\\n\\n\",\"signature\":\"ps( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"ps\"},\"pwei\":{\"description\":\"The `pwei` function returns 1,000,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"pwei(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"pwei\"},\"reducer.and\":{\"description\":\"The `reducer.and` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.and(): reducer:AGGREGATOR\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and\"},\"reducer.and.exclude-nulls\":{\"description\":\"The `reducer.and.exclude-nulls` function outputs the result of the logical operator **AND** for each tick value of Geo Time Series™ \\nwhich are in the same equivalence class, excluding nulls from the computation.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.and.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, \\nthe current value is considered to be **false**.\\n\\nThe standard version of this reducer, `reducer.and`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.and.exclude-nulls`, will exclude all `null` values when computing the **AND**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.and.exclude-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\",\"logic\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.and.exclude-nulls\"},\"reducer.argmax\":{\"description\":\"The `reducer.argmax` function outputs for each tick, the tick and the concatenation separated by ‘,’ of the values of the labels for which the\\nvalue is the maximum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the maximum to report (use 0 to report all), and a **STRING**\\nparameter to choose on which label it operates.\\n\\n@param `maximum` Maximum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.argmax( label:STRING maximum:LONG ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmax\"},\"reducer.argmin\":{\"description\":\"The `reducer.argmin` function outputs for each tick, the tick and the concatenation separated by ‘,’ \\nwith the values of the labels for which the value is the minimum of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThere is no location and elevation returned.\\n\\nThis reducer takes an additional **LONG** parameter to choose the minimum to report (use 0 to report all), and a **STRING** \\nparameter to choose on which label it operates.\\n\\n@param `minimum` Minimum to report (use 0 to report all)\\n\\n@param `label` Operated label\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.argmin( label:STRING minimum:LONG ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.argmin\"},\"reducer.count\":{\"description\":\"The `reducer.count` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe include null version, [`reducer.count.include-nulls`](/doc/reducer.count.include-nulls), will include null values when computing the count. The exclude null version, \\n[`reducer.count.exclude-nulls`](/doc/reducer.count.exclude-nulls), will exclude null values when computing the count.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.count(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count\"},\"reducer.count.exclude-nulls\":{\"description\":\"The `reducer.count.exclude-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.count.exclude-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.exclude-nulls\"},\"reducer.count.include-nulls\":{\"description\":\"The `reducer.count.include-nulls` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are included.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.count.include-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.include-nulls\"},\"reducer.count.nonnull\":{\"description\":\"The `reducer.count.nonnull` function computes for each tick the number of measures of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nNull values are excluded.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.count.nonnull(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.count.nonnull\"},\"reducer.join\":{\"description\":\"The 'reducer.join' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will exclude all null values when computing the join.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"reducer.join( separator:STRING ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join\"},\"reducer.join.forbid-nulls\":{\"description\":\"Alias of [`reducer.join.nonnull`](/doc/reducer.join.nonnull).\\n\\nThe 'reducer.join.forbid-nulls' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"reducer.join.forbid-nulls( separator:STRING ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.forbid-nulls\"},\"reducer.join.nonnull\":{\"description\":\"Alias of [`reducer.join.forbid-nulls`](/doc/reducer.join.forbid-nulls).\\n\\nThe 'reducer.join.nonnull' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"reducer.join.nonnull( separator:STRING ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.nonnull\"},\"reducer.join.urlencoded\":{\"description\":\"The 'reducer.join.urlencoded' function outputs for each tick of Geo Time Series™ which are in the same equivalence class, the concatenation of the string representation of values separated by the join string using [URL Encoding](https://en.wikipedia.org/wiki/Percent-encoding) and the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) charset.\\n\\nThe location and elevation returned are from the latest measure.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `separator` Separator string\\n\\n\",\"signature\":\"reducer.join.urlencoded( separator:STRING ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.join.urlencoded\"},\"reducer.mad\":{\"description\":\"Pushes onto the stack an AGGREGATOR which computes the [Median Absolute Deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) for each ticks. Null values are removed before computing the MAD for each ticks.\\n\\nThe returned location is the median of all the locations and the returned elevation is the median of all the elevations.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.mad(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.2.0\",\"OPB64name\":\"reducer.mad\"},\"reducer.max\":{\"description\":\"The `reducer.max` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will exclude all null values when computing the maximum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.max(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max\"},\"reducer.max.forbid-nulls\":{\"description\":\"Alias of [`reducer.max.nonnull`](/doc/reducer.max.nonnull).\\n\\nThe `reducer.max.forbid-nulls` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.max.forbid-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.forbid-nulls\"},\"reducer.max.nonnull\":{\"description\":\"Alias of [`reducer.max.forbid-nulls`](/doc/reducer.max.forbid-nulls).\\n\\nThe `reducer.max.nonnull` function outputs for each tick the maximum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first maximum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.max.nonnull(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.max.nonnull\"},\"reducer.mean\":{\"description\":\"The `reducer.mean` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.mean(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean\"},\"reducer.mean.circular\":{\"description\":\"The `reducer.mean.circular` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, no value will be returned. Use [`reducer.mean.circular.exclude-nulls`](/doc/reducer.mean.circular.exclude-nulls) if your GTS contain nulls.\\n\\nThe `reducer.mean.circular` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"reducer.mean.circular( modulo:NUMBER ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular\"},\"reducer.mean.circular.exclude-nulls\":{\"description\":\"The `reducer.mean.circular.exclude-nulls` function returns the the circular mean of all the values for each value of Geo Time Series™.\\nThe associated location is the centroid of all the encountered locations. The associated elevation is the mean of the encountered elevations.\\n\\nThe `reducer.mean.circular.exclude-nulls` function can only be applied to values of type **LONG** or **DOUBLE**, when applied to **STRING** \\nor **BOOLEAN** it does not return any value.\\n\\nIf any tick is undefined, it is excluded from computing.\\n\\nThe `reducer.mean.circular.exclude-nulls` function expects a positive, finite, numeric period on top of the stack, this period will be \\nused to determine the span of circular values, use for example 360.0 if you wish to compute the circular mean of degree angles.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `modulo` The span of circular values\\n\\n\",\"signature\":\"reducer.mean.circular.exclude-nulls( modulo:NUMBER ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.circular.exclude-nulls\"},\"reducer.mean.exclude-nulls\":{\"description\":\"The `reducer.mean.exclude-nulls` function outputs for each tick the mean of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location returned is the centroid of all the locations, the elevation is the average elevation.\\n\\nIt will exclude all null values when computing the mean.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.mean.exclude-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.mean.exclude-nulls\"},\"reducer.median\":{\"description\":\"The `reducer.median` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.median(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.median\"},\"reducer.median.forbid-nulls\":{\"description\":\"The `reducer.median.forbid-nulls` function outputs for each tick the median, as defined by the [NIST](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm), of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE** and it always returns a **DOUBLE**.\\n\\nIf this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series™ in the same equivalence class, it throws an error.\\n\\nAs the median is effectively computed using one or two points, the location/elevation of the result is:\\n- not defined is there is no location/elevation\\n- the value of the location/elevation if only one point has this info\\n- the centroid/mean of the location/elevation if the two points have this info.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.median.forbid-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"2.4.0\",\"OPB64name\":\"reducer.median.forbid-nulls\"},\"reducer.min\":{\"description\":\"The `reducer.min` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will exclude all null values when computing the minimum.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.min(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min\"},\"reducer.min.forbid-nulls\":{\"description\":\"Alias of [`reducer.min.nonnull`](/doc/reducer.min.nonnull).\\n\\nThe `reducer.min.forbid-nulls` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.min.forbid-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.forbid-nulls\"},\"reducer.min.nonnull\":{\"description\":\"Alias of [`reducer.min.forbid-nulls`](/doc/reducer.min.forbid-nulls).\\n\\nThe `reducer.min.nonnull` function outputs for each tick the minimum value of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on any type.\\n\\nThe location and elevation returned are those of the first minimum value encountered.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.min.nonnull(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.min.nonnull\"},\"reducer.or\":{\"description\":\"The `reducer.or` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.or(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or\"},\"reducer.or.exclude-nulls\":{\"description\":\"The `reducer.or.exclude-nulls` function outputs the result of the logical operator `OR` for each tick value of Geo Time Series™ which are in the same equivalence class.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe `reducer.or.exclude-nulls` function can be applied to values of any type, when not applied to **BOOLEAN** types, the current value is considered to be false.\\n\\nThe standard version of this reducer, `reducer.or`, will return `null` for any tick where one or more GTS have `null` values. The *exclude null* version, `reducer.or.exclude-nulls`, will exclude all `null` values when computing the **OR**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.or.exclude-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.or.exclude-nulls\"},\"reducer.percentile\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"reducer.percentile( percentile:NUMBER ): bucketizer:AGGREGATOR\\nreducer.percentile( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile\"},\"reducer.percentile.forbid-nulls\":{\"description\":\"Pushes onto the stack an AGGREGATOR which returns the N^th^ percentile of the values for each tick.\\n\\nFor this reducer, GTS must be aligned and must have a value for each tick of each GTS. If this reducer encouters a **NULL** value, ie ticks do not match between Geo Times Series in the same equivalence class, it throws an error.\\n\\nThe returned location and elevation are those of the chosen value or are interpolated in the same way the value is.\\n\\nThe percentile is computed according to the formulae in *Hyndman, Rob & Fan, Yanan. (1996). Sample Quantiles in Statistical Packages. The American Statistician*. Most used types are 1 when no interpolation is wanted and 7 when interpolation is wanted.\\n\\n@param `bucketizer` Bucketizer to apply\\n\\n@param `type` The formula to use for the computation of the percentile. Valid values are `type1` through `type9`. Defaults to `type1`.\\n\\n@param `percentile` Percentile to consider\\n\\n\",\"signature\":\"reducer.percentile.forbid-nulls( percentile:NUMBER ): bucketizer:AGGREGATOR\\nreducer.percentile.forbid-nulls( percentile:NUMBER type:STRING ): bucketizer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.percentile.forbid-nulls\"},\"reducer.product\":{\"description\":\"This reducer function computes the product of all the values for each tick.\\n\\nThe `reducer.product` function can only be applied to values of type **LONG** or **DOUBLE**, it will produce no value for types **STRING** and **BOOLEAN**.\\n\\nWarning: with **LONG** values, computation can silently overflow.\\n\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.product(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.product\"},\"reducer.rms\":{\"description\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIf one value is null, there won't be any result for the concerned tick.\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.rms(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms\"},\"reducer.rms.exclude-nulls\":{\"description\":\"The `reducer.rms` function computes for each tick the root mean square of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **DOUBLE** and **LONG**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nThe exclude null version [`reducer.rms.exclude-nulls`](/doc/reducer.rms.exclude-nulls), will exclude null values before computing the rms. Even if input GTS are misaligned, there will be one result per tick.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.rms.exclude-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.2.18\",\"OPB64name\":\"reducer.rms.exclude-nulls\"},\"reducer.sd\":{\"description\":\"The `reducer.sd` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.sd( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd\"},\"reducer.sd.forbid-nulls\":{\"description\":\"The `reducer.sd.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.sd.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sd.forbid-nulls\"},\"reducer.sd.welford\":{\"description\":\"The `reducer.sd.welford` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`mapper.sd`](/doc/mapper.sd) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.sd.welford( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford\"},\"reducer.sd.welford.forbid-nulls\":{\"description\":\"The `reducer.sd.welford.forbid-nulls` function outputs for each tick the standard deviation of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nThis is similar to [`reducer.sd.forbid-nulls`](/doc/reducer.sd.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.sd.welford.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.sd.welford.forbid-nulls\"},\"reducer.shannonentropy.0\":{\"description\":\"The `reducer.shannonentropy.0` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 0 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.shannonentropy.0(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.0\"},\"reducer.shannonentropy.1\":{\"description\":\"The `reducer.shannonentropy.1` computes the [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29#Entropy_as_information_content) of the values it receives from the framework [`REDUCE`](/doc/REDUCE) at each tick.\\n\\nThe values are considerred as occurences of an underlying symbol (or as values of a counter).\\n\\nThe returned entropy is normalized by being divided by log(N) where N is the number of values.\\n\\nIf N equals 1, then 1 is returned.\\n\\nThe input values must be of type **LONG**.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.shannonentropy.1(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.shannonentropy.1\"},\"reducer.sum\":{\"description\":\"The `reducer.sum` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.sum(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum\"},\"reducer.sum.forbid-nulls\":{\"description\":\"Alias of [`reducer.sum.nonnull`](/doc/reducer.sum.nonnull).\\n\\nThe `reducer.sum.forbid-nulls` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.sum.forbid-nulls(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.forbid-nulls\"},\"reducer.sum.nonnull\":{\"description\":\"Alias of [`reducer.sum.forbid-nulls`](/doc/reducer.sum.forbid-nulls).\\n\\nThe `reducer.sum.nonnull` function computes at each tick the sum of the values of Geo Time Series™ which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first one encountered, which may vary depending on the order of the parameters.\\n\\nIt will return **null** for any tick where one or more GTS have **null** values.\\n\\n@param `reducer` Reducer to apply\\n\\n\",\"signature\":\"reducer.sum.nonnull(): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.sum.nonnull\"},\"reducer.var\":{\"description\":\"The `reducer.var` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.var( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var\"},\"reducer.var.forbid-nulls\":{\"description\":\"The `reducer.var.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.var.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"1.0.11\",\"OPB64name\":\"reducer.var.forbid-nulls\"},\"reducer.var.welford\":{\"description\":\"The `reducer.var.welford` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var`](/doc/reducer.var) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.var.welford( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford\"},\"reducer.var.welford.forbid-nulls\":{\"description\":\"The `reducer.var.welford.forbid-nulls` function outputs for each tick the variance of the values of Geo Time SeriesTM which are in the same equivalence class.\\n\\nThis is similar to [`reducer.var.forbid-nulls`](/doc/reducer.var.forbid-nulls) except this version implements Welford's method which is 10% slower but is much less subject to numerical instability.\\n\\nIt operates on **LONG** and **DOUBLE**.\\n\\nThe location and elevation returned are the first encountered.\\n\\nThis reducer takes an additional boolean parameter to choose if Bessel correction should be applied.\\n\\nIt will exclude all null values when computing the result.\\n\\n@param `reducer` Reducer to apply\\n\\n@param `bessel` True if apply a [Bessel's correction](https://en.wikipedia.org/wiki/Bessel's_correction)\\n\\n\",\"signature\":\"reducer.var.welford.forbid-nulls( bessel:BOOLEAN ): reducer:AGGREGATOR\",\"tags\":[\"reducer\"],\"since\":\"2.9.0\",\"OPB64name\":\"reducer.var.welford.forbid-nulls\"},\"s\":{\"description\":\"Converts a number of seconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of seconds from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of seconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of seconds\\n\\n\",\"signature\":\"s( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"s\"},\"shannon\":{\"description\":\"The `shannon` function returns 1,000,000,000.\\n\\nThe unit is named after [Claude Shannon](https://en.wikipedia.org/wiki/Claude_Shannon).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"shannon(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"shannon\"},\"szabo\":{\"description\":\"The `szabo` function returns 1,000,000,000,000.\\n\\nThe unit is named after [Nick Szabo](https://en.wikipedia.org/wiki/Nick_Szabo).\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"szabo(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"szabo\"},\"twei\":{\"description\":\"The `twei` function returns 1,000,000,000,000.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"twei(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"twei\"},\"us\":{\"description\":\"Converts a number of microseconds (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of microseconds from the top of the stack and pushes back the number of time units corresponding.\\n\\nIf you ask for a lower unit than the platform configuration, you will get a long rounded to the closest value.\\n\\n@param `input` Number of microseconds to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of microseconds\\n\\n\",\"signature\":\"us( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"us\"},\"w\":{\"description\":\"Converts a number of weeks (positive or negative) in the platform's time unit.\\n\\nThe time unit depends on the platform configuration `warp.timeunits` (microseconds by default on a standalone).\\n\\nIt consumes a number of weeks from the top of the stack and pushes back the number of time units corresponding.\\n\\n@param `input` Number of weeks to convert in the platform's time unit\\n\\n@param `output` Number of time units corresponding to the number of weeks\\n\\n\",\"signature\":\"w( input:NUMBER ): output:LONG\",\"tags\":[\"date\"],\"since\":\"1.0.0\",\"OPB64name\":\"w\"},\"wei\":{\"description\":\"The `wei` function returns 1 as the base unit of currency.\\n\\n@param `value` Currency units associated with the unit name.\\n\\n\",\"signature\":\"wei(): value:LONG\",\"tags\":[\"extensions\"],\"OPB64name\":\"wei\"},\"{\":{\"description\":\"Starts a map creation.\\n\\nThe `{` function creates a map by pushing a mark onto the stack. This is a syntactic help to better present map constructions. This function behaves like [`MARK`].\\n\\n@param `mark` A MARK object.\\n\\n\",\"signature\":\"{(): mark:MARK\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tk\"},\"{}\":{\"description\":\"The {} function creates an empty MAP on the top of the stack.\\n\\n\\n@param `newmap` Empty map instance.\\n\\n\",\"signature\":\"{}(): newmap:MAP\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"Tro\"},\"|\":{\"description\":\"Performs a bitwise **OR** operation.\\n\\nThe `|` operator consumes two **LONG** from the top of the stack and pushes back their bitwise **OR**.\\n \\nSince Warp 10™ 2.1, `|` can be applied on two long GTS, or on one long GTS and a long mask.\\n\\n@param `p1` The first parameter\\n\\n@param `p2` The second parameter\\n\\n@param `result` The bitwise **XOR** result\\n\\n@param `inputgts` Since 2.1, a GTS with long values\\n\\n@param `gts1` Since 2.1, a GTS with long values\\n\\n@param `gts2` Since 2.1, a GTS with long values\\n\\n@param `mask` Since 2.1, a long which will be OR to every value of inputgts\\n\\n@param `outputgts` Since 2.1, a new sorted GTS with OR between each input values. Values are presents only for common input ticks.\\n\\n@param `maskedgts` Since 2.1, a new sorted GTS where values are inputs from inputgts OR with mask\\n\\n\",\"signature\":\"|( p1:LONG p2:LONG ): result:LONG\\n|( inputgts:GTS mask:LONG ): maskedgts:GTS\\n|( gts1:GTS gts2:GTS ): outputgts:GTS\",\"tags\":[\"binary\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"U.\"},\"||\":{\"description\":\"The `||` operator is a synonymous for [`OR`](/doc/OR).\\n\\nIt performs a logical **OR** on its parameters. When applied to a list of parameters, the parameter scan stops at the first `true` value encountered.\\n\\nSince Warp 10™ 2.1, `||` can be applied on two boolean GTS to produce a new GTS.\\n\\n@param `p1` The first boolean\\n\\n@param `p2` The second boolean\\n\\n@param `l` The list containing BOOLEANs or MACROs returning BOOLEANs\\n\\n@param `result` The boolean result of the logical OR applied to the parameters\\n\\n@param `gts1` Since 2.1, a boolean GTS input\\n\\n@param `gts2` Since 2.1, a boolean GTS input\\n\\n@param `gtsresult` Since 2.1, a new sorted GTS with OR between each common tick input values.\\n\\n\",\"signature\":\"||( p1:BOOLEAN p2:BOOLEAN ): result:BOOLEAN\\n||( l:LIST ): result:BOOLEAN\\n||( gts1:GTS gts2:GTS ): gtsresult:GTS\",\"tags\":[\"operators\",\"logic\"],\"since\":\"1.0.0\",\"OPB64name\":\"U6k\"},\"}\":{\"description\":\"Closes a currently open map and pushes it onto the stack.\\n\\nThe `}` function pops from the stack the elements (key/value pairs) of the map up to the first mark. The marks are consumed.\\n\\n@param `k1` The first key\\n\\n@param `v1` The first value\\n\\n@param `kN` The Nth key\\n\\n@param `vN` The Nth value\\n\\n@param `map` The built map\\n\\n@param `mark` The mark indicating the deepest level to consider when building the map\\n\\n\",\"signature\":\"}( mark:MARK k1:ANY v1:ANY kN:ANY vN:ANY ): map:MAP\",\"tags\":[\"maps\"],\"since\":\"1.0.0\",\"OPB64name\":\"UF\"},\"~\":{\"description\":\"Computes the unary bitwise complement of the long value on top of the stack.\\n\\n@param `param` Value to compute\\n\\n@param `result` Bitwise result\\n\\n\",\"signature\":\"~( param:LONG ): result:LONG\",\"tags\":[\"operators\",\"binary\",\"math\"],\"since\":\"1.0.0\",\"OPB64name\":\"UV\"},\"~=\":{\"description\":\"The `~=` operator consumes three parameters from the top of the stack, two operands p1 and p2 and a tolerance factor lambda, \\nand pushes onto the stack true if *|p1-p2| < lambda*, i.e. the difference between the two operands is lesser than lambda.\\n\\nAll parameters must be of numeric types.\\n\\nThe operator `~=` is useful when making comparaisons between doubles, where floating point operations generate rounding errors.\\n\\n@param `p1` First number\\n\\n@param `p2` Second number\\n\\n@param `lambda` Tolerance factor lambda\\n\\n@param `result` \\n\\n\",\"signature\":\"~=( p2:NUMBER p1:NUMBER lambda:NUMBER ): result:BOOLEAN\",\"tags\":[\"math\",\"operators\"],\"since\":\"1.0.0\",\"OPB64name\":\"UYo\"}};\n            ","/*\n *  Copyright 2020-2022 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CancellationToken, editor, languages, Position} from 'monaco-editor';\nimport {globalfunctions as flowsGlobals} from '../../../model/flowsGlobals';\nimport {W10HoverProvider} from './W10HoverProvider';\nimport {EditorUtils} from './editorUtils';\nimport Hover = languages.Hover;\nimport ProviderResult = languages.ProviderResult;\n\nexport class FLoWSHoverProvider extends W10HoverProvider {\n\n  constructor() {\n    super(EditorUtils.FLOWS_LANGUAGE);\n  }\n\n  provideHover(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Hover> {\n    return super._provideHover(model, position, token, flowsGlobals);\n  }\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n\nimport {languages} from 'monaco-editor';\nimport IndentAction = languages.IndentAction;\n\nexport class FLoWSLanguageConfiguration {\n  getConfiguration(): languages.LanguageConfiguration {\n    return {\n      wordPattern: /[^\\s\\t\\(]+/,\n      comments: {\n        lineComment: '//',\n        blockComment: ['/**', '*/']\n      },\n      brackets: [\n        ['{', '}'],\n        ['[', ']'],\n        ['(', ')'],\n        ['<\\'', '\\'>'],\n        ['[[', ']]']\n      ],\n      autoClosingPairs: [\n        {open: '{', close: '}'},\n        {open: '[', close: ']'},\n        {open: '(', close: ')'},\n        {open: '[[', close: ']]'},\n        {open: ' \\'', close: '\\'', notIn: ['string', 'comment']},\n        {open: '\"', close: '\"', notIn: ['string']},\n        {open: '`', close: '`', notIn: ['string', 'comment']},\n        {open: '/**', close: ' */', notIn: ['string']},\n      ],\n      autoCloseBefore: ';:.,=}])> \\n\\t',\n      surroundingPairs: [\n        {open: '{', close: '}'},\n        {open: '[', close: ']'},\n        {open: '(', close: ')'},\n        {open: '[[', close: ']]'},\n        {open: '\\'', close: '\\''},\n        {open: '\"', close: '\"'},\n        {open: '`', close: '`'},\n      ],\n      indentationRules: {\n        increaseIndentPattern: /^\\s*(\\[|{|\\(|\\[\\[)\\b.*$/,\n        decreaseIndentPattern: /^\\s*(]|}|\\)|]]|'>)\\b.*$/\n      },\n      onEnterRules: [\n        {\n          // e.g. /** | */\n          beforeText: /^\\s*\\/\\*\\*(?!\\/)([^*]|\\*(?!\\/))*$/,\n          afterText: /^\\s*\\*\\/$/,\n          action: {indentAction: IndentAction.IndentOutdent, appendText: ' * '},\n        },\n        {\n          // e.g. /** ...|\n          beforeText: /^\\s*\\/\\*\\*(?!\\/)([^*]|\\*(?!\\/))*$/,\n          action: {indentAction: IndentAction.None, appendText: ' * '},\n        },\n        {\n          // e.g.  * ...|\n          beforeText: /^(\\t|( {2}))* \\*( ([^*]|\\*(?!\\/))*)?$/,\n          action: {indentAction: IndentAction.None, appendText: '* '},\n        },\n        {\n          // e.g.  */|\n          beforeText: /^(\\t|( {2}))* \\*\\/\\s*$/,\n          action: {indentAction: IndentAction.None, removeText: 1},\n        },\n      ],\n    };\n  }\n}\n","export class MonarchFlows {\n        public static rules:any =  {\n    \"keywords\": [\n        \"!\",\n        \"!=\",\n        \"%\",\n        \"&\",\n        \"&&\",\n        \"(\",\n        \"()\",\n        \")\",\n        \"*\",\n        \"**\",\n        \"+\",\n        \"+!\",\n        \"-\",\n        \"->B58\",\n        \"->B58C\",\n        \"->B64\",\n        \"->B64URL\",\n        \"->BIN\",\n        \"->BYTES\",\n        \"->DOUBLEBITS\",\n        \"->ENCODER\",\n        \"->ENCODERS\",\n        \"->FLOATBITS\",\n        \"->GEOCELL\",\n        \"->GEOHASH\",\n        \"->GEOJSON\",\n        \"->GEOSHAPE\",\n        \"->GML\",\n        \"->GTS\",\n        \"->GTSHHCODE\",\n        \"->GTSHHCODELONG\",\n        \"->HEX\",\n        \"->HHCODE\",\n        \"->HHCODELONG\",\n        \"->JSON\",\n        \"->KML\",\n        \"->LIST\",\n        \"->LONGBYTES\",\n        \"->MACRO\",\n        \"->MAP\",\n        \"->MAT\",\n        \"->MVSTRING\",\n        \"->OPB64\",\n        \"->PICKLE\",\n        \"->Q\",\n        \"->RLP\",\n        \"->SET\",\n        \"->SSSS\",\n        \"->TSELEMENTS\",\n        \"->V\",\n        \"->VARINT\",\n        \"->VEC\",\n        \"->WKB\",\n        \"->WKT\",\n        \"->Z\",\n        \"/\",\n        \"<\",\n        \"<<\",\n        \"<=\",\n        \"==\",\n        \">\",\n        \">=\",\n        \">>\",\n        \">>>\",\n        \"ABI->\",\n        \"ABI.SIG\",\n        \"ABS\",\n        \"ACCEL.CACHE\",\n        \"ACCEL.NOCACHE\",\n        \"ACCEL.NOPERSIST\",\n        \"ACCEL.PERSIST\",\n        \"ACCEL.REPORT\",\n        \"ACOS\",\n        \"ADDDAYS\",\n        \"ADDDURATION\",\n        \"ADDEXACT\",\n        \"ADDMONTHS\",\n        \"ADDVALUE\",\n        \"ADDYEARS\",\n        \"AESUNWRAP\",\n        \"AESWRAP\",\n        \"AGO\",\n        \"AND\",\n        \"APPEND\",\n        \"APPLY\",\n        \"ASENCODERS\",\n        \"ASIN\",\n        \"ASREGS\",\n        \"ASSERT\",\n        \"ASSERTMSG\",\n        \"ATAN\",\n        \"ATAN2\",\n        \"ATBUCKET\",\n        \"ATINDEX\",\n        \"ATTICK\",\n        \"ATTRIBUTES\",\n        \"AUTHENTICATE\",\n        \"B58->\",\n        \"B58C->\",\n        \"B64->\",\n        \"B64TOHEX\",\n        \"B64URL->\",\n        \"BBOX\",\n        \"BIN->\",\n        \"BINTOHEX\",\n        \"BITCOUNT\",\n        \"BITGET\",\n        \"BITSTOBYTES\",\n        \"BOOTSTRAP\",\n        \"BREAK\",\n        \"BUCKETCOUNT\",\n        \"BUCKETIZE\",\n        \"BUCKETIZE.CALENDAR\",\n        \"BUCKETSPAN\",\n        \"BYTES->\",\n        \"BYTESTOBITS\",\n        \"CALL\",\n        \"CAPADD\",\n        \"CAPCHECK\",\n        \"CAPDEL\",\n        \"CAPGET\",\n        \"CBRT\",\n        \"CEIL\",\n        \"CELL->\",\n        \"CELLCF\",\n        \"CELLCQ\",\n        \"CELLROW\",\n        \"CELLTAGS\",\n        \"CELLTS\",\n        \"CELLVALUE\",\n        \"CEVAL\",\n        \"CHECKMACRO\",\n        \"CHECKSHAPE\",\n        \"CHRONOEND\",\n        \"CHRONOSTART\",\n        \"CHRONOSTATS\",\n        \"CHUNK\",\n        \"CHUNKENCODER\",\n        \"CLEAR\",\n        \"CLEARDEFS\",\n        \"CLEARREGS\",\n        \"CLEARSYMBOLS\",\n        \"CLEARTOMARK\",\n        \"CLIP\",\n        \"CLONE\",\n        \"CLONEEMPTY\",\n        \"CLONEREVERSE\",\n        \"COMMONTICKS\",\n        \"COMPACT\",\n        \"CONTAINS\",\n        \"CONTAINSKEY\",\n        \"CONTAINSVALUE\",\n        \"CONTINUE\",\n        \"COPYGEO\",\n        \"COPYSIGN\",\n        \"CORRELATE\",\n        \"COS\",\n        \"COSH\",\n        \"COUNTER\",\n        \"COUNTERDELTA\",\n        \"COUNTERSET\",\n        \"COUNTERVALUE\",\n        \"COUNTTOMARK\",\n        \"CPOPR\",\n        \"CPROB\",\n        \"CROP\",\n        \"CSTORE\",\n        \"DEBUGOFF\",\n        \"DEBUGON\",\n        \"DECREMENTEXACT\",\n        \"DEDUP\",\n        \"DEF\",\n        \"DEFINED\",\n        \"DEFINEDMACRO\",\n        \"DEFLATE\",\n        \"DELETE\",\n        \"DELETEOFF\",\n        \"DELETEON\",\n        \"DEPTH\",\n        \"DEREF\",\n        \"DET\",\n        \"DIFFERENCE\",\n        \"DISCORDS\",\n        \"DOC\",\n        \"DOCMODE\",\n        \"DOUBLEBITS->\",\n        \"DOUBLEEXPONENTIALSMOOTHING\",\n        \"DROP\",\n        \"DROPN\",\n        \"DTW\",\n        \"DUP\",\n        \"DUPN\",\n        \"DURATION\",\n        \"DWTSPLIT\",\n        \"E\",\n        \"ECDH\",\n        \"ECGEN\",\n        \"ECHOOFF\",\n        \"ECHOON\",\n        \"ECPRIVATE\",\n        \"ECPUBLIC\",\n        \"ECRECOVER\",\n        \"ECSIGN\",\n        \"ECVERIFY\",\n        \"EIP712.HASH\",\n        \"ELAPSED\",\n        \"ELEVATIONS\",\n        \"EMPTY\",\n        \"ENCODER->\",\n        \"ERROR\",\n        \"ESDTEST\",\n        \"ETH.BIP32\",\n        \"ETH.BIP39\",\n        \"ETH.CALL\",\n        \"ETH.KEY\",\n        \"ETH.LOG\",\n        \"ETH.NONCE\",\n        \"ETH.RECEIPT\",\n        \"ETH.RETURN\",\n        \"ETH.TXN\",\n        \"ETH.VERIFY\",\n        \"EVALSECURE\",\n        \"EVERY\",\n        \"EXP\",\n        \"EXPM1\",\n        \"EXPORT\",\n        \"EXTLOADED\",\n        \"F\",\n        \"FDWT\",\n        \"FETCH\",\n        \"FETCHBOOLEAN\",\n        \"FETCHDOUBLE\",\n        \"FETCHLONG\",\n        \"FETCHSTRING\",\n        \"FFT\",\n        \"FFTAP\",\n        \"FFTWINDOW\",\n        \"FILL\",\n        \"FILLNEXT\",\n        \"FILLPREVIOUS\",\n        \"FILLTICKS\",\n        \"FILLVALUE\",\n        \"FILTER\",\n        \"FILTERBY\",\n        \"FIND\",\n        \"FINDSETS\",\n        \"FINDSTATS\",\n        \"FIRSTTICK\",\n        \"FLATTEN\",\n        \"FLOAD\",\n        \"FLOATBITS->\",\n        \"FLOOR\",\n        \"FLOORDIV\",\n        \"FLOORMOD\",\n        \"FORGET\",\n        \"FREAD\",\n        \"FROMBIN\",\n        \"FROMBITS\",\n        \"FROMHEX\",\n        \"FSTORE\",\n        \"FUNCREF\",\n        \"FUNCTIONS\",\n        \"FUSE\",\n        \"GEO.BUFFER\",\n        \"GEO.COVER\",\n        \"GEO.COVER.RL\",\n        \"GEO.DIFFERENCE\",\n        \"GEO.GML\",\n        \"GEO.GML.UNIFORM\",\n        \"GEO.INTERSECTION\",\n        \"GEO.INTERSECTS\",\n        \"GEO.JSON\",\n        \"GEO.JSON.UNIFORM\",\n        \"GEO.KML\",\n        \"GEO.KML.UNIFORM\",\n        \"GEO.NORMALIZE\",\n        \"GEO.OPTIMIZE\",\n        \"GEO.REGEXP\",\n        \"GEO.UNION\",\n        \"GEO.WITHIN\",\n        \"GEO.WKB\",\n        \"GEO.WKB.UNIFORM\",\n        \"GEO.WKT\",\n        \"GEO.WKT.UNIFORM\",\n        \"GEOCELL->\",\n        \"GEOHASH->\",\n        \"GEOPACK\",\n        \"GEOSHAPE->\",\n        \"GEOSHIFT\",\n        \"GEOSPLIT\",\n        \"GEOUNPACK\",\n        \"GET\",\n        \"GETEXPONENT\",\n        \"GETHOOK\",\n        \"GETSECTION\",\n        \"GITFIND\",\n        \"GITLOAD\",\n        \"GITLOG\",\n        \"GITRM\",\n        \"GITSTORE\",\n        \"GITTAG\",\n        \"GOLDWRAP\",\n        \"GOST\",\n        \"GROUPBY\",\n        \"GRUBBSTEST\",\n        \"GTSHHCODE->\",\n        \"GUARD\",\n        \"GZIP\",\n        \"HASH\",\n        \"HAVERSINE\",\n        \"HEADER\",\n        \"HEX->\",\n        \"HEXTOB64\",\n        \"HEXTOBIN\",\n        \"HFCAT\",\n        \"HFCLOSE\",\n        \"HFDUMP\",\n        \"HFFETCH\",\n        \"HFID\",\n        \"HFINDEX\",\n        \"HFINFO\",\n        \"HFKEYS\",\n        \"HFOPEN\",\n        \"HFRESCAN\",\n        \"HFTOKEN\",\n        \"HHCODE->\",\n        \"HHCODE.BBOX\",\n        \"HHCODE.CENTER\",\n        \"HHCODE.EAST\",\n        \"HHCODE.NORTH\",\n        \"HHCODE.NORTH.EAST\",\n        \"HHCODE.NORTH.WEST\",\n        \"HHCODE.SOUTH\",\n        \"HHCODE.SOUTH.EAST\",\n        \"HHCODE.SOUTH.WEST\",\n        \"HHCODE.WEST\",\n        \"HIDE\",\n        \"HLOCATE\",\n        \"HTTP\",\n        \"HULLSHAPE\",\n        \"HUMANDURATION\",\n        \"HYBRIDTEST\",\n        \"HYBRIDTEST2\",\n        \"HYPOT\",\n        \"IDENT\",\n        \"IDWT\",\n        \"IEEEREMAINDER\",\n        \"IFFT\",\n        \"IMMUTABLE\",\n        \"IMPORT\",\n        \"INCREMENTEXACT\",\n        \"INDEXOF\",\n        \"INFLATE\",\n        \"INFO\",\n        \"INFOMODE\",\n        \"INTEGRATE\",\n        \"INTERPOLATE\",\n        \"INTERSECTION\",\n        \"INV\",\n        \"ISAUTHENTICATED\",\n        \"ISNULL\",\n        \"ISNaN\",\n        \"ISO8601\",\n        \"ISODURATION\",\n        \"ISONORMALIZE\",\n        \"JOIN\",\n        \"JSON->\",\n        \"JSONCOMPACT\",\n        \"JSONLOOSE\",\n        \"JSONPRETTY\",\n        \"JSONSTACK\",\n        \"JSONSTRICT\",\n        \"KECCAK.128\",\n        \"KECCAK.224\",\n        \"KECCAK.256\",\n        \"KECCAK.288\",\n        \"KECCAK.384\",\n        \"KECCAK.512\",\n        \"KEYLIST\",\n        \"KURTOSIS\",\n        \"LABELS\",\n        \"LASTACTIVITY\",\n        \"LASTBUCKET\",\n        \"LASTSORT\",\n        \"LASTTICK\",\n        \"LBOUNDS\",\n        \"LEVELDBCLOSE\",\n        \"LEVELDBOPEN\",\n        \"LEVELDBSECRET\",\n        \"LEVELDBSNAPSHOT\",\n        \"LEVELDBSNAPSHOTINC\",\n        \"LFILTER\",\n        \"LFLATMAP\",\n        \"LIMIT\",\n        \"LINEOFF\",\n        \"LINEON\",\n        \"LIST->\",\n        \"LMAP\",\n        \"LOAD\",\n        \"LOCATIONOFFSET\",\n        \"LOCATIONS\",\n        \"LOCSTRINGS\",\n        \"LOG\",\n        \"LOG10\",\n        \"LOG1P\",\n        \"LOGEVENT->\",\n        \"LOGMSG\",\n        \"LOWESS\",\n        \"LR\",\n        \"LSORT\",\n        \"LTTB\",\n        \"MACRO->\",\n        \"MACROBUCKETIZER\",\n        \"MACROCONFIG\",\n        \"MACROCONFIGDEFAULT\",\n        \"MACROCONFIGSECRET\",\n        \"MACROFILLER\",\n        \"MACROTTL\",\n        \"MAKEGTS\",\n        \"MAN\",\n        \"MAP\",\n        \"MAP->\",\n        \"MAPID\",\n        \"MARK\",\n        \"MAT->\",\n        \"MATCH\",\n        \"MATCHER\",\n        \"MAX\",\n        \"MAXBUCKETS\",\n        \"MAXDEPTH\",\n        \"MAXGEOCELLS\",\n        \"MAXGTS\",\n        \"MAXJSON\",\n        \"MAXLONG\",\n        \"MAXLOOP\",\n        \"MAXOPS\",\n        \"MAXPIXELS\",\n        \"MAXRECURSION\",\n        \"MAXSYMBOLS\",\n        \"MAXURLFETCHCOUNT\",\n        \"MAXURLFETCHSIZE\",\n        \"MCHECKSIG\",\n        \"MD2\",\n        \"MD4\",\n        \"MD5\",\n        \"MDETACH\",\n        \"MERGE\",\n        \"META\",\n        \"METADIFF\",\n        \"METAOFF\",\n        \"METAON\",\n        \"METASET\",\n        \"METASORT\",\n        \"MFILTER\",\n        \"MIN\",\n        \"MINLONG\",\n        \"MINREV\",\n        \"MMAP\",\n        \"MODE\",\n        \"MONOTONIC\",\n        \"MOTIONSPLIT\",\n        \"MRSEC\",\n        \"MSEC\",\n        \"MSIG\",\n        \"MSIGCOUNT\",\n        \"MSIGINFO\",\n        \"MSIGN\",\n        \"MSORT\",\n        \"MSTU\",\n        \"MULTIPLYEXACT\",\n        \"MUSIGMA\",\n        \"MUTEX\",\n        \"MVELEVATIONS\",\n        \"MVERIFY\",\n        \"MVHHCODES\",\n        \"MVINDEXSPLIT\",\n        \"MVLOCATIONS\",\n        \"MVTICKS\",\n        \"MVTICKSPLIT\",\n        \"MVVALUES\",\n        \"NAME\",\n        \"NBOUNDS\",\n        \"NDEBUGON\",\n        \"NEGATEEXACT\",\n        \"NEWENCODER\",\n        \"NEWGTS\",\n        \"NEXTAFTER\",\n        \"NEXTDOWN\",\n        \"NEXTUP\",\n        \"NOLOG\",\n        \"NONEMPTY\",\n        \"NONNULL\",\n        \"NOOP\",\n        \"NORMALIZE\",\n        \"NOT\",\n        \"NOTAFTER\",\n        \"NOTBEFORE\",\n        \"NOTIMINGS\",\n        \"NOW\",\n        \"NPDF\",\n        \"NPEEK\",\n        \"NSUMSUMSQ\",\n        \"ONLYBUCKETS\",\n        \"OPB64->\",\n        \"OPB64TOHEX\",\n        \"OPS\",\n        \"OPTDTW\",\n        \"OPTIMIZE\",\n        \"OR\",\n        \"PACK\",\n        \"PAPPLY\",\n        \"PARSE\",\n        \"PARSESELECTOR\",\n        \"PARSEVALUE\",\n        \"PARTITION\",\n        \"PATTERNDETECTION\",\n        \"PATTERNS\",\n        \"PEEK\",\n        \"PEEKN\",\n        \"PERMUTE\",\n        \"PFILTER\",\n        \"PGPDECRYPT\",\n        \"PGPENCRYPT\",\n        \"PGPINFO\",\n        \"PGPPRIVATE\",\n        \"PGPPUBLIC\",\n        \"PGPRING\",\n        \"PGPSIGN\",\n        \"PGPVERIFY\",\n        \"PGraphics\",\n        \"PI\",\n        \"PICK\",\n        \"PICKLE->\",\n        \"PIGSCHEMA\",\n        \"PIVOT\",\n        \"PIVOTSTRICT\",\n        \"POLYFIT\",\n        \"POLYFUNC\",\n        \"POPR\",\n        \"PREDUCE\",\n        \"PRNG\",\n        \"PROB\",\n        \"PROBABILITY\",\n        \"PSTACK\",\n        \"PUSHR\",\n        \"PUT\",\n        \"Palpha\",\n        \"Parc\",\n        \"Pbackground\",\n        \"PbeginContour\",\n        \"PbeginShape\",\n        \"Pbezier\",\n        \"PbezierDetail\",\n        \"PbezierPoint\",\n        \"PbezierTangent\",\n        \"PbezierVertex\",\n        \"Pblend\",\n        \"PblendMode\",\n        \"Pblue\",\n        \"Pbox\",\n        \"Pbrightness\",\n        \"Pclear\",\n        \"Pclip\",\n        \"Pcolor\",\n        \"PcolorMode\",\n        \"Pconstrain\",\n        \"Pcopy\",\n        \"PcreateFont\",\n        \"Pcurve\",\n        \"PcurveDetail\",\n        \"PcurvePoint\",\n        \"PcurveTangent\",\n        \"PcurveTightness\",\n        \"PcurveVertex\",\n        \"Pdecode\",\n        \"Pdist\",\n        \"Pellipse\",\n        \"PellipseMode\",\n        \"Pencode\",\n        \"PendContour\",\n        \"PendShape\",\n        \"Pfill\",\n        \"Pfilter\",\n        \"Pget\",\n        \"Pgreen\",\n        \"Phue\",\n        \"Pimage\",\n        \"PimageMode\",\n        \"Plerp\",\n        \"PlerpColor\",\n        \"Pline\",\n        \"PloadShape\",\n        \"Pmag\",\n        \"Pmap\",\n        \"Pmask\",\n        \"PnoClip\",\n        \"PnoFill\",\n        \"PnoStroke\",\n        \"PnoTint\",\n        \"Pnorm\",\n        \"Ppixels\",\n        \"Ppoint\",\n        \"PpopMatrix\",\n        \"PpopStyle\",\n        \"PpushMatrix\",\n        \"PpushStyle\",\n        \"Pquad\",\n        \"PquadraticVertex\",\n        \"Prect\",\n        \"PrectMode\",\n        \"Pred\",\n        \"PresetMatrix\",\n        \"Presize\",\n        \"Protate\",\n        \"Psaturation\",\n        \"Pscale\",\n        \"Pset\",\n        \"Pshape\",\n        \"PshapeMode\",\n        \"PshearX\",\n        \"PshearY\",\n        \"Psize\",\n        \"Psphere\",\n        \"PsphereDetail\",\n        \"Pstroke\",\n        \"PstrokeCap\",\n        \"PstrokeJoin\",\n        \"PstrokeWeight\",\n        \"Ptext\",\n        \"PtextAlign\",\n        \"PtextAscent\",\n        \"PtextDescent\",\n        \"PtextFont\",\n        \"PtextLeading\",\n        \"PtextMode\",\n        \"PtextSize\",\n        \"PtextWidth\",\n        \"Ptint\",\n        \"PtoImage\",\n        \"Ptranslate\",\n        \"Ptriangle\",\n        \"PupdatePixels\",\n        \"Pvertex\",\n        \"Q->\",\n        \"QCONJUGATE\",\n        \"QDIVIDE\",\n        \"QMULTIPLY\",\n        \"QROTATE\",\n        \"QROTATION\",\n        \"QUANTIZE\",\n        \"RAND\",\n        \"RANDOM\",\n        \"RANDPDF\",\n        \"RANGE\",\n        \"RANGECOMPACT\",\n        \"RAWDTW\",\n        \"REDEFS\",\n        \"REDUCE\",\n        \"RELABEL\",\n        \"REMOVE\",\n        \"REMOVETICK\",\n        \"RENAME\",\n        \"REOPTALT\",\n        \"REPLACE\",\n        \"REPLACEALL\",\n        \"REPORT\",\n        \"RESET\",\n        \"RESETS\",\n        \"RESHAPE\",\n        \"RESTORE\",\n        \"REV\",\n        \"REVBITS\",\n        \"REVERSE\",\n        \"REXEC\",\n        \"REXECZ\",\n        \"RINT\",\n        \"RIPEMD128\",\n        \"RIPEMD160\",\n        \"RIPEMD256\",\n        \"RIPEMD320\",\n        \"RLOWESS\",\n        \"RLP->\",\n        \"ROLL\",\n        \"ROLLD\",\n        \"ROT\",\n        \"ROTATIONQ\",\n        \"ROUND\",\n        \"RSADECRYPT\",\n        \"RSAENCRYPT\",\n        \"RSAGEN\",\n        \"RSAPRIVATE\",\n        \"RSAPUBLIC\",\n        \"RSASIGN\",\n        \"RSAVERIFY\",\n        \"RSORT\",\n        \"RTFM\",\n        \"RUN\",\n        \"RUNNERAT\",\n        \"RUNNERIN\",\n        \"RUNNERNONCE\",\n        \"RUNR\",\n        \"RVALUESORT\",\n        \"SAVE\",\n        \"SCALB\",\n        \"SECTION\",\n        \"SECURE\",\n        \"SECUREKEY\",\n        \"SENSISION.DUMP\",\n        \"SENSISION.DUMPEVENTS\",\n        \"SENSISION.EVENT\",\n        \"SENSISION.GET\",\n        \"SENSISION.SET\",\n        \"SENSISION.UPDATE\",\n        \"SET\",\n        \"SET->\",\n        \"SETATTRIBUTES\",\n        \"SETMACROCONFIG\",\n        \"SETVALUE\",\n        \"SHA1\",\n        \"SHA1HMAC\",\n        \"SHA224\",\n        \"SHA256\",\n        \"SHA256HMAC\",\n        \"SHA3.224\",\n        \"SHA3.256\",\n        \"SHA3.384\",\n        \"SHA3.512\",\n        \"SHA384\",\n        \"SHA512\",\n        \"SHAPE\",\n        \"SHMDEFINED\",\n        \"SHMLOAD\",\n        \"SHMSTORE\",\n        \"SHOW\",\n        \"SHRINK\",\n        \"SHUFFLE\",\n        \"SIGNUM\",\n        \"SIN\",\n        \"SINGLEEXPONENTIALSMOOTHING\",\n        \"SINH\",\n        \"SIZE\",\n        \"SKEWNESS\",\n        \"SMARTPARSE\",\n        \"SNAPSHOT\",\n        \"SNAPSHOTALL\",\n        \"SNAPSHOTALLTOMARK\",\n        \"SNAPSHOTCOPY\",\n        \"SNAPSHOTCOPYALL\",\n        \"SNAPSHOTCOPYALLTOMARK\",\n        \"SNAPSHOTCOPYN\",\n        \"SNAPSHOTCOPYTOMARK\",\n        \"SNAPSHOTN\",\n        \"SNAPSHOTREADABLE\",\n        \"SNAPSHOTTOMARK\",\n        \"SORT\",\n        \"SORTBY\",\n        \"SORTWITH\",\n        \"SPLIT\",\n        \"SQRT\",\n        \"SRAND\",\n        \"SRANDPDF\",\n        \"SSSS->\",\n        \"SSTFIND\",\n        \"SSTINFO\",\n        \"SSTPURGE\",\n        \"SSTREPORT\",\n        \"SSTTIMESTAMP\",\n        \"STACKATTRIBUTE\",\n        \"STACKPSSECRET\",\n        \"STACKTOLIST\",\n        \"STANDARDIZE\",\n        \"STDERR\",\n        \"STDIN\",\n        \"STDOUT\",\n        \"STL\",\n        \"STLESDTEST\",\n        \"STOP\",\n        \"STORE\",\n        \"STRICTPARTITION\",\n        \"STRINGFORMAT\",\n        \"STU\",\n        \"SUBLIST\",\n        \"SUBMAP\",\n        \"SUBSTRING\",\n        \"SUBTRACTEXACT\",\n        \"SWAP\",\n        \"SYMBOLS\",\n        \"SYNC\",\n        \"T\",\n        \"TAN\",\n        \"TANH\",\n        \"TDESCRIBE\",\n        \"TEMPLATE\",\n        \"THRESHOLDTEST\",\n        \"TICKINDEX\",\n        \"TICKLIST\",\n        \"TICKS\",\n        \"TIGER\",\n        \"TIMEBOX\",\n        \"TIMECLIP\",\n        \"TIMED\",\n        \"TIMEMODULO\",\n        \"TIMEOFF\",\n        \"TIMEON\",\n        \"TIMESCALE\",\n        \"TIMESHIFT\",\n        \"TIMESPLIT\",\n        \"TIMINGS\",\n        \"TLTTB\",\n        \"TOBIN\",\n        \"TOBITS\",\n        \"TOBOOLEAN\",\n        \"TODEGREES\",\n        \"TODOUBLE\",\n        \"TOHEX\",\n        \"TOINTEXACT\",\n        \"TOKENDUMP\",\n        \"TOKENGEN\",\n        \"TOKENINFO\",\n        \"TOKENSECRET\",\n        \"TOLONG\",\n        \"TOLOWER\",\n        \"TORADIANS\",\n        \"TOSELECTOR\",\n        \"TOSTRING\",\n        \"TOTIMESTAMP\",\n        \"TOUPPER\",\n        \"TR\",\n        \"TRANSPOSE\",\n        \"TRIM\",\n        \"TSELEMENTS\",\n        \"TSELEMENTS->\",\n        \"TYPEOF\",\n        \"ULP\",\n        \"UNBUCKETIZE\",\n        \"UNBUCKETIZE.CALENDAR\",\n        \"UNGZIP\",\n        \"UNION\",\n        \"UNIQUE\",\n        \"UNLIST\",\n        \"UNMAP\",\n        \"UNPACK\",\n        \"UNSECURE\",\n        \"UNSET\",\n        \"UNWRAP\",\n        \"UNWRAPEMPTY\",\n        \"UNWRAPENCODER\",\n        \"UNWRAPSIZE\",\n        \"UPDATE\",\n        \"UPDATEOFF\",\n        \"UPDATEON\",\n        \"URLDECODE\",\n        \"URLENCODE\",\n        \"URLFETCH\",\n        \"UUID\",\n        \"V->\",\n        \"VALUEDEDUP\",\n        \"VALUEHISTOGRAM\",\n        \"VALUELIST\",\n        \"VALUES\",\n        \"VALUESORT\",\n        \"VALUESPLIT\",\n        \"VARINT->\",\n        \"VARS\",\n        \"VEC->\",\n        \"WEBCALL\",\n        \"WF.ADDREPO\",\n        \"WF.GETREPOS\",\n        \"WF.SETREPOS\",\n        \"WFOFF\",\n        \"WFON\",\n        \"WHIRLPOOL\",\n        \"WRAP\",\n        \"WRAPFAST\",\n        \"WRAPMV\",\n        \"WRAPMV!\",\n        \"WRAPOPT\",\n        \"WRAPRAW\",\n        \"WRAPRAWOPT\",\n        \"WSINFO\",\n        \"WSKILL\",\n        \"WSKILLSESSION\",\n        \"WSNAME\",\n        \"WSPS\",\n        \"WSSESSION\",\n        \"WSSTACK\",\n        \"WSSTOP\",\n        \"WSSTOPSESSION\",\n        \"Z->\",\n        \"ZDISCORDS\",\n        \"ZDTW\",\n        \"ZIP\",\n        \"ZPATTERNDETECTION\",\n        \"ZPATTERNS\",\n        \"ZSCORE\",\n        \"ZSCORETEST\",\n        \"[\",\n        \"[[\",\n        \"[[]]\",\n        \"[]\",\n        \"]\",\n        \"]]\",\n        \"^\",\n        \"babbage\",\n        \"bucketizer.and\",\n        \"bucketizer.or\",\n        \"buterin\",\n        \"d\",\n        \"e\",\n        \"eth\",\n        \"ether\",\n        \"filler.interpolate\",\n        \"filler.next\",\n        \"filler.previous\",\n        \"filler.trend\",\n        \"filter.latencies\",\n        \"finney\",\n        \"gwei\",\n        \"h\",\n        \"kwei\",\n        \"lovelace\",\n        \"m\",\n        \"mapper.and\",\n        \"mapper.finite\",\n        \"mapper.geo.approximate\",\n        \"mapper.geo.clear\",\n        \"mapper.geo.fence\",\n        \"mapper.geo.outside\",\n        \"mapper.geo.within\",\n        \"mapper.hdist\",\n        \"mapper.median\",\n        \"mapper.median.forbid-nulls\",\n        \"mapper.mod\",\n        \"mapper.npdf\",\n        \"mapper.or\",\n        \"mapper.percentile\",\n        \"mapper.percentile.forbid-nulls\",\n        \"mapper.truecourse\",\n        \"max.tick.sliding.window\",\n        \"max.time.sliding.window\",\n        \"ms\",\n        \"mwei\",\n        \"ns\",\n        \"op.add\",\n        \"op.add.ignore-nulls\",\n        \"op.and\",\n        \"op.and.ignore-nulls\",\n        \"op.div\",\n        \"op.eq\",\n        \"op.ge\",\n        \"op.gt\",\n        \"op.le\",\n        \"op.lt\",\n        \"op.mask\",\n        \"op.mul\",\n        \"op.mul.ignore-nulls\",\n        \"op.ne\",\n        \"op.negmask\",\n        \"op.or\",\n        \"op.or.ignore-nulls\",\n        \"op.sub\",\n        \"pi\",\n        \"ps\",\n        \"pwei\",\n        \"reducer.and\",\n        \"reducer.and.exclude-nulls\",\n        \"s\",\n        \"shannon\",\n        \"szabo\",\n        \"twei\",\n        \"us\",\n        \"w\",\n        \"wei\",\n        \"{\",\n        \"{}\",\n        \"|\",\n        \"||\",\n        \"}\",\n        \"~\",\n        \"~=\"\n    ],\n    \"constants\": [\n        \"E\",\n        \"F\",\n        \"MAXLONG\",\n        \"MINLONG\",\n        \"NULL\",\n        \"NaN\",\n        \"PI\",\n        \"T\",\n        \"e\",\n        \"pi\"\n    ],\n    \"functions\": [\n        \"BUCKETIZE\",\n        \"BUCKETIZE.CALENDAR\",\n        \"FILTER\",\n        \"MACROBUCKETIZER\",\n        \"MACROFILTER\",\n        \"MACROMAPPER\",\n        \"MACROREDUCER\",\n        \"MAP\",\n        \"METAMATCH\",\n        \"PFILTER\",\n        \"PREDUCE\",\n        \"REDUCE\",\n        \"STRICTMAPPER\",\n        \"STRICTREDUCER\",\n        \"UNBUCKETIZE.CALENDAR\",\n        \"bucketizer.and\",\n        \"bucketizer.count\",\n        \"bucketizer.count.exclude-nulls\",\n        \"bucketizer.count.include-nulls\",\n        \"bucketizer.count.nonnull\",\n        \"bucketizer.first\",\n        \"bucketizer.join\",\n        \"bucketizer.join.forbid-nulls\",\n        \"bucketizer.last\",\n        \"bucketizer.mad\",\n        \"bucketizer.max\",\n        \"bucketizer.max.forbid-nulls\",\n        \"bucketizer.mean\",\n        \"bucketizer.mean.circular\",\n        \"bucketizer.mean.circular.exclude-nulls\",\n        \"bucketizer.mean.exclude-nulls\",\n        \"bucketizer.median\",\n        \"bucketizer.median.forbid-nulls\",\n        \"bucketizer.min\",\n        \"bucketizer.min.forbid-nulls\",\n        \"bucketizer.or\",\n        \"bucketizer.percentile\",\n        \"bucketizer.percentile.forbid-nulls\",\n        \"bucketizer.rms\",\n        \"bucketizer.sd\",\n        \"bucketizer.sd.forbid-nulls\",\n        \"bucketizer.sd.welford\",\n        \"bucketizer.sum\",\n        \"bucketizer.sum.forbid-nulls\",\n        \"bucketizer.var\",\n        \"bucketizer.var.welford\",\n        \"filter.all.eq\",\n        \"filter.all.ge\",\n        \"filter.all.gt\",\n        \"filter.all.le\",\n        \"filter.all.lt\",\n        \"filter.all.ne\",\n        \"filter.any.eq\",\n        \"filter.any.ge\",\n        \"filter.any.gt\",\n        \"filter.any.le\",\n        \"filter.any.lt\",\n        \"filter.any.ne\",\n        \"filter.byattr\",\n        \"filter.byclass\",\n        \"filter.bylabels\",\n        \"filter.bylabelsattr\",\n        \"filter.bymetadata\",\n        \"filter.byselector\",\n        \"filter.bysize\",\n        \"filter.last.eq\",\n        \"filter.last.ge\",\n        \"filter.last.gt\",\n        \"filter.last.le\",\n        \"filter.last.lt\",\n        \"filter.last.ne\",\n        \"filter.latencies\",\n        \"mapper.abs\",\n        \"mapper.add\",\n        \"mapper.and\",\n        \"mapper.ceil\",\n        \"mapper.count\",\n        \"mapper.count.exclude-nulls\",\n        \"mapper.count.include-nulls\",\n        \"mapper.count.nonnull\",\n        \"mapper.day\",\n        \"mapper.delta\",\n        \"mapper.dotproduct\",\n        \"mapper.dotproduct.positive\",\n        \"mapper.dotproduct.sigmoid\",\n        \"mapper.dotproduct.tanh\",\n        \"mapper.eq\",\n        \"mapper.eq.elev\",\n        \"mapper.eq.hhcode\",\n        \"mapper.eq.lat\",\n        \"mapper.eq.lon\",\n        \"mapper.eq.tick\",\n        \"mapper.exp\",\n        \"mapper.finite\",\n        \"mapper.first\",\n        \"mapper.floor\",\n        \"mapper.ge\",\n        \"mapper.ge.elev\",\n        \"mapper.ge.hhcode\",\n        \"mapper.ge.lat\",\n        \"mapper.ge.lon\",\n        \"mapper.ge.tick\",\n        \"mapper.geo.approximate\",\n        \"mapper.geo.clear\",\n        \"mapper.geo.fence\",\n        \"mapper.geo.outside\",\n        \"mapper.geo.within\",\n        \"mapper.gt\",\n        \"mapper.gt.elev\",\n        \"mapper.gt.hhcode\",\n        \"mapper.gt.lat\",\n        \"mapper.gt.lon\",\n        \"mapper.gt.tick\",\n        \"mapper.hdist\",\n        \"mapper.highest\",\n        \"mapper.hour\",\n        \"mapper.hspeed\",\n        \"mapper.join\",\n        \"mapper.join.forbid-nulls\",\n        \"mapper.kernel.cosine\",\n        \"mapper.kernel.epanechnikov\",\n        \"mapper.kernel.gaussian\",\n        \"mapper.kernel.logistic\",\n        \"mapper.kernel.quartic\",\n        \"mapper.kernel.silverman\",\n        \"mapper.kernel.triangular\",\n        \"mapper.kernel.tricube\",\n        \"mapper.kernel.triweight\",\n        \"mapper.kernel.uniform\",\n        \"mapper.last\",\n        \"mapper.le\",\n        \"mapper.le.elev\",\n        \"mapper.le.hhcode\",\n        \"mapper.le.lat\",\n        \"mapper.le.lon\",\n        \"mapper.le.tick\",\n        \"mapper.log\",\n        \"mapper.lowest\",\n        \"mapper.lt\",\n        \"mapper.lt.elev\",\n        \"mapper.lt.hhcode\",\n        \"mapper.lt.lat\",\n        \"mapper.lt.lon\",\n        \"mapper.lt.tick\",\n        \"mapper.mad\",\n        \"mapper.max\",\n        \"mapper.max.forbid-nulls\",\n        \"mapper.max.x\",\n        \"mapper.mean\",\n        \"mapper.mean.circular\",\n        \"mapper.mean.circular.exclude-nulls\",\n        \"mapper.mean.exclude-nulls\",\n        \"mapper.median\",\n        \"mapper.median.forbid-nulls\",\n        \"mapper.min\",\n        \"mapper.min.forbid-nulls\",\n        \"mapper.min.x\",\n        \"mapper.minute\",\n        \"mapper.mod\",\n        \"mapper.month\",\n        \"mapper.mul\",\n        \"mapper.ne\",\n        \"mapper.ne.elev\",\n        \"mapper.ne.hhcode\",\n        \"mapper.ne.lat\",\n        \"mapper.ne.lon\",\n        \"mapper.ne.tick\",\n        \"mapper.npdf\",\n        \"mapper.or\",\n        \"mapper.parsedouble\",\n        \"mapper.percentile\",\n        \"mapper.percentile.forbid-nulls\",\n        \"mapper.pow\",\n        \"mapper.product\",\n        \"mapper.rate\",\n        \"mapper.replace\",\n        \"mapper.rms\",\n        \"mapper.round\",\n        \"mapper.sd\",\n        \"mapper.sd.forbid-nulls\",\n        \"mapper.sd.welford\",\n        \"mapper.second\",\n        \"mapper.sigmoid\",\n        \"mapper.sqrt\",\n        \"mapper.sum\",\n        \"mapper.sum.forbid-nulls\",\n        \"mapper.tanh\",\n        \"mapper.tick\",\n        \"mapper.toboolean\",\n        \"mapper.todouble\",\n        \"mapper.tolong\",\n        \"mapper.tostring\",\n        \"mapper.truecourse\",\n        \"mapper.var\",\n        \"mapper.var.forbid-nulls\",\n        \"mapper.var.welford\",\n        \"mapper.vdist\",\n        \"mapper.vspeed\",\n        \"mapper.weekday\",\n        \"mapper.year\",\n        \"max.tick.sliding.window\",\n        \"max.time.sliding.window\",\n        \"reducer.and\",\n        \"reducer.and.exclude-nulls\",\n        \"reducer.argmax\",\n        \"reducer.argmin\",\n        \"reducer.count\",\n        \"reducer.count.exclude-nulls\",\n        \"reducer.count.include-nulls\",\n        \"reducer.count.nonnull\",\n        \"reducer.join\",\n        \"reducer.join.forbid-nulls\",\n        \"reducer.join.nonnull\",\n        \"reducer.join.urlencoded\",\n        \"reducer.mad\",\n        \"reducer.max\",\n        \"reducer.max.forbid-nulls\",\n        \"reducer.max.nonnull\",\n        \"reducer.mean\",\n        \"reducer.mean.circular\",\n        \"reducer.mean.circular.exclude-nulls\",\n        \"reducer.mean.exclude-nulls\",\n        \"reducer.median\",\n        \"reducer.median.forbid-nulls\",\n        \"reducer.min\",\n        \"reducer.min.forbid-nulls\",\n        \"reducer.min.nonnull\",\n        \"reducer.or\",\n        \"reducer.or.exclude-nulls\",\n        \"reducer.percentile\",\n        \"reducer.percentile.forbid-nulls\",\n        \"reducer.product\",\n        \"reducer.rms\",\n        \"reducer.rms.exclude-nulls\",\n        \"reducer.sd\",\n        \"reducer.sd.forbid-nulls\",\n        \"reducer.sd.welford\",\n        \"reducer.sd.welford.forbid-nulls\",\n        \"reducer.shannonentropy.0\",\n        \"reducer.shannonentropy.1\",\n        \"reducer.sum\",\n        \"reducer.sum.forbid-nulls\",\n        \"reducer.sum.nonnull\",\n        \"reducer.var\",\n        \"reducer.var.forbid-nulls\",\n        \"reducer.var.welford\",\n        \"reducer.var.welford.forbid-nulls\"\n    ],\n    \"control\": [\n        \"BREAK\",\n        \"CHECKMACRO\",\n        \"CONTINUE\",\n        \"CUDF\",\n        \"DEFINED\",\n        \"DEFINEDMACRO\",\n        \"EVAL\",\n        \"FAIL\",\n        \"FOR\",\n        \"FOREACH\",\n        \"FORSTEP\",\n        \"IFT\",\n        \"IFTE\",\n        \"MSGFAIL\",\n        \"NRETURN\",\n        \"RETHROW\",\n        \"RETURN\",\n        \"SWITCH\",\n        \"TRY\",\n        \"UDF\",\n        \"UNTIL\",\n        \"WHILE\"\n    ],\n    \"operators\": [\n        \"!\",\n        \"!=\",\n        \"%\",\n        \"&\",\n        \"&&\",\n        \"*\",\n        \"**\",\n        \"+\",\n        \"+!\",\n        \"-\",\n        \"/\",\n        \"<\",\n        \"<<\",\n        \"<=\",\n        \"==\",\n        \">\",\n        \">=\",\n        \">>\",\n        \">>>\",\n        \"AND\",\n        \"NOT\",\n        \"OR\",\n        \"^\",\n        \"|\",\n        \"||\",\n        \"~\",\n        \"~=\"\n    ],\n    \"escapes\": \"\\\\\\\\(?:[abfnrtv\\\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\n    \"tokenizer\": {\n        \"root\": [\n            [\n                \"\\\\@[A-Za-z0-9._\\\\/]+\",\n                \"variable\"\n            ],\n            [\n                \"\\\\$[A-Za-z0-9._\\\\/]+\",\n                \"variable\"\n            ],\n            [\n                \"true|false\",\n                \"number\"\n            ],\n            [\n                \"[A-Za-z_][.\\\\w$]*\",\n                {\n                    \"cases\": {\n                        \"@constants\": \"regexp\",\n                        \"@keywords\": \"keyword\",\n                        \"@functions\": \"type\",\n                        \"@control\": \"metatag\",\n                        \"@default\": \"identifier\"\n                    }\n                }\n            ],\n            [\n                \"[{}()[\\\\]]\",\n                \"@brackets\"\n            ],\n            [\n                \"\\\\d*\\\\.\\\\d+([eE][-+]?\\\\d+)?[fFdD]?\",\n                \"number.float\"\n            ],\n            [\n                \"0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?\",\n                \"number.hex\"\n            ],\n            [\n                \"0[0-7_]*[0-7][Ll]?\",\n                \"number.octal\"\n            ],\n            [\n                \"0[bB][0-1_]*[0-1][Ll]?\",\n                \"number.binary\"\n            ],\n            [\n                \"\\\\d+[lL]?\",\n                \"number\"\n            ],\n            {\n                \"include\": \"@whitespace\"\n            },\n            [\n                \"\\\"([^\\\"\\\\\\\\]|\\\\\\\\.)*$\",\n                \"string.invalid\"\n            ],\n            [\n                \"\\\"\",\n                \"string\",\n                \"@string\"\n            ],\n            [\n                \"'([^'\\\\\\\\]|\\\\\\\\.)*$\",\n                \"string.invalid\"\n            ],\n            [\n                \"'\",\n                \"string\",\n                \"@string2\"\n            ],\n            [\n                \"<'\",\n                \"string\",\n                \"@string3\"\n            ]\n        ],\n        \"whitespace\": [\n            [\n                \"[ \\\\t\\\\r\\\\n]+\",\n                \"white\"\n            ],\n            [\n                \"\\\\/\\\\*\",\n                \"comment\",\n                \"@comment\"\n            ],\n            [\n                \"\\\\/\\\\/.*$\",\n                \"comment\"\n            ]\n        ],\n        \"comment\": [\n            [\n                \"[^\\\\/*]+\",\n                \"comment\"\n            ],\n            [\n                \"\\\\/\\\\*\",\n                \"comment.invalid\"\n            ],\n            [\n                \"\\\\*/\",\n                \"comment\",\n                \"@pop\"\n            ],\n            [\n                \"[\\\\/*]\",\n                \"comment\"\n            ]\n        ],\n        \"string\": [\n            [\n                \"[^\\\\\\\"]+\",\n                \"string\"\n            ],\n            [\n                \"@escapes\",\n                \"string.escape\"\n            ],\n            [\n                \"\\\\.\",\n                \"string.escape.invalid\"\n            ],\n            [\n                \"\\\"\",\n                \"string\",\n                \"@pop\"\n            ]\n        ],\n        \"string2\": [\n            [\n                \"[^\\\\']+\",\n                \"string\"\n            ],\n            [\n                \"@escapes\",\n                \"string.escape\"\n            ],\n            [\n                \"\\\\.\",\n                \"string.escape.invalid\"\n            ],\n            [\n                \"'\",\n                \"string\",\n                \"@pop\"\n            ]\n        ],\n        \"string3\": [\n            [\n                \"[^\\\\(<')]+\",\n                \"string\"\n            ],\n            [\n                \"'>\",\n                \"string\",\n                \"@pop\"\n            ]\n        ]\n    }\n};\n      }","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {WSCompletionItemProvider} from './WSCompletionItemProvider';\nimport {languages} from 'monaco-editor';\nimport {Monarch} from '../../../model/monarch';\nimport {WSLanguageConfiguration} from './WSLanguageConfiguration';\nimport {WSHoverProvider} from './WSHoverProvider';\nimport {FLoWSCompletionItemProvider} from './FLoWSCompletionItemProvider';\nimport {FLoWSHoverProvider} from './FLoWSHoverProvider';\nimport {FLoWSLanguageConfiguration} from './FLoWSLanguageConfiguration';\nimport {EditorUtils} from './editorUtils';\nimport registerCompletionItemProvider = languages.registerCompletionItemProvider;\nimport setMonarchTokensProvider = languages.setMonarchTokensProvider;\nimport getLanguages = languages.getLanguages;\nimport register = languages.register;\nimport setLanguageConfiguration = languages.setLanguageConfiguration;\nimport registerHoverProvider = languages.registerHoverProvider;\nimport {MonarchFlows} from '../../../model/monarchFlows';\nimport {Config} from '../../../model/config';\n\nexport class ProviderRegistrar {\n\n  static register(config: Config) {\n    // WarpScript\n    if (!getLanguages().find(l => l.id === EditorUtils.WARPSCRIPT_LANGUAGE)) {\n      register({id: EditorUtils.WARPSCRIPT_LANGUAGE});\n      setLanguageConfiguration(EditorUtils.WARPSCRIPT_LANGUAGE, new WSLanguageConfiguration().getConfiguration());\n      setMonarchTokensProvider(EditorUtils.WARPSCRIPT_LANGUAGE, Monarch.rules);\n      registerCompletionItemProvider(EditorUtils.WARPSCRIPT_LANGUAGE, new WSCompletionItemProvider(config));\n      registerHoverProvider(EditorUtils.WARPSCRIPT_LANGUAGE, new WSHoverProvider());\n    }\n    // Flows\n    if (!getLanguages().find(l => l.id === EditorUtils.FLOWS_LANGUAGE)) {\n      register({id: EditorUtils.FLOWS_LANGUAGE});\n      setLanguageConfiguration(EditorUtils.FLOWS_LANGUAGE, new FLoWSLanguageConfiguration().getConfiguration());\n      setMonarchTokensProvider(EditorUtils.FLOWS_LANGUAGE, MonarchFlows.rules);\n      registerCompletionItemProvider(EditorUtils.FLOWS_LANGUAGE, new FLoWSCompletionItemProvider(config));\n      registerHoverProvider(EditorUtils.FLOWS_LANGUAGE, new FLoWSHoverProvider());\n    }\n  }\n}\n","/*\n *  Copyright 2020-2022 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {v4} from 'uuid';\n\nexport type CommonFields = {\n  id?: string;\n  targetId?: string;\n  createdBy?: string;\n  createdAt?: Date | string;\n  // script on here maybe?\n};\n\nexport type ReviewCommentEvent =\n  | ({\n  type: 'create';\n  lineNumber: number;\n  text: string;\n  selection?: CodeSelection;\n} & CommonFields)\n  | ({ type: 'edit'; text: string } & CommonFields)\n  | ({ type: 'delete' } & CommonFields);\n\nexport interface CommentState {\n  comments: Record<string, ReviewCommentState>;\n  deletedCommentIds?: Set<string>;\n  dirtyCommentIds?: Set<string>;\n}\n\nexport function commentReducer(event: ReviewCommentEvent, state: CommentState) {\n  const dirtyLineNumbers = new Set<number>();\n  const deletedCommentIds = new Set<string>();\n  const dirtyCommentIds = new Set<string>();\n  let comments = {...state.comments};\n\n  switch (event.type) {\n    case 'edit':\n      const parent = comments[event.targetId];\n      if (!parent) {\n        break;\n      }\n\n      const edit: ReviewCommentState = {\n        comment: {\n          ...parent.comment,\n          author: event.createdBy,\n          dt: event.createdAt,\n          text: event.text,\n        },\n        history: parent.history.concat(parent.comment),\n      };\n\n      dirtyLineNumbers.add(edit.comment.lineNumber);\n      console.debug('edit', event);\n\n      comments[event.targetId] = edit;\n      break;\n\n    case 'delete':\n      const selected = comments[event.targetId];\n      if (!selected) {\n        break;\n      }\n\n      delete comments[event.targetId];\n\n      deletedCommentIds.add(selected.comment.id);\n      dirtyLineNumbers.add(selected.comment.lineNumber);\n      console.debug('delete', event);\n      break;\n\n    case 'create':\n      if (!comments[event.id]) {\n        comments[event.id] = new ReviewCommentState({\n          author: event.createdBy,\n          dt: event.createdAt,\n          id: event.id,\n          lineNumber: event.lineNumber,\n          selection: event.selection,\n          text: event.text,\n          parentId: event.targetId,\n          status: ReviewCommentStatus.active,\n        });\n        console.debug('insert', event);\n        dirtyLineNumbers.add(event.lineNumber);\n      }\n      break;\n  }\n\n  if (dirtyLineNumbers.size) {\n    for (const cs of Object.values(state.comments)) {\n      if (dirtyLineNumbers.has(cs.comment.lineNumber)) {\n        dirtyCommentIds.add(cs.comment.id);\n      }\n    }\n  }\n\n  return {comments, dirtyCommentIds, deletedCommentIds};\n}\n\nexport class ReviewCommentState {\n  comment: ReviewComment;\n  history: ReviewComment[];\n\n  constructor(comment: ReviewComment) {\n    this.comment = comment;\n    this.history = [comment];\n  }\n}\n\nexport enum ReviewCommentRenderState {\n  dirty = 1,\n  hidden = 2,\n  normal = 3,\n}\n\nexport interface CodeSelection {\n  startColumn: number;\n  endColumn: number;\n  startLineNumber: number;\n  endLineNumber: number;\n}\n\nexport interface ReviewComment {\n  id: string;\n  parentId?: string;\n  author: string;\n  dt: Date | string;\n  lineNumber: number;\n  text: string;\n  selection: CodeSelection;\n  status: ReviewCommentStatus;\n}\n\nexport enum ReviewCommentStatus {\n  active = 1,\n  deleted = 2,\n  edit = 3,\n}\n\nexport function reduceComments(\n  actions: ReviewCommentEvent[],\n  state: CommentState = null\n) {\n  state = state || {comments: {}};\n\n  for (const a of actions) {\n    if (!a.id) {\n      a.id = v4();\n    }\n    state = commentReducer(a, state);\n  }\n\n  return state;\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\nimport * as monacoEditor from 'monaco-editor';\nimport {\n  CodeSelection,\n  commentReducer,\n  CommentState as ReviewCommentStore,\n  reduceComments,\n  ReviewComment,\n  ReviewCommentEvent,\n  ReviewCommentRenderState,\n  ReviewCommentState,\n  ReviewCommentStatus,\n} from './events-comments-reducers';\nimport * as uuid from 'uuid';\n\nexport {ReviewCommentStore, ReviewCommentEvent, reduceComments};\n\ninterface MonacoWindow {\n  monaco: any;\n}\n\nconst monacoWindow = (window as any) as MonacoWindow;\n\nenum NavigationDirection {\n  next = 1,\n  prev = 2,\n}\n\nexport enum EditorMode {\n  insertComment = 1,\n  editComment = 2,\n  toolbar = 3,\n}\n\nexport function createReviewManager(\n  editor: any,\n  currentUser: string,\n  actions?: ReviewCommentEvent[],\n  onChange?: OnActionsChanged,\n  config?: ReviewManagerConfig,\n  verbose?: boolean\n): ReviewManager {\n  //For Debug: (window as any).editor = editor;\n  const rm = new ReviewManager(editor, currentUser, onChange, config, verbose);\n  rm.load(actions || []);\n  return rm;\n}\n\ninterface ReviewCommentIterItem {\n  depth: number;\n  state: ReviewCommentState;\n}\n\ninterface OnActionsChanged {\n  (actions: ReviewCommentEvent[]): void;\n}\n\nexport interface ReviewManagerConfig {\n  commentIndent?: number;\n  commentIndentOffset?: number;\n  editButtonEnableRemove?: boolean;\n  editButtonOffset?: string;\n  formatDate?: { (dt: Date): string };\n  readOnly?: boolean;\n  reviewCommentIconActive?: string;\n  reviewCommentIconSelect?: string;\n  showInRuler?: boolean;\n  verticalOffset?: number;\n  cancelButton?: {\n    label: string,\n    class: string\n  };\n  addButton?: {\n    label: string,\n    class: string\n  };\n  replyButton?: {\n    label: string,\n    class: string\n  };\n  removeButton?: {\n    label: string,\n    class: string\n  };\n  editButton?: {\n    label: string,\n    class: string\n  };\n}\n\ninterface ReviewManagerConfigPrivate {\n  commentIndent: number;\n  commentIndentOffset: number;\n  editButtonEditText: string;\n  editButtonEnableEdit: boolean;\n  editButtonEnableRemove: boolean;\n  editButtonOffset: string;\n  formatDate?: { (dt: Date | string): string };\n  readOnly: boolean;\n  rulerMarkerColor: any;\n  rulerMarkerDarkColor: any;\n  showAddCommentGlyph: boolean;\n  showInRuler: boolean;\n  verticalOffset: number;\n  cancelButton?: {\n    label: string,\n    class: string\n  };\n  addButton?: {\n    label: string,\n    class: string\n  };\n  replyButton?: {\n    label: string,\n    class: string\n  };\n  removeButton?: {\n    label: string,\n    class: string\n  };\n  editButton?: {\n    label: string,\n    class: string\n  };\n}\n\nconst defaultReviewManagerConfig: ReviewManagerConfigPrivate = {\n  commentIndent: 20,\n  commentIndentOffset: 20,\n  editButtonEditText: 'Edit',\n  editButtonEnableEdit: true,\n  editButtonEnableRemove: true,\n  editButtonOffset: '-10px',\n  formatDate: null,\n  readOnly: false,\n  rulerMarkerColor: 'darkorange',\n  rulerMarkerDarkColor: 'darkorange',\n  showAddCommentGlyph: true,\n  showInRuler: true,\n  verticalOffset: 0,\n  cancelButton: {\n    label: 'Cancel',\n    class: ''\n  },\n  addButton: {\n    label: 'Add comment',\n    class: ''\n  },\n  replyButton: {\n    label: 'Reply',\n    class: ''\n  },\n  removeButton: {\n    label: 'Remove',\n    class: ''\n  },\n  editButton: {\n    label: 'Edit',\n    class: ''\n  }\n};\n\nconst CONTROL_ATTR_NAME = 'ReviewManagerControl';\nconst POSITION_BELOW = 2; //above=1, below=2, exact=0\nconst POSITION_EXACT = 0;\n\ninterface EditorElements {\n  cancel: HTMLButtonElement;\n  confirm: HTMLButtonElement;\n  root: HTMLSpanElement;\n  textarea: HTMLTextAreaElement;\n}\n\ninterface InlineToolbarElements {\n  add: HTMLSpanElement;\n  edit: HTMLSpanElement;\n  remove: HTMLSpanElement;\n  root: HTMLDivElement;\n}\n\ninterface RenderStoreItem {\n  viewZoneId: string;\n  renderStatus: ReviewCommentRenderState;\n}\n\nexport class ReviewManager {\n  currentUser: string;\n  editor: monacoEditor.editor.IStandaloneCodeEditor;\n  editorConfig: monacoEditor.editor.IEditorOptions;\n  events: ReviewCommentEvent[];\n  store: ReviewCommentStore;\n  activeComment?: ReviewComment;\n  widgetInlineToolbar: monacoEditor.editor.IContentWidget;\n  widgetInlineCommentEditor: monacoEditor.editor.IContentWidget;\n  onChange: OnActionsChanged;\n  editorMode: EditorMode;\n  config: ReviewManagerConfigPrivate;\n  currentLineDecorations: string[];\n  currentCommentDecorations: string[];\n  currentLineDecorationLineNumber?: number;\n\n  editorElements: EditorElements;\n  inlineToolbarElements: InlineToolbarElements;\n  verbose: boolean;\n  canAddCondition: monacoEditor.editor.IContextKey<boolean>;\n\n  renderStore: Record<string, RenderStoreItem>;\n\n  constructor(\n    editor: any,\n    currentUser: string,\n    onChange: OnActionsChanged,\n    config?: ReviewManagerConfig,\n    verbose?: boolean\n  ) {\n    this.currentUser = currentUser;\n    this.editor = editor;\n    this.activeComment = null; //TODO - consider moving onto the store\n    this.widgetInlineToolbar = null;\n    this.widgetInlineCommentEditor = null;\n    this.onChange = onChange;\n    this.editorMode = EditorMode.toolbar;\n    this.config = {...defaultReviewManagerConfig, ...(config || {})};\n    this.currentLineDecorations = [];\n    this.currentCommentDecorations = [];\n    this.currentLineDecorationLineNumber = null;\n    this.events = [];\n    this.store = {comments: {}}; //, viewZoneIdsToDelete: [] };\n    this.renderStore = {};\n\n    this.verbose = verbose;\n\n    this.editorConfig = this.editor.getRawOptions();\n    this.editor.onDidChangeConfiguration(\n      () => (this.editorConfig = this.editor.getRawOptions())\n    );\n    this.editor.onMouseDown(this.handleMouseDown.bind(this));\n    this.canAddCondition = this.editor.createContextKey(\n      'add-context-key',\n      !this.config.readOnly\n    );\n    this.inlineToolbarElements = this.createInlineToolbarWidget();\n    this.editorElements = this.createInlineEditorWidget();\n    this.addActions();\n\n    if (this.config.showAddCommentGlyph) {\n      this.editor.onMouseMove(this.handleMouseMove.bind(this));\n    }\n  }\n\n  setReadOnlyMode(value: boolean) {\n    this.config.readOnly = value;\n    this.canAddCondition.set(!value);\n    this.renderAddCommentLineDecoration(null);\n  }\n\n  load(events: ReviewCommentEvent[]): void {\n    const store = reduceComments(events);\n    this.loadFromStore(store, events);\n  }\n\n  loadFromStore(store: ReviewCommentStore, events: ReviewCommentEvent[]) {\n    this.editor.changeViewZones(\n      (changeAccessor: monacoEditor.editor.IViewZoneChangeAccessor) => {\n        // Remove all the existing comments\n        for (const viewState of Object.values(this.store.comments)) {\n          const x = this.getRenderState(viewState.comment.id);\n          if (x && x.viewZoneId !== null) {\n            changeAccessor.removeZone(x.viewZoneId);\n          }\n        }\n\n        this.events = events;\n        this.store = store;\n        this.store.deletedCommentIds = null;\n        this.store.dirtyCommentIds = null;\n        this.renderStore = {};\n\n        this.refreshComments();\n\n        this.verbose &&\n        console.debug(\n          'Events Loaded:',\n          events.length,\n          'Review Comments:',\n          Object.values(this.store.comments).length\n        );\n      }\n    );\n  }\n\n  getThemedColor(name: string): string {\n    // editor.background: e {rgba: e}\n    // editor.foreground: e {rgba: e}\n    // editor.inactiveSelectionBackground: e {rgba: e}\n    // editor.selectionHighlightBackground: e {rgba: e}\n    // editorIndentGuide.activeBackground: e {rgba: e}\n    // editorIndentGuide.background: e {rgba: e}\n    const theme = (this.editor as any)._themeService._theme;\n    let value = theme.getColor(name);\n\n    // HACK - Buttons themes are not in monaco ... so just hack in theme for dark\n    const missingThemes = {\n      /*dark: {\n        \"button.background\": \"#0e639c\",\n        \"button.foreground\": \"#ffffff\",\n      },\n      light: {\n        \"button.background\": \"#007acc\",\n        \"button.foreground\": \"#ffffff\",\n      },*/\n    };\n    if (!value) {\n      value =\n        missingThemes[theme.themeName.indexOf('dark') > -1 ? 'dark' : 'light'][\n          name\n          ];\n    }\n    return value;\n  }\n\n  createInlineEditButtonsElement(): InlineToolbarElements {\n    const root = document.createElement('div') as HTMLDivElement;\n    root.className = 'editButtonsContainer';\n    root.style.marginLeft = this.config.editButtonOffset;\n\n    const add = document.createElement('span') as HTMLSpanElement;\n    add.innerText = this.config.replyButton.label;\n    add.className = this.config.replyButton.class || 'editButton add';\n    add.setAttribute(CONTROL_ATTR_NAME, '');\n    add.onclick = () => this.setEditorMode(EditorMode.insertComment, 'add-comment');\n    root.appendChild(add);\n\n    let remove = null;\n    let edit = null;\n    let spacer = null;\n\n    if (this.config.editButtonEnableRemove) {\n      spacer = document.createElement('div') as HTMLDivElement;\n      spacer.innerText = ' ';\n      root.appendChild(spacer);\n\n      remove = document.createElement('span') as HTMLSpanElement;\n      remove.setAttribute(CONTROL_ATTR_NAME, '');\n      remove.innerText = this.config.removeButton.label;\n      remove.className = this.config.removeButton.class || 'editButton remove';\n      remove.onclick = () => this.activeComment && this.removeComment(this.activeComment.id);\n      root.appendChild(remove);\n    }\n\n    if (this.config.editButtonEnableEdit) {\n      spacer = document.createElement('div') as HTMLDivElement;\n      spacer.innerText = ' ';\n      root.appendChild(spacer);\n\n      edit = document.createElement('span') as HTMLSpanElement;\n      edit.setAttribute(CONTROL_ATTR_NAME, '');\n      edit.innerText = this.config.editButton.label || 'Edit';\n      edit.className = this.config.editButton.class || 'editButton edit';\n      edit.onclick = () => this.setEditorMode(EditorMode.editComment, 'edit');\n      root.appendChild(edit);\n    }\n\n    return {root, add, remove, edit};\n  }\n\n  handleCancel() {\n    this.setEditorMode(EditorMode.toolbar, 'cancel');\n    this.editor.focus();\n  }\n\n  handleAddComment() {\n    const lineNumber = this.activeComment\n      ? this.activeComment.lineNumber\n      : this.editor.getSelection().endLineNumber;\n    const text = this.editorElements.textarea.value;\n    const selection = this.activeComment\n      ? null\n      : (this.editor.getSelection() as CodeSelection);\n    this.addComment(lineNumber, text, selection);\n    this.setEditorMode(EditorMode.toolbar, 'add-comment-1');\n    this.editor.focus();\n  }\n\n  handleTextAreaKeyDown(e: KeyboardEvent) {\n    if (e.code === 'Escape') {\n      this.handleCancel();\n      e.preventDefault();\n      console.info('preventDefault: Escape Key');\n    } else if (e.code === 'Enter' && e.ctrlKey) {\n      this.handleAddComment();\n      e.preventDefault();\n      console.info('preventDefault: ctrl+Enter');\n    }\n  }\n\n  createInlineEditorElement(): EditorElements {\n   const theme =  (this.editor as any)._themeService._theme.themeName.indexOf('dark') > -1 ? 'dark' : 'light'\n    const root = document.createElement('div') as HTMLDivElement;\n    root.className = 'reviewCommentEditor ' + theme;\n\n    const textarea = document.createElement('textarea') as HTMLTextAreaElement;\n    textarea.setAttribute(CONTROL_ATTR_NAME, '');\n    textarea.className = 'reviewCommentEditor text';\n    textarea.innerText = '';\n    textarea.style.resize = 'none';\n    textarea.style.width = '100%';\n    textarea.name = 'text';\n    textarea.onkeydown = this.handleTextAreaKeyDown.bind(this);\n\n    const confirm = document.createElement('button') as HTMLButtonElement;\n    confirm.setAttribute(CONTROL_ATTR_NAME, '');\n    confirm.className = this.config.addButton.class || 'reviewCommentEditor save';\n    confirm.innerText = this.config.addButton.label || 'Add Comment';\n    confirm.onclick = this.handleAddComment.bind(this);\n\n    const cancel = document.createElement('button') as HTMLButtonElement;\n    cancel.setAttribute(CONTROL_ATTR_NAME, '');\n    cancel.className = this.config.cancelButton.class || 'reviewCommentEditor cancel';\n    cancel.innerText = this.config.cancelButton.label || 'Cancel';\n    cancel.onclick = this.handleCancel.bind(this);\n\n    root.appendChild(textarea);\n    root.appendChild(cancel);\n    root.appendChild(confirm);\n\n    return {root, confirm, cancel, textarea};\n  }\n\n  createInlineToolbarWidget() {\n    const buttonsElement = this.createInlineEditButtonsElement();\n    const this_ = this;\n\n    this.widgetInlineToolbar = {\n      allowEditorOverflow: true,\n      getId: () => {\n        return 'widgetInlineToolbar';\n      },\n      getDomNode: () => {\n        return buttonsElement.root;\n      },\n      getPosition: () => {\n        if (\n          this_.activeComment &&\n          this_.editorMode == EditorMode.toolbar &&\n          !this_.config.readOnly\n        ) {\n          return {\n            position: {\n              lineNumber: this_.activeComment.lineNumber + 1,\n              column: 1,\n            },\n            preference: [POSITION_EXACT],\n          };\n        }\n      },\n    };\n\n    this.editor.addContentWidget(this.widgetInlineToolbar);\n    return buttonsElement;\n  }\n\n  createInlineEditorWidget(): EditorElements {\n    // doesn't re-theme when\n    const editorElement = this.createInlineEditorElement();\n\n    this.widgetInlineCommentEditor = {\n      allowEditorOverflow: true,\n      getId: () => {\n        return 'widgetInlineEditor';\n      },\n      getDomNode: () => {\n        console.log('getDomNode');\n        return editorElement.root;\n      },\n      getPosition: () => {\n        if (\n          this.editorMode == EditorMode.insertComment ||\n          this.editorMode == EditorMode.editComment\n        ) {\n          const position = this.editor.getPosition();\n\n          return {\n            position: {\n              lineNumber: this.activeComment\n                ? this.activeComment.lineNumber\n                : position.lineNumber + 1,\n              column: position.column,\n            },\n            preference: [POSITION_EXACT],\n          };\n        }\n      },\n    };\n\n    this.editor.addContentWidget(this.widgetInlineCommentEditor);\n    return editorElement;\n  }\n\n  setActiveComment(comment: ReviewComment) {\n    this.verbose && console.debug('setActiveComment', comment);\n\n    const lineNumbersToMakeDirty = [];\n    if (\n      this.activeComment &&\n      (!comment || this.activeComment.lineNumber !== comment.lineNumber)\n    ) {\n      lineNumbersToMakeDirty.push(this.activeComment.lineNumber);\n    }\n    if (comment) {\n      lineNumbersToMakeDirty.push(comment.lineNumber);\n    }\n\n    this.activeComment = comment;\n    if (lineNumbersToMakeDirty.length > 0) {\n      this.filterAndMapComments(lineNumbersToMakeDirty, (comment) => {\n        this.renderStore[comment.id].renderStatus =\n          ReviewCommentRenderState.dirty;\n      });\n    }\n  }\n\n  filterAndMapComments(\n    lineNumbers: number[],\n    fn: { (comment: ReviewComment): void }\n  ) {\n    for (const cs of Object.values(this.store.comments)) {\n      if (lineNumbers.indexOf(cs.comment.lineNumber) > -1) {\n        fn(cs.comment);\n      }\n    }\n  }\n\n  handleMouseMove(ev: monacoEditor.editor.IEditorMouseEvent) {\n    if (ev.target && ev.target.position && ev.target.position.lineNumber) {\n      this.currentLineDecorationLineNumber = ev.target.position.lineNumber;\n      this.renderAddCommentLineDecoration(\n        this.config.readOnly === true\n          ? null\n          : this.currentLineDecorationLineNumber\n      );\n    }\n  }\n\n  renderAddCommentLineDecoration(lineNumber?: number) {\n    const lines = lineNumber\n      ? [\n        {\n          range: new monacoWindow.monaco.Range(lineNumber, 0, lineNumber, 0),\n          options: {\n            marginClassName: 'activeLineMarginClass',\n            zIndex: 100,\n          },\n        },\n      ]\n      : [];\n    this.currentLineDecorations = this.editor.deltaDecorations(\n      this.currentLineDecorations,\n      lines\n    );\n  }\n\n  handleMouseDown(ev: {\n    target: {\n      element: { className: string; hasAttribute: { (string): boolean } };\n      detail: any;\n    };\n  }) {\n    // Not ideal - but couldn't figure out a different way to identify the glyph event\n    if (\n      ev.target.element.className &&\n      ev.target.element.className.indexOf('activeLineMarginClass') > -1\n    ) {\n      this.editor.setPosition({\n        lineNumber: this.currentLineDecorationLineNumber,\n        column: 1,\n      });\n      this.setEditorMode(EditorMode.insertComment, 'mouse-down-1');\n    } else if (!ev.target.element.hasAttribute(CONTROL_ATTR_NAME)) {\n      let activeComment: ReviewComment = null;\n\n      if (ev.target.detail && ev.target.detail.viewZoneId !== null) {\n        for (const comment of Object.values(this.store.comments).map(\n          (c) => c.comment\n        )) {\n          const x = this.getRenderState(comment.id);\n          if (x.viewZoneId == ev.target.detail.viewZoneId) {\n            activeComment = comment;\n            break;\n          }\n        }\n      }\n      this.setActiveComment(activeComment);\n      this.refreshComments();\n      this.setEditorMode(EditorMode.toolbar, 'mouse-down-2');\n    }\n  }\n\n  private calculateMarginTopOffset(\n    includeActiveCommentHeight: boolean\n  ): number {\n    let count = 0;\n    let marginTop = 0;\n    const lineHeight = this.editorConfig.lineHeight;\n\n    if (this.activeComment) {\n      for (let item of this.iterateComments()) {\n        if (\n          item.state.comment.lineNumber === this.activeComment.lineNumber &&\n          (item.state.comment != this.activeComment ||\n            includeActiveCommentHeight)\n        ) {\n          count += this.calculateNumberOfLines(item.state.comment.text);\n        }\n\n        if (item.state.comment == this.activeComment) {\n          break;\n        }\n      }\n      marginTop = count * lineHeight;\n    }\n    return marginTop + this.config.verticalOffset;\n  }\n\n  layoutInlineToolbar() {\n    this.inlineToolbarElements.root.style.backgroundColor = this.getThemedColor('editor.background');\n    this.inlineToolbarElements.root.style.marginTop = `${this.calculateMarginTopOffset(false)}px`;\n\n    if (this.inlineToolbarElements.remove) {\n      const hasChildren =\n        this.activeComment &&\n        this.iterateComments((c) => c.comment.id === this.activeComment.id).length > 1;\n      const isSameUser = this.activeComment && this.activeComment.author === this.currentUser;\n      this.inlineToolbarElements.remove.style.display = hasChildren ? 'none' : '';\n      this.inlineToolbarElements.edit.style.display = hasChildren || !isSameUser ? 'none' : '';\n    }\n\n    this.editor.layoutContentWidget(this.widgetInlineToolbar);\n  }\n\n  layoutInlineCommentEditor() {\n    [this.editorElements.root, this.editorElements.textarea].forEach((e) => {\n      e.style.backgroundColor = this.getThemedColor('editor.background');\n      e.style.color = this.getThemedColor('editor.foreground');\n    });\n\n    this.editorElements.confirm.innerText =\n      this.editorMode === EditorMode.insertComment\n        ? this.config.addButton.label || 'Add Comment'\n        : 'Edit Comment';\n    // this.editorElements.root.style.marginTop = `${this.calculateMarginTopOffset(\n    //   true\n    // )}px`;\n    this.editor.layoutContentWidget(this.widgetInlineCommentEditor);\n  }\n\n  setEditorMode(mode: EditorMode, why: string = null) {\n    this.editorMode = this.config.readOnly ? EditorMode.toolbar : mode;\n    this.layoutInlineToolbar();\n    this.layoutInlineCommentEditor();\n    if (mode === EditorMode.insertComment || mode === EditorMode.editComment) {\n      if (mode === EditorMode.insertComment) {\n        this.editorElements.textarea.value = '';\n      } else if (mode === EditorMode.editComment) {\n        this.editorElements.textarea.value = this.activeComment\n          ? this.activeComment.text\n          : '';\n      }\n      // HACK - because the event in monaco doesn't have preventdefault which means editor takes focus back...\n      setTimeout(() => this.editorElements.textarea.focus(), 100); //TODO - make configurable\n    }\n  }\n\n  getDateTimeNow() {\n    return new Date();\n  }\n\n  private recurseComments(\n    allComments: { [key: string]: ReviewCommentState },\n    filterFn: { (c: ReviewCommentState): boolean },\n    depth: number,\n    results: ReviewCommentIterItem[]\n  ) {\n    const comments = Object.values(allComments).filter(filterFn);\n    for (const cs of comments) {\n      const comment = cs.comment;\n      delete allComments[comment.id];\n\n      results.push({\n        depth,\n        state: cs,\n      });\n      this.recurseComments(\n        allComments,\n        (x) => x.comment.parentId === comment.id,\n        depth + 1,\n        results\n      );\n    }\n  }\n\n  private iterateComments(filterFn?: { (c: ReviewCommentState): boolean }) {\n    if (!filterFn) {\n      filterFn = (cs: ReviewCommentState) => !cs.comment.parentId;\n    }\n    const copyCommentState = {...this.store.comments};\n    const results: ReviewCommentIterItem[] = [];\n    this.recurseComments(copyCommentState, filterFn, 0, results);\n    return results;\n  }\n\n  removeComment(id: string) {\n    return this.addEvent({type: 'delete', targetId: id});\n  }\n\n  addComment(lineNumber: number, text: string, selection?: CodeSelection) {\n    const event: ReviewCommentEvent =\n      this.editorMode === EditorMode.editComment\n        ? {type: 'edit', text, targetId: this.activeComment.id}\n        : {\n          type: 'create',\n          text,\n          lineNumber,\n          selection,\n          targetId: this.activeComment && this.activeComment.id,\n        };\n\n    return this.addEvent(event);\n  }\n\n  private addEvent(event: ReviewCommentEvent) {\n    event.createdBy = this.currentUser;\n    event.createdAt = this.getDateTimeNow();\n    event.id = uuid.v4();\n\n    this.events.push(event);\n    this.store = commentReducer(event, this.store);\n\n    if (this.activeComment && !this.store.comments[this.activeComment.id]) {\n      this.setActiveComment(null);\n    } else if (\n      this.activeComment &&\n      this.activeComment.status === ReviewCommentStatus.deleted\n    ) {\n      this.setActiveComment(null);\n    }\n\n    this.refreshComments();\n    this.layoutInlineToolbar();\n\n    if (this.onChange) {\n      this.onChange(this.events);\n    }\n\n    return event;\n  }\n\n  private formatDate(dt: Date | string) {\n    if (this.config.formatDate) {\n      return this.config.formatDate(dt);\n    } else if (dt instanceof Date) {\n      return dt.toISOString();\n    } else {\n      return dt;\n    }\n  }\n\n  private static createElement(\n    text: string,\n    className: string,\n    tagName: string = null\n  ) {\n    const span = document.createElement(tagName || 'span') as HTMLSpanElement;\n    span.className = className;\n    span.innerText = text;\n    return span;\n  }\n\n  getRenderState(commentId: string): RenderStoreItem {\n    if (!this.renderStore[commentId]) {\n      this.renderStore[commentId] = {viewZoneId: null, renderStatus: null};\n    }\n    return this.renderStore[commentId];\n  }\n\n  refreshComments() {\n    this.editor.changeViewZones(\n      (changeAccessor: {\n        addZone: {\n          (zone: {\n            afterLineNumber: number;\n            heightInLines: number;\n            domNode: HTMLElement;\n            suppressMouseDown: boolean;\n          }): string;\n        };\n        removeZone: { (id: string): void };\n      }) => {\n        const lineNumbers: { [key: number]: CodeSelection } = {};\n\n        for (const cid of Array.from(this.store.deletedCommentIds || [])) {\n          const viewZoneId = this.renderStore[cid]?.viewZoneId;\n          changeAccessor.removeZone(viewZoneId);\n          this.verbose && console.debug('Zone.Delete', viewZoneId);\n        }\n        this.store.deletedCommentIds = null;\n\n        for (const cid of Array.from(this.store.dirtyCommentIds || [])) {\n          this.getRenderState(cid).renderStatus =\n            ReviewCommentRenderState.dirty;\n        }\n        this.store.dirtyCommentIds = null;\n\n        for (const item of this.iterateComments()) {\n          const rs = this.getRenderState(item.state.comment.id);\n\n          if (rs.renderStatus === ReviewCommentRenderState.hidden) {\n            this.verbose && console.debug('Zone.Hidden', item.state.comment.id);\n\n            changeAccessor.removeZone(rs.viewZoneId);\n            rs.viewZoneId = null;\n\n            continue;\n          }\n\n          if (rs.renderStatus === ReviewCommentRenderState.dirty) {\n            this.verbose && console.debug('Zone.Dirty', item.state.comment.id);\n\n            changeAccessor.removeZone(rs.viewZoneId);\n            rs.viewZoneId = null;\n            rs.renderStatus = ReviewCommentRenderState.normal;\n          }\n\n          if (!lineNumbers[item.state.comment.lineNumber]) {\n            lineNumbers[item.state.comment.lineNumber] =\n              item.state.comment.selection;\n          }\n\n          if (rs.viewZoneId == null) {\n            this.verbose && console.debug('Zone.Create', item.state.comment.id);\n\n            const isActive = this.activeComment == item.state.comment;\n\n            const domNode = ReviewManager.createElement(\n              '',\n              `reviewComment ${isActive ? 'active' : ' inactive'}`\n            );\n            domNode.style.paddingLeft =\n              this.config.commentIndent * (item.depth + 1) +\n              this.config.commentIndentOffset +\n              'px';\n            domNode.style.backgroundColor = this.getThemedColor('editor.selectionHighlightBackground');\n\n            // For Debug - domNode.appendChild(this.createElement(`${item.state.comment.id}`, 'reviewComment id'))\n\n            domNode.appendChild(\n              ReviewManager.createElement(\n                `${item.state.comment.author || ' '}`,\n                'reviewComment author'\n              )\n            );\n            domNode.appendChild(ReviewManager.createElement(' at ' + this.formatDate(item.state.comment.dt), 'reviewComment dt')\n            );\n            if (item.state.history.length > 1) {\n              domNode.appendChild(\n                ReviewManager.createElement(\n                  `(Edited ${item.state.history.length - 1} times)`,\n                  'reviewComment history'\n                )\n              );\n            }\n            domNode.appendChild(\n              ReviewManager.createElement(\n                `${item.state.comment.text}`,\n                'reviewComment text',\n                'div'\n              )\n            );\n            //todo jxb fixme\n            //   function getTextWidth() {\n\n            //     text = document.createElement(\"span\");\n            //     document.body.appendChild(text);\n\n            //     text.style.font = \"times new roman\";\n            //     text.style.fontSize = 16 + \"px\";\n            //     text.style.height = 'auto';\n            //     text.style.width = 'auto';\n            //     text.style.position = 'absolute';\n            //     text.style.whiteSpace = 'no-wrap';\n            //     text.innerHTML = 'Hello World';\n\n            //     width = Math.ceil(text.clientWidth);\n            //     formattedWidth = width + \"px\";\n\n            //     document.querySelector('.output').textContent\n            //             = formattedWidth;\n            //     document.body.removeChild(text);\n            // }\n            rs.viewZoneId = changeAccessor.addZone({\n              afterLineNumber: item.state.comment.lineNumber,\n              heightInLines: this.calculateNumberOfLines(item.state.comment.text),\n              domNode: domNode,\n              suppressMouseDown: true, // This stops focus being lost the editor - meaning keyboard shortcuts keeps working\n            });\n          }\n        }\n\n        if (this.config.showInRuler) {\n          const decorators = [];\n          for (const [ln, selection] of Object.entries(lineNumbers)) {\n            decorators.push({\n              range: new monacoWindow.monaco.Range(ln, 0, ln, 0),\n              options: {\n                isWholeLine: true,\n                overviewRuler: {\n                  color: this.config.rulerMarkerColor,\n                  darkColor: this.config.rulerMarkerDarkColor,\n                  position: 2,\n                },\n              },\n            });\n\n            if (selection) {\n              decorators.push({\n                range: new monacoWindow.monaco.Range(\n                  selection.startLineNumber,\n                  selection.startColumn,\n                  selection.endLineNumber,\n                  selection.endColumn\n                ),\n                options: {\n                  className: 'reviewComment selection',\n                },\n              });\n            }\n          }\n\n          this.currentCommentDecorations = this.editor.deltaDecorations(\n            this.currentCommentDecorations,\n            decorators\n          );\n        }\n      }\n    );\n  }\n\n  calculateNumberOfLines(text: string): number {\n    return text ? text.split(/\\r*\\n/).length + 1 : 1;\n  }\n\n  addActions() {\n    this.editor.addAction({\n      id: 'my-unique-id-add',\n      label: this.config.addButton.label || 'Add Comment',\n      keybindings: [\n        monacoWindow.monaco?.KeyMod.CtrlCmd | monacoWindow.monaco?.KeyCode.F10,\n      ],\n      precondition: 'add-context-key',\n      keybindingContext: null,\n      contextMenuGroupId: 'navigation',\n      contextMenuOrder: 0,\n\n      run: () => {\n        this.setEditorMode(EditorMode.insertComment, 'add-comment-x');\n      },\n    });\n\n    this.editor.addAction({\n      id: 'my-unique-id-next',\n      label: 'Next Comment',\n      keybindings: [\n        monacoWindow.monaco?.KeyMod.CtrlCmd | monacoWindow.monaco?.KeyCode.F12,\n      ],\n      precondition: null,\n      keybindingContext: null,\n      contextMenuGroupId: 'navigation',\n      contextMenuOrder: 0.101,\n\n      run: () => {\n        this.navigateToComment(NavigationDirection.next);\n      },\n    });\n\n    this.editor.addAction({\n      id: 'my-unique-id-prev',\n      label: 'Prev Comment',\n      keybindings: [\n        monacoWindow.monaco?.KeyMod.CtrlCmd | monacoWindow.monaco?.KeyCode.F11,\n      ],\n      precondition: null,\n      keybindingContext: null,\n      contextMenuGroupId: 'navigation',\n      contextMenuOrder: 0.102,\n\n      run: () => {\n        this.navigateToComment(NavigationDirection.prev);\n      },\n    });\n  }\n\n  navigateToComment(direction: NavigationDirection) {\n    let currentLine = 0;\n    if (this.activeComment) {\n      currentLine = this.activeComment.lineNumber;\n    } else {\n      currentLine = this.editor.getPosition().lineNumber;\n    }\n\n    const comments = Object.values(this.store.comments)\n      .map((cs) => cs.comment)\n      .filter((c) => {\n        if (!c.parentId) {\n          if (direction === NavigationDirection.next) {\n            return c.lineNumber > currentLine;\n          } else if (direction === NavigationDirection.prev) {\n            return c.lineNumber < currentLine;\n          }\n        }\n      });\n\n    if (comments.length) {\n      comments.sort((a, b) => {\n        if (direction === NavigationDirection.next) {\n          return a.lineNumber - b.lineNumber;\n        } else if (direction === NavigationDirection.prev) {\n          return b.lineNumber - a.lineNumber;\n        }\n      });\n\n      const comment = comments[0];\n      this.setActiveComment(comment);\n      this.refreshComments();\n      this.layoutInlineToolbar();\n      this.editor.revealLineInCenter(comment.lineNumber);\n    }\n  }\n\n  updateConfig(config: ReviewManagerConfig) {\n    this.config = {...defaultReviewManagerConfig, ...(config || {})};\n  }\n}\n","/*\n *  Copyright 2020-2023 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n/**\n * Parsing result of // @command parameter  in the beginning of the WarpScript\n */\nexport interface specialCommentCommands {\n  endpoint?: string;\n  timeunit?: string;\n  localmacrosubstitution?: boolean;\n  displayPreviewOpt?: string;\n  listOfMacroInclusion?: string[];\n  listOfMacroInclusionRange?: any[];\n  theme?: string;\n}\n\n/**\n * Little class to store statement and its offset in the text\n */\nexport class wsStatement {\n  public statement: string;\n  public offset: number;\n\n  constructor(statement: string, offset: number) {\n    this.statement = statement;\n    this.offset = offset;\n  }\n}\n\nexport class WarpScriptParser {\n\n  /**\n   * Look for a statement position in the recursive tree of macros markers.\n   *\n   * @param macroPositions the table of macro positions (output of parseWarpScriptMacros)\n   * @param offset the absolute position of the start of statement you are looking for\n   * @param numberOfMacros the expected number of macros\n   */\n  public static findMacrosBeforePosition(macroPositions: any, offset: number, numberOfMacros: number): any[] {\n\n    for (let idx = 0; idx < macroPositions.length; idx++) {\n      if (macroPositions[idx] instanceof wsStatement && (macroPositions[idx] as wsStatement).offset == offset) {\n        //found the statement. need to return previous macros as ranges\n        let pidx = idx - 1;\n        let c = 0;\n        let startEndList: any[] = [];\n        while (pidx >= 0 && c < numberOfMacros) {\n          if (macroPositions[pidx] instanceof wsStatement) {\n            break;\n          } else {\n            if (typeof (macroPositions[pidx]) !== 'number') {\n              startEndList.push([macroPositions[pidx][0], macroPositions[pidx][macroPositions[pidx].length - 1]]);\n              c++;\n            }\n          }\n          pidx--;\n        }\n        return startEndList;\n      } else if (typeof (macroPositions[idx]) === 'number') {\n        // console.log(\"not in this block\")\n      } else {\n        let r = this.findMacrosBeforePosition(macroPositions[idx], offset, numberOfMacros);\n        if (null !== r) {\n          return r;\n        }\n      }\n\n    }\n    return null;\n  }\n\n  /**\n   * Unlike parseWarpScriptMacros, this function return a very simple list of statements (as strings), ignoring comments.\n   * [ '\"HELLO\"' '\"WORLD\"' '+' '2' '2' '*' ]\n   *\n   * When called with withPosition true, it returns a list of list than include start and end position of the statement:\n   * [ [ '\"HELLO\"' 4 11 ] [ '\"WORLD\"' 22 29 ]  ]\n   */\n  public static parseWarpScriptStatements(ws: String, withPosition = false): any[] {\n\n    let i: number = 0;\n    let result: any[] = [];\n\n    while (i < ws.length - 1) { //often test 2 characters\n      if (ws.charAt(i) == '<' && ws.charAt(i + 1) == '\\'') { //start of a multiline, look for end\n        // console.log(i, 'start of multiline');\n        let lines: string[] = ws.substring(i, ws.length).split('\\n');\n        let lc = 0;\n        while (lc < lines.length && lines[lc].trim() != '\\'>') {\n          i += lines[lc].length + 1;\n          lc++;\n        }\n        i += lines[lc].length + 1;\n        // console.log(i, 'end of multiline');\n      }\n      if (ws.charAt(i) == '/' && ws.charAt(i + 1) == '*') { //start one multiline comment, seek for end of comment\n        // console.log(i, 'start of multiline comment');\n        i++;\n        while (i < ws.length - 1 && !(ws.charAt(i) == '*' && ws.charAt(i + 1) == '/')) {\n          i++;\n        }\n        i += 2;\n        // console.log(i, 'end of multiline comment');\n      }\n      if (ws.charAt(i) == '/' && ws.charAt(i + 1) == '/') { //start single line comment, seek for end of line\n        // console.log(i, 'start of a comment');\n        i++;\n        while (i < ws.length - 1 && (ws.charAt(i) != '\\n')) {\n          i++;\n        }\n        // console.log(i, 'end of a comment');\n      }\n\n      if (ws.charAt(i) == '\\'') { //start of string, seek for end\n        // console.log(i, 'start of string');\n        let start = i;\n        i++;\n        while (i < ws.length && ws.charAt(i) != '\\'' && ws.charAt(i) != '\\n') {\n          i++;\n        }\n        i++;\n        result.push(ws.substring(start, i).replace('\\r', ''));\n        // console.log(i, 'end of string');\n      }\n      if (ws.charAt(i) == '\"') { //start of string, seek for end\n        // console.log(i, 'start of string');\n        let start = i;\n        i++;\n        while (i < ws.length && ws.charAt(i) != '\"' && ws.charAt(i) != '\\n') {\n          i++;\n        }\n        // console.log(i, 'end of string');\n        i++;\n        result.push(ws.substring(start, i).replace('\\r', ''));\n      }\n\n      if (ws.charAt(i) == '<' && ws.charAt(i + 1) == '%') { //start of a macro.\n        // console.log(i, 'start of macro');\n        result.push('<%');\n        i += 2;\n      }\n\n      if (ws.charAt(i) == '%' && ws.charAt(i + 1) == '>') { //end of a macro.\n        // console.log(i, 'end of macro');\n        result.push('%>');\n        i += 2;\n      }\n\n      if (ws.charAt(i) != ' ' && ws.charAt(i) != '\\n') {\n        let start = i;\n        while (i < ws.length && ws.charAt(i) != ' ' && ws.charAt(i) != '\\n') {\n          i++;\n        }\n        if (withPosition) {\n          result.push([ws.substring(start, i).replace('\\r', ''), start, i]);\n        } else {\n          result.push(ws.substring(start, i).replace('\\r', ''));\n        }\n      }\n      i++;\n    }\n\n    return result;\n  }\n\n  public static extractSpecialComments(executedWarpScript: string): specialCommentCommands {\n    let result: specialCommentCommands = {};\n    let warpscriptlines = executedWarpScript.split('\\n');\n    result.listOfMacroInclusion = [];\n    result.listOfMacroInclusionRange = [];\n    for (let l = 0; l < warpscriptlines.length; l++) {\n      let currentline = warpscriptlines[l];\n      if (currentline.startsWith('//')) {\n        //find and extract // @paramname parameters\n        let extraparamsPattern = /\\/\\/\\s*@(\\w*)\\s*(.*)$/g;\n        let lineonMatch: RegExpMatchArray | null;\n        let re = RegExp(extraparamsPattern);\n        while (lineonMatch = re.exec(currentline.replace('\\r', ''))) {  //think about windows... \\r\\n in mc2 files !\n          let parametername = lineonMatch[1];\n          let parametervalue = lineonMatch[2];\n          switch (parametername) {\n            case 'endpoint':        //        // @endpoint http://mywarp10server/api/v0/exec\n              result.endpoint = parametervalue;   // overrides the Warp10URL configuration\n              break;\n            case 'localmacrosubstitution':\n              result.localmacrosubstitution = ('true' === parametervalue.trim().toLowerCase());   // overrides the substitutionWithLocalMacros\n              break;\n            case 'timeunit':\n              if (['us', 'ms', 'ns'].indexOf(parametervalue.trim()) > -1) {\n                result.timeunit = parametervalue.trim();\n              }\n              break;\n            case 'preview':\n              switch (parametervalue.toLowerCase().substring(0, 4)) {\n                case 'none':\n                  result.displayPreviewOpt = 'X';\n                  break;\n                case 'gts':\n                  result.displayPreviewOpt = 'G';\n                  break;\n                case 'imag':\n                  result.displayPreviewOpt = 'I';\n                  break;\n                case 'json':\n                  result.displayPreviewOpt = 'J';\n                  break;\n                case 'disc':\n                  result.displayPreviewOpt = 'D';\n                  break;\n                default:\n                  result.displayPreviewOpt = '';\n                  break;\n              }\n              break;\n            case 'include':\n              let p = parametervalue.trim();\n              if (p.startsWith('macro:')) {\n                p = p.substring(6).trim();\n                result.listOfMacroInclusion.push(p);\n                let r = {startLineNumber: l, startColumn: 3, endLineNumber: l, endColumn: currentline.trim().length};\n                result.listOfMacroInclusionRange.push(r);\n              }\n              break;\n            case 'theme':\n              result.theme = parametervalue.trim().toLowerCase();\n              break;\n            default:\n              break;\n          }\n        }\n      } else {\n        if (currentline.trim().length > 0) {\n          break; //no more comments at the beginning of the file\n        }\n      }\n    }\n    return result;\n  }\n\n  public static IsWsLitteralString(s: String): boolean {\n    // up to MemoryWarpScriptStack, a valid string is:\n    return (s.length >= 2 && ((s.startsWith('\"') && s.endsWith('\"')) || (s.startsWith('\\'') && s.endsWith('\\''))));\n  }\n\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n// adapted from Canop's JSON,parseMore https://github.com/Canop/JSON.parseMore/\nimport BigNumber from 'bignumber.js';\n\nexport class JsonLib {\n  at;\t // The index of the current character\n  ch;\t // The current character\n  escapee = {\n    '\"': '\"',\n    '\\\\': '\\\\',\n    '/': '/',\n    b: '\\b',\n    f: '\\f',\n    n: '\\n',\n    r: '\\r',\n    t: '\\t'\n  };\n  text;\n\n  private error(m) {\n    throw {\n      name: 'SyntaxError',\n      message: m,\n      at: this.at,\n      text: this.text\n    };\n  }\n\n  private next() {\n    return this.ch = this.text.charAt(this.at++);\n  }\n\n  private check(c) {\n    if (c !== this.ch) {\n      this.error('Expected \\'' + c + '\\' instead of \\'' + this.ch + '\\'');\n    }\n    this.ch = this.text.charAt(this.at++);\n  }\n\n  private number() {\n    let string = '';\n    if (this.ch === '-') {\n      string = '-';\n      this.check('-');\n    }\n    if (this.ch === 'I') {\n      this.check('I');\n      this.check('n');\n      this.check('f');\n      this.check('i');\n      this.check('n');\n      this.check('i');\n      this.check('t');\n      this.check('y');\n      return -Infinity;\n    }\n    while (this.ch >= '0' && this.ch <= '9') {\n      string += this.ch;\n      this.next();\n    }\n    if (this.ch === '.') {\n      string += '.';\n      while (this.next() && this.ch >= '0' && this.ch <= '9') {\n        string += this.ch;\n      }\n    }\n    if (this.ch === 'e' || this.ch === 'E') {\n      string += this.ch;\n      this.next();\n      if (this.ch === '-' || this.ch === '+') {\n        string += this.ch;\n        this.next();\n      }\n      while (this.ch >= '0' && this.ch <= '9') {\n        string += this.ch;\n        this.next();\n      }\n    }\n    return this.testBigInt(string);\n  }\n\n  private testBigInt(str: string) {\n    if(str.replace('-', '').split('.')[0].length > 16) {\n      return new BigNumber(str);\n    }else {\n      return +str;\n    }\n  }\n\n  private string() {\n    let hex;\n    let string = '';\n    let uffff;\n    if (this.ch === '\"') {\n      while (this.next()) {\n        if (this.ch === '\"') {\n          this.next();\n          return string;\n        }\n        if (this.ch === '\\\\') {\n          this.next();\n          if (this.ch === 'u') {\n            uffff = 0;\n            for (let i = 0; i < 4; i++) {\n              hex = parseInt(this.next(), 16);\n              if (!isFinite(hex)) {\n                break;\n              }\n              uffff = uffff * 16 + hex;\n            }\n            string += String.fromCharCode(uffff);\n          } else if (this.escapee[this.ch]) {\n            string += this.escapee[this.ch];\n          } else {\n            break;\n          }\n        } else {\n          string += this.ch;\n        }\n      }\n    }\n    this.error('Bad string');\n  }\n\n  private white() { // Skip whitespace.\n    while (this.ch && this.ch <= ' ') {\n      this.next();\n    }\n  }\n\n  private word() {\n    switch (this.ch) {\n      case 't':\n        this.check('t');\n        this.check('r');\n        this.check('u');\n        this.check('e');\n        return true;\n      case 'f':\n        this.check('f');\n        this.check('a');\n        this.check('l');\n        this.check('s');\n        this.check('e');\n        return false;\n      case 'n':\n        this.check('n');\n        this.check('u');\n        this.check('l');\n        this.check('l');\n        return null;\n      case 'N':\n        this.check('N');\n        this.check('a');\n        this.check('N');\n        return NaN;\n      case 'I':\n        this.check('I');\n        this.check('n');\n        this.check('f');\n        this.check('i');\n        this.check('n');\n        this.check('i');\n        this.check('t');\n        this.check('y');\n        return Infinity;\n    }\n    this.error('Unexpected \\'' + this.ch + '\\'');\n  }\n\n  private array() {\n    const array = [];\n    if (this.ch === '[') {\n      this.check('[');\n      this.white();\n      if (this.ch === ']') {\n        this.check(']');\n        return array;   // empty array\n      }\n      while (this.ch) {\n        array.push(this.value());\n        this.white();\n        if (this.ch === ']') {\n          this.check(']');\n          return array;\n        }\n        this.check(',');\n        this.white();\n      }\n    }\n    this.error('Bad array');\n  }\n\n  private object() {\n    let key;\n    const object = {};\n    if (this.ch === '{') {\n      this.check('{');\n      this.white();\n      if (this.ch === '}') {\n        this.check('}');\n        return object;   // empty object\n      }\n      while (this.ch) {\n        key = this.string();\n        this.white();\n        this.check(':');\n        if (Object.hasOwnProperty.call(object, key)) {\n          this.error('Duplicate key \"' + key + '\"');\n        }\n        object[key] = this.value();\n        this.white();\n        if (this.ch === '}') {\n          this.check('}');\n          return object;\n        }\n        this.check(',');\n        this.white();\n      }\n    }\n    this.error('Bad object');\n  }\n\n  private value() {\n    this.white();\n    switch (this.ch) {\n      case '{':\n        return this.object();\n      case '[':\n        return this.array();\n      case '\"':\n        return this.string();\n      case '-':\n        return this.number();\n      default:\n        return this.ch >= '0' && this.ch <= '9' ? this.number() : this.word();\n    }\n  }\n\n  public parse(source, reviver) {\n    let result;\n    this.text = source;\n    this.at = 0;\n    this.ch = ' ';\n    result = this.value();\n    this.white();\n    if (this.ch) {\n      this.error('Syntax error');\n    }\n    return typeof reviver === 'function'\n      ? (function walk(holder, key) {\n        let k;\n        let v;\n        const value = holder[key];\n        if (value && typeof value === 'object') {\n          for (k in value) {\n            if (Object.prototype.hasOwnProperty.call(value, k)) {\n              v = walk(value, k);\n              if (v !== undefined) {\n                value[k] = v;\n              } else {\n                delete value[k];\n              }\n            }\n          }\n        }\n        return reviver.call(holder, key, value);\n      }({'': result}, ''))\n      : result;\n  }\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class GTSLib {\n\n  color = ['#4D4D4D', '#5DA5DA', '#FAA43A', '#60BD68', '#F17CB0', '#B2912F', '#B276B2', '#DECF3F', '#F15854', '#607D8B'];\n\n  getColor(i) {\n    return this.color[i % this.color.length];\n  }\n\n  unique(arr) {\n    const u = {};\n    const a = [];\n    for (let i = 0, l = arr.length; i < l; ++i) {\n      if (!u.hasOwnProperty(arr[i])) {\n        a.push(arr[i]);\n        u[arr[i]] = 1;\n      }\n    }\n    return a;\n  }\n\n  hexToRgb(hex) {\n    const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n    return result ? [\n      parseInt(result[1], 16),\n      parseInt(result[2], 16),\n      parseInt(result[3], 16)\n    ] : null;\n  }\n\n  transparentize(color, alpha: number): string {\n    return 'rgba(' + this.hexToRgb(color).concat(alpha).join(',') + ')';\n  }\n\n  isArray(value) {\n    return value && typeof value === 'object' && value instanceof Array && typeof value.length === 'number'\n      && typeof value.splice === 'function' && !(value.propertyIsEnumerable('length'));\n  }\n\n  isEmbeddedImage(item) {\n    return !(typeof item !== 'string' || !/^data:image/.test(item));\n  }\n\n  isEmbeddedImageObject(item) {\n    return !((item === null) || (item.image === null) ||\n      (item.caption === null) || !this.isEmbeddedImage(item.image));\n  }\n\n  gtsFromJSON(json, id) {\n    return {\n      gts: {\n        c: json.c,\n        l: json.l,\n        a: json.a,\n        v: json.v,\n        id,\n      },\n    };\n  }\n\n  gtsFromJSONList(jsonList, prefixId) {\n    const gtsList = [];\n    let id;\n    jsonList.forEach((item, i) => {\n      let gts = item;\n      if (item.gts) {\n        gts = item.gts;\n      }\n      if ((prefixId !== undefined) && (prefixId !== '')) {\n        id = prefixId + '-' + i;\n      } else {\n        id = '' + i;\n      }\n      if (this.isArray(gts)) {\n        gtsList.push(this.gtsFromJSONList(gts, id));\n      }\n      if (this.isGts(gts)) {\n        gtsList.push(this.gtsFromJSON(gts, id));\n      }\n      if (this.isEmbeddedImage(gts)) {\n        gtsList.push({\n          image: gts,\n          caption: 'Image',\n          id,\n        });\n      }\n      if (this.isEmbeddedImageObject(gts)) {\n        gtsList.push({\n          image: gts.image,\n          caption: gts.caption,\n          id,\n        });\n      }\n    });\n    return {\n      content: gtsList,\n    };\n  }\n\n  flatDeep(arr1) {\n    // tslint:disable-next-line:only-arrow-functions\n    return arr1.reduce((acc, val) => {\n      if (Array.isArray(val)) {\n        acc.concat(this.flatDeep(val));\n      } else {\n        acc.concat(val);\n      }\n    }, []);\n  }\n\n  isGts(item) {\n    return !(!item || item.c === null || item.l === null ||\n      item.a === null || item.v === null || !this.isArray(item.v));\n  }\n\n  isObject(item) {\n    return (item && typeof item === 'object' && !Array.isArray(item));\n  }\n\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {GTSLib} from '../../model/gts.lib';\nimport {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {JsonLib} from '../../model/jsonLib';\n\n@Component({\n  selector: 'warpview-result',\n  templateUrl: './warp-view-result.html',\n  styleUrls: ['./warp-view-result.scss'],\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class WarpViewResult {\n\n  @Input() theme = 'light';\n  @Input() config: object = {};\n  @Input() loading = false;\n  _res: string;\n  _result: any[];\n  _resultStr: any[];\n\n  @Input()\n  get result(): string {\n    return this._res;\n  };\n\n  set result(res: string) {\n    this._res = res;\n    this._result = new JsonLib().parse(res || '[]', undefined);\n    this._resultStr = (this._result || []).map(l => {\n      const lstr = JSON.stringify(l);\n      if (lstr.startsWith('[') || lstr.startsWith('{')) {\n        return lstr;\n      } else {\n        return l;\n      }\n    });\n  }\n\n  constructor(private gtsLib: GTSLib) {\n  }\n\n  isArray(arr: any) {\n    return this.gtsLib.isArray(arr);\n  }\n}\n","<!--\n  ~  Copyright 2020 SenX S.A.S.\n  ~\n  ~  Licensed under the Apache License, Version 2.0 (the \"License\");\n  ~  you may not use this file except in compliance with the License.\n  ~  You may obtain a copy of the License at\n  ~\n  ~    http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~  Unless required by applicable law or agreed to in writing, software\n  ~  distributed under the License is distributed on an \"AS IS\" BASIS,\n  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~  See the License for the specific language governing permissions and\n  ~  limitations under the License.\n  -->\n\n<div [class]=\"'wrapper-result ' + theme\">\n  <div *ngIf=\"_result && isArray(_result)\" [class]=\"theme + ' raw'\">\n    <span *ngFor=\"let line of _resultStr; let index= index; let isFirst = first;\" class=\"line\">\n      <pre class=\"line-num\">{{isFirst? '[TOP]' : index + 1}}</pre>\n      <pre class=\"line-content\" [innerText]=\"line\"></pre>\n    </span>\n  </div>\n</div>\n","/*\n *  Copyright 2020-2022 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nexport class EditorConfig {\n  quickSuggestionsDelay? = 10;\n  quickSuggestions? = true;\n  tabSize? = 2;\n  minLineNumber? = 10;\n  enableDebug? = false;\n  rawResultsReadOnly? = false;\n}\n","/*\n *  Copyright 2020-2022 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {Utils} from '../../model/utils';\nimport {AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {editor} from 'monaco-editor';\nimport {Logger} from '../../model/logger';\nimport {Config} from '../../model/config';\nimport {EditorConfig} from '../../model/editorConfig';\nimport IStandaloneCodeEditor = editor.IStandaloneCodeEditor;\nimport setTheme = editor.setTheme;\nimport create = editor.create;\nimport IEditorOptions = editor.IEditorOptions;\n\n@Component({\n  selector: 'warpview-raw-result',\n  templateUrl: './warp-view-raw-result.component.html',\n  styleUrls: ['./warp-view-raw-result.component.scss'],\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class WarpViewRawResultComponent implements OnInit, AfterViewInit {\n  @ViewChild('editor', {static: true}) editor: ElementRef;\n  json: string;\n\n  @Input() set debug(debug: boolean | string) {\n    if (typeof debug === 'string') {\n      debug = 'true' === debug;\n    }\n    this._debug = debug;\n    this.LOG.setDebug(debug);\n  }\n\n  get debug() {\n    return this._debug;\n  }\n\n  @Input() set theme(newValue: string) {\n    this.LOG.debug(['WarpViewRawResult'], 'The new value of theme is: ', newValue);\n    if ('dark' === newValue) {\n      this.monacoTheme = 'vs-dark';\n    } else {\n      this.monacoTheme = 'vs';\n    }\n    this.LOG.debug(['WarpViewRawResult'], 'The new value of theme is: ', this.monacoTheme);\n    this._theme = newValue;\n    setTheme(this.monacoTheme);\n  }\n\n  get theme(): string {\n    return this._theme;\n  }\n\n  @Input() set result(newValue: string) {\n    this.loading = true;\n    this._result = newValue;\n    this.LOG.debug(['WarpViewRawResult'], 'The new value of result is: ', newValue);\n    this.buildEditor(this._result || '');\n    this.loading = false;\n  }\n\n  get result(): string {\n    return this._result;\n  }\n\n  @Input('config') set config(config: Config | string) {\n    let conf = (typeof config === 'string') ? JSON.parse(config || '{}') : config || {};\n    this._config = Utils.mergeDeep(this._config, conf);\n    this.LOG.debug(['config'], this._config, conf);\n    if (this.resEd) {\n      this.LOG.debug(['config'], this._config);\n      this.resEd.updateOptions(this.setOptions());\n    }\n  }\n\n  get config(): Config | string {\n    return this._config;\n  }\n\n  @Input() heightLine: number;\n  @Input() heightPx: number;\n\n  loading = false;\n  // tslint:disable-next-line:variable-name\n  _theme = 'light';\n  // tslint:disable-next-line:variable-name\n  _result: string;\n  // tslint:disable-next-line:variable-name\n  _config: Config = {\n    editor: new EditorConfig(),\n    messageClass: '',\n    errorClass: ''\n  };\n  // tslint:disable-next-line:variable-name\n  _debug = false;\n\n  private LOG: Logger;\n\n  private LINE_HEIGHT = 18;\n  private CONTAINER_GUTTER = 10;\n  private resEd: IStandaloneCodeEditor;\n  private monacoTheme = 'vs';\n\n  constructor() {\n    this.LOG = new Logger(WarpViewRawResultComponent, this._debug);\n  }\n\n  ngOnInit() {\n    this._config = Utils.mergeDeep(this._config, this.config);\n    if ('dark' === this.theme) {\n      this.monacoTheme = 'vs-dark';\n    }\n    this.LOG.debug(['ngOnInit'], this.result);\n  }\n\n  buildEditor(json: string) {\n    this.LOG.debug(['buildEditor'], 'buildEditor', json, this._config);\n    this.json = json;\n    if (!this.resEd && json) {\n      this.resEd = create(this.editor.nativeElement, this.setOptions());\n    }\n    if (!!this.resEd) {\n      this.resEd.setValue(json || '');\n    }\n    this.loading = false;\n\n  }\n\n  adjustHeight() {\n    if (this.editor) {\n      const el = this.editor.nativeElement;\n      const codeContainer = el.getElementsByClassName('view-lines')[0] as HTMLElement;\n      const containerHeight = codeContainer.offsetHeight;\n      let prevLineCount = 0;\n      if (!containerHeight) {\n        // dom hasn't finished settling down. wait a bit more.\n        setTimeout(() => this.adjustHeight(), 0);\n      } else {\n        setTimeout(() => {\n          const height =\n            codeContainer.childElementCount > prevLineCount\n              ? codeContainer.offsetHeight // unfold\n              : codeContainer.childElementCount * this.LINE_HEIGHT + this.CONTAINER_GUTTER; // fold\n          prevLineCount = codeContainer.childElementCount;\n          el.style.height = height + 'px';\n          this.resEd.layout();\n        }, 0);\n      }\n    }\n  }\n\n  ngAfterViewInit() {\n    this.LOG.debug(['ngAfterViewInit'], this._result);\n    this.loading = true;\n    this.buildEditor(JSON.stringify(this._result));\n    this.loading = false;\n  }\n\n  setOptions(): IEditorOptions {\n    return {\n      value: '',\n      language: 'json',\n      bracketPairColorization: {enable: true},\n      minimap: {enabled: true},\n      lineHeight: this.LINE_HEIGHT,\n      automaticLayout: true,\n      scrollBeyondLastLine: false,\n      theme: this.monacoTheme,\n      readOnly: !!this._config.editor.rawResultsReadOnly,\n      fixedOverflowWidgets: true,\n      lineNumbers: 'on',\n      wordWrap: 'on',\n      folding: false\n    } as IEditorOptions;\n  }\n}\n","<!--\n  ~  Copyright 2020 SenX S.A.S.\n  ~\n  ~  Licensed under the Apache License, Version 2.0 (the \"License\");\n  ~  you may not use this file except in compliance with the License.\n  ~  You may obtain a copy of the License at\n  ~\n  ~    http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~  Unless required by applicable law or agreed to in writing, software\n  ~  distributed under the License is distributed on an \"AS IS\" BASIS,\n  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~  See the License for the specific language governing permissions and\n  ~  limitations under the License.\n  -->\n\n<div [class]=\"'wrapper ' + _theme\">\n  <div *ngIf=\"loading\" class=\"loader\">\n    <div class=\"spinner\"></div>\n  </div>\n  <div #editor></div>\n</div>\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {GTSLib} from '../../model/gts.lib';\nimport {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {Logger} from '../../model/logger';\nimport {JsonLib} from '../../model/jsonLib';\n\n@Component({\n  selector: 'warpview-image-result',\n  templateUrl: './warp-view-image-result.html',\n  styleUrls: ['./warp-view-image-result.scss'],\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class WarpViewImageResult {\n\n  @Input() set debug(debug: boolean | string) {\n    if (typeof debug === 'string') {\n      debug = 'true' === debug;\n    }\n    this._debug = debug;\n    this.LOG.setDebug(debug);\n  }\n\n  get debug() {\n    return this._debug;\n  }\n\n  @Input() set result(res: string) {\n    this._res = res;\n    this._result = new JsonLib().parse(res || '[]', undefined);\n    this.loading = true;\n    this.LOG.debug(['isArray'], 'The new value of result is: ', res);\n    if (res && this.gtsLib.isArray(this._result)) {\n      this.imageList = this._result.filter((v: any) => {\n        return ((typeof (v) === 'string') && (String(v).startsWith('data:image/png;base64,')));\n      });\n    } else {\n      this.imageList = [];\n    }\n    this.loading = false;\n  }\n\n  get result(): string {\n    return this._res;\n  }\n\n  @Input() set theme(newValue: string) {\n    this._theme = newValue;\n  }\n\n  get theme(): string {\n    return this._theme;\n  }\n\n  @Input() config: object = {};\n\n\n  // tslint:disable-next-line:variable-name\n  _result: any[];\n  _res: string;\n  // tslint:disable-next-line:variable-name\n  _theme = 'light';\n  // tslint:disable-next-line:variable-name\n  _debug = false;\n  loading = false;\n  imageList: string[] = [];\n  private LOG: Logger;\n\n  constructor(private gtsLib: GTSLib) {\n    this.LOG = new Logger(WarpViewImageResult, this._debug);\n  }\n\n  isArray(arr: any) {\n    return this.gtsLib.isArray(arr);\n  }\n}\n","<!--\n  ~  Copyright 2020 SenX S.A.S.\n  ~\n  ~  Licensed under the Apache License, Version 2.0 (the \"License\");\n  ~  you may not use this file except in compliance with the License.\n  ~  You may obtain a copy of the License at\n  ~\n  ~    http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~  Unless required by applicable law or agreed to in writing, software\n  ~  distributed under the License is distributed on an \"AS IS\" BASIS,\n  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~  See the License for the specific language governing permissions and\n  ~  limitations under the License.\n  -->\n<div [class]=\"'wrapper-result ' + _theme\">\n  <div *ngIf=\"_result && isArray(_result)\" [class]=\"_theme + ' image'\">\n    <div *ngFor=\"let img of imageList; let i = index\" class=\"image\"><h2>Image {{i + 1}}</h2>\n      <img [src]=\"img\" alt=\"Image\"/>\n    </div>\n  </div>\n</div>\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n/* tslint:disable:no-string-literal */\nimport {editor, MarkerSeverity, Range} from 'monaco-editor';\nimport {Utils} from '../../model/utils';\nimport {Config} from '../../model/config';\nimport {Logger} from '../../model/logger';\nimport {BubblingEvents} from '../../model/bubblingEvent';\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {HttpClient, HttpErrorResponse, HttpResponse} from '@angular/common/http';\nimport {catchError} from 'rxjs/operators';\nimport {Observable, of, Subscription} from 'rxjs';\nimport {ProviderRegistrar} from './providers/ProviderRegistrar';\nimport {EditorUtils} from './providers/editorUtils';\nimport {createReviewManager, ReviewCommentEvent, ReviewManager, ReviewManagerConfig} from './providers/CodeReview';\nimport dayjs from 'dayjs';\nimport {WarpScriptParser} from '../../model/warpScriptParser';\nimport IStandaloneCodeEditor = editor.IStandaloneCodeEditor;\nimport create = editor.create;\nimport IEditorOptions = editor.IEditorOptions;\nimport IMarkerData = editor.IMarkerData;\n\n@Component({\n  selector: 'warpview-editor',\n  templateUrl: './warp-view-editor.component.html',\n  styleUrls: ['./warp-view-editor.component.scss'],\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class WarpViewEditorComponent implements OnInit, OnDestroy, AfterViewInit {\n  @Input() url = '';\n  @Input() existingComments: ReviewCommentEvent[];\n\n  @Input() set lang(lang: string) {\n    this._lang = lang;\n    if (!!editor && !!this.ed) {\n      editor.setModelLanguage(this.ed.getModel(), this._lang);\n    }\n  }\n\n  get lang(): string {\n    return this._lang;\n  }\n\n  @Input() set debug(debug: boolean | string) {\n    if (typeof debug === 'string') {\n      debug = 'true' === debug;\n    }\n    this._debug = debug;\n    this.LOG.setDebug(debug);\n  }\n\n  get debug() {\n    return this._debug;\n  }\n\n  @Input()\n  set theme(newValue: string) {\n    this.LOG.debug(['themeHandler'], 'The new value of theme is: ', newValue);\n    if ('dark' === newValue) {\n      this.monacoTheme = 'vs-dark';\n    } else {\n      this.monacoTheme = 'vs';\n    }\n    this.LOG.debug(['themeHandler'], 'The new value of theme is: ', this.monacoTheme);\n    this._theme = newValue;\n    if (editor) {\n      editor.setTheme(this.monacoTheme);\n    }\n  }\n\n  get theme(): string {\n    return this._theme;\n  }\n\n  @Input('warpscript')\n  set warpscript(newValue: string) {\n    this.LOG.debug(['warpscriptHandler'], 'The new value of warpscript is: ', newValue);\n    if (this.ed) {\n      this.ed.setValue(newValue);\n    }\n    this._warpscript = newValue;\n    this.loading = false;\n  }\n\n  get warpscript(): string {\n    return this._warpscript;\n  }\n\n  @Input('showDataviz')\n  get showDataviz(): boolean {\n    return this._showDataviz;\n  }\n\n  set showDataviz(value: boolean) {\n    this._showDataviz = '' + value !== 'false';\n  }\n\n  private _showExecute = true;\n  @Input('showExecute')\n  get showExecute(): boolean {\n    return this._showExecute;\n  }\n\n  set showExecute(value: boolean) {\n    this._showExecute = '' + value !== 'false';\n  }\n\n  @Input('showResult')\n  get showResult(): boolean {\n    return this._showResult;\n  }\n\n  set showResult(value: boolean) {\n    this._showResult = '' + value !== 'false';\n  }\n\n  @Input('config') set config(config: Config | string) {\n    let conf = (typeof config === 'string') ? JSON.parse(config || '{}') : config || {};\n    this.innerConfig = Utils.mergeDeep(this.innerConfig, conf);\n    this.LOG.debug(['config'], this.innerConfig, conf);\n    if (this.ed) {\n      this.LOG.debug(['config'], this.innerConfig);\n      this.ed.updateOptions(this.setOptions());\n      if (this.innerConfig.codeReview && !!this.innerConfig.codeReview.enabled) {\n        this.reviewManagerConfig.addButton = this.innerConfig.codeReview.addButton as any;\n        this.reviewManagerConfig.cancelButton = this.innerConfig.codeReview.cancelButton as any;\n        this.reviewManagerConfig.replyButton = this.innerConfig.codeReview.replyButton as any;\n        this.reviewManagerConfig.removeButton = this.innerConfig.codeReview.removeButton as any;\n        this.reviewManager.currentUser = this.innerConfig.codeReview.currentUser;\n        this.reviewManager.setReadOnlyMode(this.innerConfig.codeReview.readonly);\n        this.reviewManagerConfig.editButton = this.innerConfig.codeReview.editButton as any;\n        this.reviewManager.updateConfig(this.reviewManagerConfig);\n      }\n    }\n  }\n\n  get config(): Config | string {\n    return this.innerConfig;\n  }\n\n  @Input('displayMessages')\n  get displayMessages(): boolean {\n    return this._displayMessages;\n  }\n\n  set displayMessages(value: boolean) {\n    this._displayMessages = '' + value !== 'false';\n  }\n\n  @Input('widthPx')\n  get widthPx(): number {\n    return this._widthPx;\n  }\n\n  set widthPx(value: number) {\n    this._widthPx = parseInt('' + value, 10);\n  }\n\n  @Input('heightLine')\n  get heightLine(): number {\n    return this._heightLine;\n  }\n\n  set heightLine(value: number) {\n    this._heightLine = parseInt('' + value, 10);\n  }\n\n  @Input('heightPx')\n  get heightPx(): number {\n    return this._heightPx;\n  }\n\n  set heightPx(value: number) {\n    this._heightPx = parseInt('' + value, 10);\n  }\n\n  @Input('imageTab')\n  get imageTab(): boolean {\n    return this._imageTab;\n  }\n\n  set imageTab(value: boolean) {\n    this._imageTab = '' + value !== 'false';\n  }\n\n  @Input('initialSize')\n  get initialSize(): { w?: number, h?: number, name?: string, p?: number } | string {\n    return this._initialSize;\n  }\n\n  set initialSize(value: { w?: number, h?: number, name?: string, p?: number } | string) {\n    this._initialSize = typeof value === 'string' ? JSON.parse(value) : value;\n  }\n\n  @Output('warpViewEditorStatusEvent') warpViewEditorStatusEvent = new EventEmitter<any>();\n  @Output('warpViewEditorErrorEvent') warpViewEditorErrorEvent = new EventEmitter<any>();\n  @Output('warpViewEditorWarpscriptChanged') warpViewEditorWarpscriptChanged = new EventEmitter<any>();\n  @Output('warpViewEditorWarpscriptResult') warpViewEditorWarpscriptResult = new EventEmitter<any>();\n  @Output('warpViewEditorLoaded') warpViewEditorLoaded = new EventEmitter<any>();\n  @Output('warpViewEditorSize') warpViewEditorSize = new EventEmitter<any>();\n  @Output('warpViewEditorBreakPoint') warpViewEditorBreakPoint = new EventEmitter<any>();\n  @Output('warpViewEditorCtrlClick') warpViewEditorCtrlClick = new EventEmitter<any>();\n  @Output('warpViewEditorDatavizRequested') warpViewEditorDatavizRequested = new EventEmitter<any>();\n  @Output('warpViewEditorCodeReview') warpViewEditorCodeReview = new EventEmitter<any>();\n\n  @ViewChild('wrapper', {static: true}) wrapper: ElementRef<HTMLDivElement>;\n  @ViewChild('editor', {static: true}) editor: ElementRef<HTMLDivElement>;\n  @ViewChild('buttons', {static: true}) buttons: ElementRef<HTMLDivElement>;\n  @ViewChild('content', {static: true}) contentWrapper: ElementRef<HTMLDivElement>;\n\n  result: string;\n  status: { message: string, ops: number, elapsed: number, fetched: number };\n  error: string;\n  loading = false;\n  selectedResultTab = -1;\n  lastKnownWS: string;\n  headers = this.getItems();\n  innerConfig = new Config();\n  // tslint:disable-next-line:variable-name\n  _theme = 'light';\n  // tslint:disable-next-line:variable-name\n  _warpscript: string;\n  // tslint:disable-next-line:variable-name\n  _debug = false;\n  _displayMessages = true;\n  _showDataviz = false;\n  _lang = 'warpscript';\n  reviewManagerConfig: ReviewManagerConfig = {\n    formatDate: (createdAt) => dayjs(createdAt).format('YYYY-MM-DD HH:mm'),\n  };\n  private _heightPx: number;\n  private _heightLine: number;\n  private _showResult = true;\n  private _imageTab = false;\n  private _widthPx: number;\n  private _initialSize: { w?: number, h?: number, name?: string, p?: number };\n  private static MIN_HEIGHT = 250;\n  private LOG: Logger;\n  private ed: IStandaloneCodeEditor;\n  private monacoTheme = 'vs';\n  private innerCode: string;\n  private breakpoints = {};\n  private decoration = [];\n  private previousParentHeight = -1;\n  private previousParentWidth = -1;\n  private request: Subscription;\n  private resizeWatcherInt: any;\n  private reviewManager: ReviewManager;\n\n  constructor(private el: ElementRef, private http: HttpClient) {\n    this.LOG = new Logger(WarpViewEditorComponent, this._debug);\n    (el.nativeElement as any).execute = this.execute.bind(this);\n    (el.nativeElement as any).abort = this.abort.bind(this);\n    (el.nativeElement as any).highlight = this.highlight.bind(this);\n    (el.nativeElement as any).resize = this.resize.bind(this);\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  ngOnInit() {\n    this.LOG.debug(['ngOnInit'], 'innerConfig: ', this.innerConfig);\n    if ('dark' === this._theme) {\n      this.monacoTheme = 'vs-dark';\n    }\n    this.LOG.debug(['ngOnInit'], 'ngOnInit theme is: ', this._theme);\n    (self as any).MonacoEnvironment = {\n      getWorkerUrl: () => URL.createObjectURL(new Blob([`\n\tself.MonacoEnvironment = {\n\t\tbaseUrl: 'https://unpkg.com/monaco-editor@0.18.1/min/'\n\t};\n\timportScripts('https://unpkg.com/monaco-editor@0.18.1/min/vs/base/worker/workerMain.js');\n`], {type: 'text/javascript'}))\n    };\n    ProviderRegistrar.register(this.innerConfig);\n  }\n\n  resizeWatcher() {\n    const editorParentWidth = this.editor.nativeElement.parentElement.clientWidth;\n    const editorParentHeight = this.editor.nativeElement.parentElement.clientHeight\n      - parseInt(window.getComputedStyle(this.editor.nativeElement.parentElement).getPropertyValue('padding-top'), 10)\n      - parseInt(window.getComputedStyle(this.editor.nativeElement.parentElement).getPropertyValue('padding-bottom'), 10);\n\n    let warpviewParentHeight = this.el.nativeElement.parentElement.clientHeight\n      - parseInt(window.getComputedStyle(this.el.nativeElement.parentElement).getPropertyValue('padding-top'), 10)\n      - parseInt(window.getComputedStyle(this.el.nativeElement.parentElement).getPropertyValue('padding-bottom'), 10);\n    warpviewParentHeight = Math.max(warpviewParentHeight, WarpViewEditorComponent.MIN_HEIGHT);\n    // fix the 5px editor height in chrome by setting the wrapper height at element level\n    if (Math.abs(this.wrapper.nativeElement.clientHeight - warpviewParentHeight) > 30) {\n      this.wrapper.nativeElement.style.height = warpviewParentHeight + 'px';\n    }\n    // watch for editor parent' size change\n    if (editorParentHeight !== this.previousParentHeight || editorParentWidth !== this.previousParentWidth) {\n      this.previousParentHeight = editorParentHeight;\n      this.previousParentWidth = editorParentWidth;\n      const editorH = Math.floor(editorParentHeight) - (this.buttons ? this.buttons.nativeElement.clientHeight : 0);\n      const editorW = Math.floor(this.editor.nativeElement.parentElement.clientWidth);\n      this.ed.layout({height: editorH, width: editorW});\n      this.editor.nativeElement.style.overflow = 'hidden';\n    }\n  }\n\n  setOptions(): IEditorOptions {\n    return {\n      quickSuggestionsDelay: this.innerConfig.editor.quickSuggestionsDelay,\n      quickSuggestions: this.innerConfig.editor.quickSuggestions,\n      suggestOnTriggerCharacters: this.innerConfig.editor.quickSuggestions,\n      // monaco auto layout is ok if parent has a fixed size, not 100% or a calc ( % px ) formula.\n      automaticLayout: !!this._heightPx,\n      hover: {enabled: this.innerConfig.hover},\n      readOnly: this.innerConfig.readOnly,\n      contextmenu: true,\n      //  fixedOverflowWidgets: true,\n      folding: true,\n      glyphMargin: this.innerConfig.editor.enableDebug || this.innerConfig.codeReview.enabled\n    };\n  }\n\n  ngAfterViewInit(): void {\n    this.LOG.debug(['ngAfterViewInit'], 'height', this._heightPx);\n    if (!!this._heightPx) {\n      // if height-px is set, size is fixed.\n      this.el.nativeElement.style.height = this._heightPx + 'px';\n      this.wrapper.nativeElement.style.height = this._heightPx + 'px';\n      this.resize(true);\n    } else {\n      // compute the layout manually in a 200ms timer\n      this.resizeWatcherInt = setInterval(this.resizeWatcher.bind(this), 200);\n    }\n    try {\n      this.innerCode = this.contentWrapper.nativeElement.textContent;\n      // add blank lines when needed\n      for (let i = this.innerCode.split('\\n').length; i < this.innerConfig.editor.minLineNumber; i++) {\n        this.innerCode += '\\n';\n      }\n      // trim spaces and line breaks at the beginning (side effect of angular)\n      let firstIndex = 0;\n      while (this.innerCode[firstIndex] === ' ' || this.innerCode[firstIndex] === '\\n') {\n        firstIndex++;\n      }\n      this.innerCode = this.innerCode.substring(firstIndex);\n      this.LOG.debug(['ngAfterViewInit'], 'warpscript', this._warpscript);\n      this.LOG.debug(['ngAfterViewInit'], 'inner: ', this.innerCode.split('\\n'));\n      this.LOG.debug(['ngAfterViewInit'], 'innerConfig: ', this.innerConfig);\n      const edOpts: IEditorOptions = this.setOptions();\n      this.lastKnownWS = this._warpscript || this.innerCode;\n      editor.setTheme(this.monacoTheme);\n      this.LOG.debug(['ngAfterViewInit'], 'edOpts: ', edOpts);\n      this.ed = create(this.editor.nativeElement, edOpts);\n      this.ed.setValue(this.lastKnownWS);\n      editor.setModelLanguage(this.ed.getModel(), this._lang);\n\n      if (this.innerConfig.editor.enableDebug) {\n        this.ed.onMouseDown(e => {\n          if (e.event.leftButton) {\n            if (e.target.type === 2 || e.target.type === 3 || e.target.type === 4) {\n              this.toggleBreakPoint(e.target.position.lineNumber);\n            }\n          }\n        });\n      }\n      this.ed.getModel().updateOptions({tabSize: this.innerConfig.editor.tabSize});\n      if (this.ed) {\n        this.warpViewEditorLoaded.emit('loaded');\n        // angular events does not bubble up outside angular component.\n        BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorLoaded', 'loaded');\n        this.LOG.debug(['ngAfterViewInit'], 'loaded');\n        this.ed.getModel().onDidChangeContent((event) => {\n\n          if (this.lastKnownWS !== this.ed.getValue()) {\n            this.debounce(() => {\n              this.LOG.debug(['ngAfterViewInit'], 'ws changed', event);\n              this.warpViewEditorWarpscriptChanged.emit(this.ed.getValue());\n              BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorWarpscriptChanged', this.ed.getValue());\n              //   this.wsAudit(this.ed.getValue());\n            }, 200)();\n          }\n        });\n        // manage the ctrl click, create an event with the statement, the endpoint, the warpfleet repos.\n        this.ed.onMouseDown(e => {\n          if (e.target.range && ((!this.isMac() && !!e.event.ctrlKey) || (this.isMac() && !!e.event.metaKey))) {\n            // ctrl click on which word ?\n            const name: string = (this.ed.getModel().getWordAtPosition(e.target.range?.getStartPosition()) || {word: undefined}).word;\n            // parse the warpscript\n            const ws: string = this.ed.getValue();\n            const specialHeaders = WarpScriptParser.extractSpecialComments(ws);\n            const repos: string[] = [];\n            const statements: string[] = WarpScriptParser.parseWarpScriptStatements(ws);\n            statements.forEach((st, i) => {\n              if (st === 'WF.ADDREPO' && i > 0) {\n                const previousStatement = statements[i - 1];\n                if (\n                  (previousStatement.startsWith('\"') && previousStatement.endsWith('\"'))\n                  || (previousStatement.startsWith('\\'') && previousStatement.endsWith('\\''))\n                ) {\n                  // this is a valid string.\n                  repos.push(previousStatement.substring(1, previousStatement.length - 1));\n                }\n              }\n            });\n            const docParams = {\n              endpoint: specialHeaders.endpoint || this.url,\n              macroName: name,\n              wfRepos: repos\n            };\n            this.warpViewEditorCtrlClick.emit(docParams);\n            BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorCtrlClick', docParams);\n          }\n          //     this.wsAudit(this.ed.getValue());\n        });\n        if (this.innerConfig.codeReview && !!this.innerConfig.codeReview.enabled) {\n          this.reviewManagerConfig.addButton = this.innerConfig.codeReview.addButton as any;\n          this.reviewManagerConfig.cancelButton = this.innerConfig.codeReview.cancelButton as any;\n          this.reviewManagerConfig.replyButton = this.innerConfig.codeReview.replyButton as any;\n          this.reviewManagerConfig.removeButton = this.innerConfig.codeReview.removeButton as any;\n          this.reviewManagerConfig.editButton = this.innerConfig.codeReview.editButton as any;\n          this.reviewManager = createReviewManager(this.ed, this.innerConfig.codeReview.currentUser,\n            this.existingComments,\n            (updatedComments) => this.warpViewEditorCodeReview.emit(updatedComments),\n            this.reviewManagerConfig);\n          this.reviewManager.setReadOnlyMode(this.innerConfig.codeReview.readonly);\n        }\n      }\n    } catch (e) {\n      this.LOG.error(['ngAfterViewInit'], 'componentDidLoad', e);\n    }\n  }\n\n  ngOnDestroy() {\n    this.LOG.debug(['ngOnDestroy'], 'Component removed from the DOM');\n    if (this.resizeWatcherInt) {\n      clearInterval(this.resizeWatcherInt);\n    }\n    if (this.ed) {\n      this.ed.dispose();\n    }\n    if (this.request) {\n      this.request.unsubscribe();\n    }\n  }\n\n  @Input()\n  public abort(session?: string) {\n    if (this.request) {\n      const specialHeaders = WarpScriptParser.extractSpecialComments(this.ed.getValue());\n      const executionUrl = specialHeaders.endpoint || this.url;\n      // BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorErrorEvent', this.error);\n      if (!!session) {\n        this.http.post<HttpResponse<string>>(executionUrl,\n          `<% '${session}' 'WSKILLSESSION' EVAL %> <% -1 %> <% %> TRY`,\n          {\n            // @ts-ignore\n            observe: 'response',\n            // @ts-ignore\n            responseType: 'text',\n            headers: {\n              ...this.innerConfig.httpHeaders || {},\n              'Accept': 'application/json',\n            }\n          })\n          .pipe(catchError(this.handleError<HttpResponse<string>>(undefined)))\n          .subscribe((res: HttpResponse<string>) => {\n            if (!!res) {\n              this.LOG.debug(['abort'], 'response', res.body);\n              const r = JSON.parse(res.body);\n              if (!!r[0]) {\n                if (r[0] === 0) {\n                  this.sendError('It appears that your Warp 10 is running on multiple backend', executionUrl);\n                } else if (r[0] === -1) {\n                  this.sendError(`Unable to WSABORT on ${executionUrl}. Did you activate StackPSWarpScriptExtension?`, executionUrl);\n                }\n                this.sendStatus({\n                  endpoint: executionUrl,\n                  message: `${WarpViewEditorComponent.getLabel(this._lang)} aborted.`,\n                  ops: parseInt(res.headers.get('x-warp10-ops'), 10),\n                  elapsed: parseInt(res.headers.get('x-warp10-elapsed'), 10),\n                  fetched: parseInt(res.headers.get('x-warp10-fetched'), 10),\n                });\n              } else {\n                this.sendError(`An error occurs for session: ${session}`, executionUrl);\n              }\n            }\n            this.request.unsubscribe();\n            delete this.request;\n            this.loading = false;\n          });\n      } else {\n        this.sendStatus({\n          endpoint: executionUrl,\n          message: `${WarpViewEditorComponent.getLabel(this._lang)} aborted.`,\n          ops: 0,\n          elapsed: 0,\n          fetched: 0,\n        });\n        this.request.unsubscribe();\n        delete this.request;\n        this.loading = false;\n      }\n    }\n  }\n\n  @Input()\n  public highlight(line: number) {\n    const currentKey = 'hl-' + line;\n    Object.keys(this.breakpoints).forEach(k => {\n      if (k.startsWith('hl')) {\n        delete this.breakpoints[k];\n      }\n    });\n    this.breakpoints[currentKey] = {\n      range: new Range(line, 1, line, 1),\n      options: {\n        isWholeLine: true,\n        className: 'warpviewContentClass'\n      }\n    };\n    this.decoration = this.ed.deltaDecorations(this.decoration, Utils.toArray(this.breakpoints));\n  }\n\n  private debounce(func, wait) {\n    let timeout;\n    return function executedFunction(...args) {\n      const later = () => {\n        timeout = null;\n        func(...args);\n      };\n      clearTimeout(timeout);\n      timeout = setTimeout(later, wait);\n    };\n  };\n\n  private toggleBreakPoint(line: number) {\n    const currentKey = 'bp-' + line;\n    if (this.breakpoints[currentKey]) {\n      delete this.breakpoints[currentKey];\n    } else {\n      this.breakpoints[currentKey] = {\n        range: new Range(line, 1, line, 1),\n        options: {\n          isWholeLine: true,\n          glyphMarginClassName: 'warpviewGlyphMarginClass'\n        }\n      };\n    }\n    this.warpViewEditorBreakPoint.emit(this.breakpoints);\n    BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorBreakPoint', this.breakpoints);\n    this.decoration = this.ed.deltaDecorations(this.decoration, Utils.toArray(this.breakpoints));\n  }\n\n  private handleError<T>(result?: T) {\n    return (error: HttpErrorResponse): Observable<T> => {\n      this.LOG.error(['handleError'], {e: error});\n      if (error.status === 0) {\n        this.error = `Unable to reach ${error.url}`;\n      } else {\n        if (error.headers.get('X-Warp10-Error-Message') && error.headers.get('X-Warp10-Error-Line')) {\n          this.error = 'line #' + error.headers.get('X-Warp10-Error-Line') + ': ' + error.headers.get('X-Warp10-Error-Message');\n        } else {\n          this.error = error.statusText;\n        }\n      }\n      this.sendError(this.error, error.url);\n      this.loading = false;\n      return of(error.error);\n    };\n  }\n\n  @Input()\n  public execute(session?, bootstrap?) {\n    if (this.ed) {\n      this.result = undefined;\n      this.status = undefined;\n      this.error = undefined;\n      let code = this.ed.getValue().replace(/ /gi, ' ');\n      if (EditorUtils.FLOWS_LANGUAGE === this.lang) {\n        code = `<'\n${code}\n'>\nFLOWS\n`;\n      }\n      this.LOG.debug(['execute'], 'this.ed.getValue()', session, code);\n      this.loading = true;\n      // parse comments to look for inline url or preview modifiers\n      const specialHeaders = WarpScriptParser.extractSpecialComments(code);\n      const previewType = specialHeaders.displayPreviewOpt ?? 'none';\n      if (previewType === 'I') {\n        this.selectedResultTab = 2; // select image tab.\n      } else if (this.selectedResultTab === 2) {\n        this.selectedResultTab = 0; // on next execution, select results tab.\n      }\n      const executionUrl = specialHeaders.endpoint ?? this.url;\n      this.LOG.debug(['execute'], 'specialHeaders', this.innerConfig.addLocalHeader);\n      // Get Warp10 version\n      // @ts-ignore\n      let headers = {\n        ...this.innerConfig.httpHeaders || {},\n        'Content-Type': 'text/plain;charset=UTF-8'\n      };\n      if (this.innerConfig.addLocalHeader) {\n        headers['Access-Control-Request-Private-Network'] = 'true';\n      }\n      if (!!session) {\n        headers['X-Warp10-WarpScriptSession'] = session;\n      }\n      this.request = this.http.post<HttpResponse<string>>(executionUrl, (!specialHeaders.endpoint && bootstrap ? bootstrap + ' ' : '') + code, {\n        observe: 'response',\n        // @ts-ignore\n        responseType: 'text',\n        headers\n      })\n        .pipe(catchError(this.handleError<HttpResponse<string>>(undefined)))\n        .subscribe((res: HttpResponse<string>) => {\n          if (!!res) {\n            this.LOG.debug(['execute'], 'response', res.body);\n            this.warpViewEditorWarpscriptResult.emit(res.body ?? (res as any));\n            BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorWarpscriptResult', res.body || (res as any));\n            if (!!res.headers) {\n              this.sendStatus({\n                endpoint: executionUrl,\n                message: `Your script execution took\n ${EditorUtils.formatElapsedTime(parseInt(res.headers.get('x-warp10-elapsed'), 10))}\n serverside, fetched\n ${res.headers.get('x-warp10-fetched')} datapoints and performed\n ${res.headers.get('x-warp10-ops')}  ${WarpViewEditorComponent.getLabel(this.lang)} operations.`,\n                ops: parseInt(res.headers.get('x-warp10-ops'), 10),\n                elapsed: parseInt(res.headers.get('x-warp10-elapsed'), 10),\n                fetched: parseInt(res.headers.get('x-warp10-fetched'), 10),\n              });\n            }\n            try {\n              this.LOG.debug(['execute'], 'res', res);\n              this.result = res.body || (res as any);\n            } catch (e) {\n              if (e.name && e.message && e.at && e.text) {\n                this.error = `${e.name}: ${e.message} at char ${e.at} => ${e.text}`;\n              } else {\n                this.error = e.toString();\n              }\n              this.result = res.body;\n              this.LOG.error(['execute 1'], this.error);\n              this.sendError(this.error, executionUrl);\n            }\n          }\n          this.loading = false;\n        });\n    } else {\n      this.loading = false;\n      this.LOG.error(['execute'], 'no active editor');\n    }\n  }\n\n  requestDataviz() {\n    this.warpViewEditorDatavizRequested.emit(this.result);\n    BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorDatavizRequested', this.result);\n  }\n\n  @HostListener('document:resize', ['$event'])\n  @HostListener('resized', ['$event'])\n  onResized($event) {\n    this.LOG.debug(['onResized'], $event.detail.editor);\n    this.warpViewEditorSize.emit($event.detail.editor);\n  }\n\n  isMac() {\n    return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n  }\n\n  onKeyDown($event) {\n    this.LOG.debug(['onKeyDown'], $event);\n    if ((!this.isMac() && !!$event.ctrlKey) || (this.isMac() && !!$event.metaKey)) {\n      Array.from(this.editor.nativeElement.getElementsByClassName('mtk8'))\n        .concat(Array.from(this.editor.nativeElement.getElementsByClassName('mtk22')))\n        .concat(Array.from(this.editor.nativeElement.getElementsByClassName('mtk23')))\n        .forEach(e => {\n          if (!e.textContent.startsWith('$')) {\n            (e as HTMLElement).classList.add('mouseOver');\n          }\n        });\n    }\n  }\n\n  onKeyUp($event) {\n    this.LOG.debug(['onKeyUp'], $event);\n    Array.from(this.editor.nativeElement.getElementsByClassName('mtk8'))\n      .concat(Array.from(this.editor.nativeElement.getElementsByClassName('mtk22')))\n      .concat(Array.from(this.editor.nativeElement.getElementsByClassName('mtk23')))\n      .forEach(e => (e as HTMLElement).classList.remove('mouseOver'));\n  }\n\n  @Input()\n  public resize(initial: boolean) {\n    window.setTimeout(() => {\n      if (initial && (!!this._heightPx)) {\n        this.editor.nativeElement.style.height = `calc(100% - ${this.buttons ?\n          this.buttons.nativeElement.clientHeight\n          : 100}px )`;\n      }\n      if (initial) {\n        this.warpViewEditorLoaded.emit();\n        BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorLoaded', 'loaded');\n        this.LOG.debug(['resize'], 'loaded');\n      }\n    }, initial ? 500 : 100);\n  }\n\n  getItems() {\n    const headers = [];\n    if (this._showResult) {\n      headers.push({name: 'editor', size: this._initialSize ? this._initialSize.p || 50 : 50});\n      headers.push({name: 'result', size: this._initialSize ? 100 - this._initialSize.p || 50 : 50});\n    } else {\n      headers.push({name: 'editor', size: 100});\n    }\n    return headers;\n  }\n\n  responsiveStyle() {\n    return {height: '100%', width: '100%', overflow: 'hidden'};\n  }\n\n  private sendError(error: string, executionUrl: string) {\n    this.error = error;\n    BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorErrorEvent',\n      {error: this.error, endpoint: executionUrl});\n    this.warpViewEditorErrorEvent.emit({error: this.error, endpoint: executionUrl});\n  }\n\n  private sendStatus(status: { elapsed: number; ops: number; message: string; fetched: number, endpoint: string }) {\n    this.status = {...status};\n    BubblingEvents.emitBubblingEvent(this.el, 'warpViewEditorStatusEvent', this.status);\n    this.warpViewEditorStatusEvent.emit(this.status);\n  }\n\n  private static getLabel(lang: string) {\n    switch (lang) {\n      case 'flows':\n        return 'FLoWS';\n      case 'warpscript':\n        return 'WarpScript';\n      default:\n        return 'warpscript';\n    }\n  }\n\n  private wsAudit(ws: string) {\n    const specialHeaders = WarpScriptParser.extractSpecialComments(ws);\n    const executionUrl = specialHeaders.endpoint || this.url;\n    let headers = {\n      ...this.innerConfig.httpHeaders || {},\n      'Content-Type': 'text/plain;charset=UTF-8'\n    };\n    if (this.innerConfig.addLocalHeader) {\n      headers['Access-Control-Request-Private-Network'] = 'true';\n    }\n    this.request = this.http.post<any>(executionUrl,\n      `<% 'WSAUDITMODE' EVAL %> <% %> <% %> TRY\n<% ${ws} %>\n<% 'WSAUDIT' EVAL SWAP DROP %> <% DROP [] %> <% %> TRY`,\n      {headers})\n      .subscribe(res => {\n        if (!!res) {\n          const tokenizedWS = ws.split('\\n').map(l => l.split(' '));\n          const parsed = WarpScriptParser.parseWarpScriptStatements(ws, true);\n          let markers = (res[0] || []).map(err => {\n            const l = err.line;\n\n            let j = 0;\n            let firstChar = tokenizedWS[l - 1][j];\n            let c = firstChar === '' ? 0 : 1;\n            while (firstChar === '') {\n              c += 1;\n              firstChar = tokenizedWS[l - 1][j++];\n            }\n            for (let i = 0; i < err.position; i++) {\n              c += tokenizedWS[l - 1][i].length + 1;\n            }\n            return {\n              startLineNumber: l,\n              endLineNumber: l,\n              startColumn: c,\n              endColumn: c + err.statement.length,\n              message: this.getMessage(err.type),\n              severity: MarkerSeverity.Error\n            } as IMarkerData;\n          });\n          editor.setModelMarkers(this.ed.getModel(), 'owner', markers);\n        }\n      });\n  }\n\n  private getMessage(type: string) {\n    switch (type) {\n      case 'UNKNOWN':\n        return 'Unknown function';\n      case 'WS_EXCEPTION':\n        return 'WarpScript Exception';\n    }\n    return '';\n  }\n}\n","<!--\n  ~  Copyright 2020 SenX S.A.S.\n  ~\n  ~  Licensed under the Apache License, Version 2.0 (the \"License\");\n  ~  you may not use this file except in compliance with the License.\n  ~  You may obtain a copy of the License at\n  ~\n  ~    http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~  Unless required by applicable law or agreed to in writing, software\n  ~  distributed under the License is distributed on an \"AS IS\" BASIS,\n  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~  See the License for the specific language governing permissions and\n  ~  limitations under the License.\n  -->\n<div [class]=\"'warp-view-editor wrapper-main ' + _theme\" #wrapper >\n  <div class=\"warpscript\" #content>\n    <ng-content ngProjectAs=\"input\"></ng-content>\n  </div>\n  <div class=\"loader\" *ngIf=\"loading\">\n    <div class=\"spinner\"></div>\n  </div>\n  <!--suppress AngularUndefinedBinding -->\n  <wc-split [items]=\"getItems()\" style=\"height: 100%\" min-height=\"250\">\n    <div slot=\"editor\" class=\"editor-wrapper\" style=\"height: 100%; position: relative\">\n      <div #editor (keydown)=\"onKeyDown($event)\" (keyup)=\"onKeyUp($event)\"></div>\n      <div [class]=\"'warpview-buttons ' + innerConfig.buttons.class\" #buttons>\n        <button type='button' [class]=\"innerConfig.datavizButton.class\"\n                *ngIf=\"showDataviz && result\"\n                (click)=\"requestDataviz()\" [innerHTML]=\"innerConfig.datavizButton.label\">\n        </button>\n        <button type='button' [class]=\"innerConfig.execButton.class\"\n                *ngIf=\"showExecute\"\n                (click)=\"execute()\" [innerHTML]=\"innerConfig.execButton.label\"></button>\n        <div class='messages' *ngIf=\"error || result || status\">\n          <div *ngIf=\"status && _displayMessages\" [attr.class]=\"innerConfig.messageClass\" [innerHTML]=\"status.message\"></div>\n          <div *ngIf=\"error && _displayMessages\" [attr.class]=\"innerConfig.errorClass\" [innerHTML]=\"error\"></div>\n        </div>\n      </div>\n    </div>\n    <div slot=\"result\" *ngIf=\"showResult\" style=\"height: 100%\">\n      <!--suppress AngularUndefinedBinding -->\n      <wc-tabs class='wctabs' [selection]=\"selectedResultTab\" style=\"height: 100%\">\n        <wc-tabs-header slot='header' name='tab1'>Results</wc-tabs-header>\n        <wc-tabs-header slot='header' name='tab2'>Raw JSON</wc-tabs-header>\n\n        <wc-tabs-header slot='header' name='tab3' *ngIf=\"imageTab\">Images</wc-tabs-header>\n\n        <wc-tabs-content slot='content' name='tab1'>\n          <div class=\"tab-wrapper\">\n            <warpview-result [theme]=\"theme\" [result]=\"result\" [config]='innerConfig'></warpview-result>\n          </div>\n        </wc-tabs-content>\n\n        <!--suppress AngularUndefinedBinding -->\n        <wc-tabs-content slot='content' name='tab2' [responsive]=\"true\">\n          <div class=\"tab-wrapper\" [ngStyle]=\"responsiveStyle()\">\n            <warpview-raw-result [theme]=\"theme\" [result]=\"result\" [config]=\"innerConfig\" [debug]=\"debug\"></warpview-raw-result>\n          </div>\n        </wc-tabs-content>\n\n        <wc-tabs-content slot='content' name='tab3' *ngIf=\"imageTab\">\n          <div class=\"tab-wrapper\">\n            <warpview-image-result [theme]=\"theme\" [result]=\"result\" [config]=\"innerConfig\" [debug]=\"_debug\"></warpview-image-result>\n          </div>\n        </wc-tabs-content>\n\n      </wc-tabs>\n    </div>\n  </wc-split>\n</div>\n","/*\n *  Copyright 2020-2022 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nimport {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\nimport {FormsModule} from '@angular/forms';\nimport {WarpViewEditorComponent} from './elements/warp-view-editor/warp-view-editor.component';\nimport {WarpViewImageResult} from './elements/warp-view-image-result/warp-view-image-result';\nimport {WarpViewRawResultComponent} from './elements/warp-view-raw-result/warp-view-raw-result.component';\nimport {WarpViewResult} from './elements/warp-view-result/warp-view-result';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {GTSLib} from './model/gts.lib';\n\n@NgModule({\n    declarations: [\n        WarpViewEditorComponent,\n        WarpViewImageResult,\n        WarpViewResult,\n        WarpViewRawResultComponent\n    ],\n    imports: [\n        CommonModule,\n        BrowserModule,\n        HttpClientModule,\n        FormsModule\n    ],\n    exports: [\n        WarpViewEditorComponent,\n        WarpViewImageResult,\n        WarpViewResult,\n        WarpViewRawResultComponent\n    ],\n    providers: [GTSLib],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class WarpViewEditorAngularModule {\n}\n","/*\n *  Copyright 2020 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\nexport class ButtonConfig {\n  class?: string;\n  label?: string;\n}\n","/*\n *  Copyright 2020-2022 SenX S.A.S.\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *    http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n/*\n * Public API Surface of warpview-editor-ng\n */\n\nexport {WarpViewEditorComponent} from './src/lib/elements/warp-view-editor/warp-view-editor.component';\nexport {WarpViewImageResult} from './src/lib/elements/warp-view-image-result/warp-view-image-result';\nexport {WarpViewResult} from './src/lib/elements/warp-view-result/warp-view-result';\nexport {WarpViewRawResultComponent} from './src/lib/elements/warp-view-raw-result/warp-view-raw-result.component';\n\nexport * from './src/lib/warp-view-editor-angular.module';\nexport {Config} from './src/lib/model/config';\nexport {ButtonConfig} from './src/lib/model/buttonConfig';\nexport {EditorConfig} from './src/lib/model/editorConfig';\nexport {ReviewCommentEvent} from './src/lib/elements/warp-view-editor/providers/events-comments-reducers';\nexport {WarpScriptParser} from './src/lib/model/warpScriptParser';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["snippets","IndentAction","globalfunctions","wsGlobals","flowsGlobals","i1.GTSLib","create","i1","i2.WarpViewResult","i3.WarpViewRawResultComponent","i4.WarpViewImageResult","i5"],"mappings":"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"}