{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schema.rtemis.org/decomposition/ica/v1/schema.json",
  "title": "rtemis ICAConfig",
  "description": "Independent Component Analysis. See setup_ICA.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "k": {
      "type": "integer",
      "minimum": 1,
      "default": 3,
      "description": "Number of components to extract."
    },
    "type": {
      "type": "string",
      "enum": ["parallel", "deflation"],
      "default": "parallel",
      "description": "Component extraction scheme."
    },
    "fun": {
      "type": "string",
      "enum": ["logcosh", "exp"],
      "default": "logcosh",
      "description": "Functional form of the approximation to neg-entropy."
    },
    "alpha": {
      "type": "number",
      "minimum": 1,
      "maximum": 2,
      "default": 1,
      "description": "Used with `fun = \"logcosh\"`."
    },
    "row_norm": {
      "type": "boolean",
      "default": true,
      "description": "Normalize rows of the input before ICA."
    },
    "maxit": {
      "type": "integer",
      "minimum": 1,
      "default": 100,
      "description": "Maximum number of iterations."
    },
    "tol": {
      "type": "number",
      "minimum": 0,
      "default": 0.0001,
      "description": "Convergence tolerance."
    }
  }
}
