class_docstr: An outcome transform representing the chaining of individual transforms
docstr: A `ChainedOutcomeTransform` is linear only if all of the component transforms
  are linear.
docstr_tok: ["A","`","ChainedOutcomeTransform","`","is","linear","only","if","all","of","the","component","transforms","are","linear","."]
code: def _is_linear(self) -> bool:
      """
      A `ChainedOutcomeTransform` is linear only if all of the component transforms
      are linear.
      """
      return all((octf._is_linear for octf in self.values()))
  
imports: from __future__ import annotations
  import warnings
  from abc import ABC, abstractmethod
  from collections import OrderedDict
  from typing import Any, List, Mapping, Optional, Tuple, Union
  import torch
  from botorch.models.transforms.utils import norm_to_lognorm_mean, norm_to_lognorm_variance
  from botorch.posteriors import GPyTorchPosterior, Posterior, TransformedPosterior
  from botorch.utils.transforms import normalize_indices
  from linear_operator.operators import CholLinearOperator, DiagLinearOperator
  from torch import Tensor
  from torch.nn import Module, ModuleDict
label_desc: Use image node_id 5 for calling the ChainedOutcomeTransform obj's underlying member method code with example usage: obj._is_linear() and returns: all