# Options

## atc_Options

struct atc_options

  C equivalent of `atc::Options`. In order to create an `atc_options` struct with default values, do not use the default constructor. Instead, use the global constant `ATC_OPTIONS_DEFAULT`.

  Public Members

  bool verbose
  bool suppress_warnings
  bool timings
  int threads
  atc_storage_order storage_order
  atc_float_type float_type
  size_t skip_bytes
  atc_error_metric error_metric
  bool apply_dct
  double dct_truncation_max_sse_share
  double rank_truncation_max_sse_share
  uint8_t *mode_processing_order

    If not null, assumed to be an array of length `modes`.

  bool precise_svd
  bool print_squared_singular_values
  bool householder
  atc_int_type int_type
  atc_core_flattening core_flattening
  uint8_t *mode_storage_order

    If not null, assumed to be an array of length `modes`.

  size_t quantization_blocks
  size_t last_pass_max_threads
  double quantization_rel_error_margin
  bool split_bitplane_truncation
  atc_entropy_coding_method entropy_coding_method
  size_t cutout_length
  atc_slice *cutout

    An array of length `cutout_length`.

  bool autocrop
  double autocrop_threshold
  bool calculate_error

## ATC_OPTIONS_DEFAULT

const atc_options ATC_OPTIONS_DEFAULT

  Constant which serves as a prototype for new `atc_options` structs, with all fields initialized to the default values corresponding to those of `atc::Options`.

## Enums

enum atc_storage_order

  C equivalent of `atc::StorageOrder`.

  Values:

  enumerator ATC_MSI
  enumerator ATC_LSI

enum atc_float_type

  C equivalent of `atc::FloatType`.

  Values:

  enumerator ATC_FLOAT_TYPE_FLOAT32
  enumerator ATC_FLOAT_TYPE_FLOAT64

enum atc_error_metric

  C equivalent of `atc::ErrorMetric`.

  Values:

  enumerator ATC_RELATIVE_ERROR
  enumerator ATC_RMSE
  enumerator ATC_PSNR

enum atc_int_type

  C equivalent of `atc::IntType`.

  Values:

  enumerator ATC_INT_TYPE_UINT32
  enumerator ATC_INT_TYPE_UINT64

enum atc_core_flattening

  C equivalent of `atc::CoreFlattening`.

  Values:

  enumerator ATC_UNFOLD
  enumerator ATC_ZIGZAG
  enumerator ATC_ZORDER

enum atc_entropy_coding_method

  C equivalent of `atc::EntropyCodingMethod`.

  Values:

  enumerator ATC_ARITHMETIC
  enumerator ATC_ANS

## Slicing

struct atc_slice

  C equivalent of `atc::Slice`. If `description` is `NULL`, the `atc::Slice` object will be constructed from the parameters `start`, `stop`, `step` and `reduction`. Otherwise, it will be constructed from the `description` string.

  Public Members

  int64_t start
  int64_t stop
  int64_t step
  atc_reduction reduction
  char *description

const int64_t ATC_SLICE_UNDEFINED

  C equivalent of `atc::Slice::UNDEFINED`.

const atc_slice ATC_SLICE_DEFAULT

  Constant which serves as a prototype for new `atc_slice` structs, with all fields initialized to the default values corresponding to those of a default `atc::Slice` object.

enum atc_reduction

  C equivalent of `atc::Reduction`.

  Values:

  enumerator ATC_DOWNSAMPLING
  enumerator ATC_BOX
  enumerator ATC_LANCZOS