var searchData=
[
  ['cachedop',['CachedOp',['../classmxnet_1_1Imperative_1_1CachedOp.html#a9453deca15713fd860541007f2eecd00',1,'mxnet::Imperative::CachedOp']]],
  ['cast',['Cast',['../namespacemxnet_1_1cpp.html#a94162c291a79b5ecaa19f88acce92b84',1,'mxnet::cpp::Cast(const std::string &amp;symbol_name, Symbol data, CastDtype dtype)'],['../namespacemxnet_1_1cpp.html#a84aa19568d46821fa363c07d4693543f',1,'mxnet::cpp::Cast(Symbol data, CastDtype dtype)']]],
  ['cast_5fstorage',['cast_storage',['../namespacemxnet_1_1cpp.html#ae071452dc28d12aeb785c9b94d8f83d8',1,'mxnet::cpp::cast_storage(const std::string &amp;symbol_name, Symbol data, Cast_storageStype stype)'],['../namespacemxnet_1_1cpp.html#a11465bdfd897d56e7f3452e442393f92',1,'mxnet::cpp::cast_storage(Symbol data, Cast_storageStype stype)']]],
  ['castnondefaultstorage',['CastNonDefaultStorage',['../namespacemxnet_1_1common.html#a12f6653ed0571a1bc16afdfcf525c841',1,'mxnet::common']]],
  ['caststoragedispatch',['CastStorageDispatch',['../namespacemxnet_1_1common.html#afd53ea405dcc105e6b306148009ff827',1,'mxnet::common']]],
  ['cbrt',['cbrt',['../namespacemxnet_1_1cpp.html#ade9a6900e4402ff2d60530060400dd72',1,'mxnet::cpp::cbrt(const std::string &amp;symbol_name, Symbol data)'],['../namespacemxnet_1_1cpp.html#a34848991e9ca10bcc8e952eafdf68c5a',1,'mxnet::cpp::cbrt(Symbol data)']]],
  ['ceil',['ceil',['../namespacemxnet_1_1cpp.html#a59b0f43135f5642458c3952410abdb9e',1,'mxnet::cpp::ceil(const std::string &amp;symbol_name, Symbol data)'],['../namespacemxnet_1_1cpp.html#a1d09981c1d29d06094f0375bf359c611',1,'mxnet::cpp::ceil(Symbol data)']]],
  ['check',['Check',['../classdmlc_1_1parameter_1_1FieldEntry_3_01mxnet_1_1TShape_01_4.html#a63affafc149cac4c39702c55cf94fdcf',1,'dmlc::parameter::FieldEntry&lt; mxnet::TShape &gt;']]],
  ['check_5fname',['check_name',['../structmxnet_1_1OperatorPropertyReg.html#ad959fdbefb6dd807ee1961a2fec7a038',1,'mxnet::OperatorPropertyReg']]],
  ['checkandalloc',['CheckAndAlloc',['../classmxnet_1_1NDArray.html#a35c2a2c797f601fbc5d560481b11720a',1,'mxnet::NDArray::CheckAndAlloc() const '],['../classmxnet_1_1NDArray.html#a557fe59b005fc7040db02882b12c3ff5',1,'mxnet::NDArray::CheckAndAlloc(const std::vector&lt; TShape &gt; &amp;aux_shapes) const ']]],
  ['checkandallocauxdata',['CheckAndAllocAuxData',['../classmxnet_1_1NDArray.html#a15809565dc2e38b3a8f62226b086fd29',1,'mxnet::NDArray']]],
  ['checkandallocdata',['CheckAndAllocData',['../classmxnet_1_1NDArray.html#adcccfd3a4e7a334274677dfc0748d8fe',1,'mxnet::NDArray']]],
  ['checkcontiguous',['CheckContiguous',['../classmxnet_1_1TBlob.html#aa6cfdf8823a601602b6b56011af4b874',1,'mxnet::TBlob']]],
  ['checkformatcsrimpl',['CheckFormatCSRImpl',['../namespacemxnet_1_1common.html#a6baaba1469561220a2484be92cc77aae',1,'mxnet::common']]],
  ['checkformatimpl',['CheckFormatImpl',['../namespacemxnet_1_1common.html#aad9a34663862df90d3aa8683a2d9052a',1,'mxnet::common']]],
  ['checkformatrspimpl',['CheckFormatRSPImpl',['../namespacemxnet_1_1common.html#afd045f69bce37692fd1e8ccb0e2ab208',1,'mxnet::common']]],
  ['checkformatwrapper',['CheckFormatWrapper',['../namespacemxnet_1_1common.html#a98fda469aba84baa370e81e94c7d5b0b',1,'mxnet::common']]],
  ['checklabelshapes',['CheckLabelShapes',['../classmxnet_1_1cpp_1_1EvalMetric.html#a624ac9ba2f3b6e9ecadc352321f88065',1,'mxnet::cpp::EvalMetric']]],
  ['choose_5felement_5f0index',['choose_element_0index',['../namespacemxnet_1_1cpp.html#a633ba7fbface59da4f043148847c2c9e',1,'mxnet::cpp::choose_element_0index(const std::string &amp;symbol_name, Symbol lhs, Symbol rhs)'],['../namespacemxnet_1_1cpp.html#a4fe1a7bf6c9b53bde75dc23cb36853e7',1,'mxnet::cpp::choose_element_0index(Symbol lhs, Symbol rhs)']]],
  ['clear',['Clear',['../classmxnet_1_1Imperative_1_1AGInfo.html#ac1285664cc551c266fdc506fa8f8e8ad',1,'mxnet::Imperative::AGInfo::Clear()'],['../classmxnet_1_1common_1_1LazyAllocArray.html#a3af1ab75feb0ba07db5af7e6ef5717b1',1,'mxnet::common::LazyAllocArray::Clear()']]],
  ['clip',['clip',['../namespacemxnet_1_1cpp.html#a27262dd0794c017d77f20fab5d9fe715',1,'mxnet::cpp::clip(const std::string &amp;symbol_name, Symbol data, mx_float a_min, mx_float a_max)'],['../namespacemxnet_1_1cpp.html#a82601afa30b710cc1b184f9819c3cc4e',1,'mxnet::cpp::clip(Symbol data, mx_float a_min, mx_float a_max)']]],
  ['computecapabilitymajor',['ComputeCapabilityMajor',['../cuda__utils_8h.html#aa79f548df23452162de37663f171e99d',1,'cuda_utils.h']]],
  ['computecapabilityminor',['ComputeCapabilityMinor',['../cuda__utils_8h.html#a7c16e8770e4f399cabed1fc231ffd9b6',1,'cuda_utils.h']]],
  ['concat',['Concat',['../namespacemxnet_1_1cpp.html#a58ec45705c88219a949dd3dfb11ce058',1,'mxnet::cpp::Concat(const std::string &amp;symbol_name, const std::vector&lt; Symbol &gt; &amp;data, int num_args, int dim=1)'],['../namespacemxnet_1_1cpp.html#a44eb74174eaae169df46a0594eeb1b08',1,'mxnet::cpp::Concat(const std::vector&lt; Symbol &gt; &amp;data, int num_args, int dim=1)']]],
  ['constant',['Constant',['../classmxnet_1_1cpp_1_1Constant.html#aff629edf7a1fbc9102c5dd30ef26eec1',1,'mxnet::cpp::Constant']]],
  ['containsonlystorage',['ContainsOnlyStorage',['../namespacemxnet_1_1common.html#a2258092ce26805c0a8f65a4144c446dd',1,'mxnet::common::ContainsOnlyStorage(const StorageTypeVector &amp;vstorage, const NDArrayStorageType stype)'],['../namespacemxnet_1_1common.html#a10765e03ef091a5dd81b1b3efa4b46f4',1,'mxnet::common::ContainsOnlyStorage(const StorageTypeVector &amp;vstorage, const NDArrayStorageType stype1, const NDArrayStorageType stype2, bool *has_both)'],['../namespacemxnet_1_1common.html#a9a7d1b47adce6f8291db8c3106087b90',1,'mxnet::common::ContainsOnlyStorage(const std::vector&lt; NDArray &gt; &amp;ndarrays, const NDArrayStorageType stype)'],['../namespacemxnet_1_1common.html#a4d39ea49a4b4c2aefdd106ffd2ec9a11',1,'mxnet::common::ContainsOnlyStorage(const std::vector&lt; NDArray &gt; &amp;ndarrays, const NDArrayStorageType stype1, const NDArrayStorageType stype2, bool *has_both)']]],
  ['context',['Context',['../structmxnet_1_1Context.html#a290642a21363bef82bcb32cf7f98b884',1,'mxnet::Context::Context()'],['../classmxnet_1_1cpp_1_1Context.html#a54525e6f30f0239107fb23578ba042d8',1,'mxnet::cpp::Context::Context()']]],
  ['convolution',['Convolution',['../namespacemxnet_1_1cpp.html#a1ad654fc47d82ee0f1c5ae172d29b1f6',1,'mxnet::cpp::Convolution(const std::string &amp;symbol_name, Symbol data, Symbol weight, Symbol bias, Shape kernel, uint32_t num_filter, Shape stride=Shape(), Shape dilate=Shape(), Shape pad=Shape(), uint32_t num_group=1, uint64_t workspace=1024, bool no_bias=false, ConvolutionCudnnTune cudnn_tune=ConvolutionCudnnTune::kNone, bool cudnn_off=false, ConvolutionLayout layout=ConvolutionLayout::kNone)'],['../namespacemxnet_1_1cpp.html#a6fee92325f3980187796296454894020',1,'mxnet::cpp::Convolution(Symbol data, Symbol weight, Symbol bias, Shape kernel, uint32_t num_filter, Shape stride=Shape(), Shape dilate=Shape(), Shape pad=Shape(), uint32_t num_group=1, uint64_t workspace=1024, bool no_bias=false, ConvolutionCudnnTune cudnn_tune=ConvolutionCudnnTune::kNone, bool cudnn_off=false, ConvolutionLayout layout=ConvolutionLayout::kNone)']]],
  ['convolution_5fv1',['Convolution_v1',['../namespacemxnet_1_1cpp.html#abb9c18ff76114a00e17e147da71ef75b',1,'mxnet::cpp::Convolution_v1(const std::string &amp;symbol_name, Symbol data, Symbol weight, Symbol bias, Shape kernel, uint32_t num_filter, Shape stride=Shape(), Shape dilate=Shape(), Shape pad=Shape(), uint32_t num_group=1, uint64_t workspace=1024, bool no_bias=false, Convolution_v1CudnnTune cudnn_tune=Convolution_v1CudnnTune::kNone, bool cudnn_off=false, Convolution_v1Layout layout=Convolution_v1Layout::kNone)'],['../namespacemxnet_1_1cpp.html#a872ee945307a72ef57b9946958b26e9b',1,'mxnet::cpp::Convolution_v1(Symbol data, Symbol weight, Symbol bias, Shape kernel, uint32_t num_filter, Shape stride=Shape(), Shape dilate=Shape(), Shape pad=Shape(), uint32_t num_group=1, uint64_t workspace=1024, bool no_bias=false, Convolution_v1CudnnTune cudnn_tune=Convolution_v1CudnnTune::kNone, bool cudnn_off=false, Convolution_v1Layout layout=Convolution_v1Layout::kNone)']]],
  ['copy',['Copy',['../classmxnet_1_1NDArray.html#a4a00e2868ad8b9ccb0a48079635b110f',1,'mxnet::NDArray::Copy()'],['../classmxnet_1_1OperatorProperty.html#ab38f2f877555ba34b548efd2575cac99',1,'mxnet::OperatorProperty::Copy()'],['../classmxnet_1_1cpp_1_1NDArray.html#a2c2a204a1178f4804340270c0fb92240',1,'mxnet::cpp::NDArray::Copy()'],['../classmxnet_1_1cpp_1_1Symbol.html#ac368ebd3d4167aac06b937b5bf800a22',1,'mxnet::cpp::Symbol::Copy()']]],
  ['copyfrom',['CopyFrom',['../structmxnet_1_1cpp_1_1Shape.html#a2c82429ac9f09103642649f3c4e45970',1,'mxnet::cpp::Shape']]],
  ['copyfromto',['CopyFromTo',['../namespacemxnet.html#ae7b0809624683afc59b6d7f7784d8bfb',1,'mxnet::CopyFromTo(const NDArray &amp;from, const NDArray *to, int priority=0)'],['../namespacemxnet.html#aa005a02aac4f297b6fab561e907e89e3',1,'mxnet::CopyFromTo(const NDArray &amp;from, const NDArray &amp;to, int priority=0)']]],
  ['copyto',['CopyTo',['../classmxnet_1_1cpp_1_1NDArray.html#aa47cddee16afaa55fc0d05aed2061176',1,'mxnet::cpp::NDArray']]],
  ['correlation',['Correlation',['../namespacemxnet_1_1cpp.html#a84d2bda6af522d5cf84cf54b74c5aaac',1,'mxnet::cpp::Correlation(const std::string &amp;symbol_name, Symbol data1, Symbol data2, uint32_t kernel_size=1, uint32_t max_displacement=1, uint32_t stride1=1, uint32_t stride2=1, uint32_t pad_size=0, bool is_multiply=true)'],['../namespacemxnet_1_1cpp.html#ad9c0c80b7c1aa1d5728d5cddf267a210',1,'mxnet::cpp::Correlation(Symbol data1, Symbol data2, uint32_t kernel_size=1, uint32_t max_displacement=1, uint32_t stride1=1, uint32_t stride2=1, uint32_t pad_size=0, bool is_multiply=true)']]],
  ['cos',['cos',['../namespacemxnet_1_1cpp.html#a27d67a7fa628351ad6c11cb0a72b2cfb',1,'mxnet::cpp::cos(const std::string &amp;symbol_name, Symbol data)'],['../namespacemxnet_1_1cpp.html#af6bfbb4921ebbb4ad15349ddffa1142a',1,'mxnet::cpp::cos(Symbol data)']]],
  ['cosh',['cosh',['../namespacemxnet_1_1cpp.html#a1447e9ca11b50f9692c5fe4d12dd89e8',1,'mxnet::cpp::cosh(const std::string &amp;symbol_name, Symbol data)'],['../namespacemxnet_1_1cpp.html#ad767ecc1945ee3167f06956973bd44e2',1,'mxnet::cpp::cosh(Symbol data)']]],
  ['cpu',['cpu',['../classmxnet_1_1cpp_1_1Context.html#a65ef083b6e4901816b69aa18e5bfe80e',1,'mxnet::cpp::Context::cpu()'],['../structmxnet_1_1Context.html#a4bb231d70623fde216de51589347e513',1,'mxnet::Context::CPU()']]],
  ['cpupinned',['CPUPinned',['../structmxnet_1_1Context.html#a420d4e662a5129b202507f42c991391c',1,'mxnet::Context']]],
  ['cpushared',['CPUShared',['../structmxnet_1_1Context.html#a8e090b1fcc96b682512bcc22fc521f80',1,'mxnet::Context']]],
  ['create',['Create',['../structmxnet_1_1Context.html#a7cea13406ae21ae557d3455f54670a4a',1,'mxnet::Context::Create()'],['../classmxnet_1_1Imperative_1_1AGInfo.html#a8204823e44c4b44b08c276bddfcbb952',1,'mxnet::Imperative::AGInfo::Create()'],['../classmxnet_1_1KVStore.html#a6d54b075d3b43577f8339b25000a0c82',1,'mxnet::KVStore::Create()'],['../classmxnet_1_1OpStatePtr.html#ae0f821c7efce61a11730ef8b93070e3e',1,'mxnet::OpStatePtr::Create()'],['../classmxnet_1_1OperatorProperty.html#a15cf1f905b08a008ff38556ef6a35dd0',1,'mxnet::OperatorProperty::Create()'],['../classmxnet_1_1cpp_1_1FeedForward.html#a74e266c9a241e2e61804d84e03035641',1,'mxnet::cpp::FeedForward::Create()']]],
  ['createcallback',['CreateCallback',['../classmxnet_1_1Engine.html#acf25be815b4200b48ee6e4e169bf95b8',1,'mxnet::Engine']]],
  ['createdataiter',['CreateDataIter',['../classmxnet_1_1cpp_1_1MXDataIter.html#a450ae84c43be154f94df7bf3bffc307e',1,'mxnet::cpp::MXDataIter']]],
  ['createoperator',['CreateOperator',['../classmxnet_1_1OperatorProperty.html#a546ab25ddaae590ca98705ae9abc7ac0',1,'mxnet::OperatorProperty']]],
  ['createoperatorex',['CreateOperatorEx',['../classmxnet_1_1OperatorProperty.html#a7985004f99a931b4a6ff69df733bae72',1,'mxnet::OperatorProperty']]],
  ['createstate_5f',['CreateState_',['../classmxnet_1_1cpp_1_1Optimizer.html#a31606655261991fa067ee7198999151f',1,'mxnet::cpp::Optimizer']]],
  ['createsymbol',['CreateSymbol',['../classmxnet_1_1cpp_1_1Operator.html#a52943207a5d771a32f7e1a861e34d0e3',1,'mxnet::cpp::Operator']]],
  ['crop',['Crop',['../namespacemxnet_1_1cpp.html#a39f7204c05fea075591fe9aa424d95aa',1,'mxnet::cpp::Crop(const std::string &amp;symbol_name, const std::vector&lt; Symbol &gt; &amp;data, int num_args, Shape offset=Shape(0, 0), Shape h_w=Shape(0, 0), bool center_crop=false)'],['../namespacemxnet_1_1cpp.html#a15aac6f62d48528ff0e41eeac0912327',1,'mxnet::cpp::Crop(const std::vector&lt; Symbol &gt; &amp;data, int num_args, Shape offset=Shape(0, 0), Shape h_w=Shape(0, 0), bool center_crop=false)'],['../namespacemxnet_1_1cpp.html#a442bf3433dca1839065262e06fa7bf57',1,'mxnet::cpp::Crop(const std::string &amp;symbol_name, int num_args, Symbol data, Symbol crop_like, Shape offset=Shape(0, 0), Shape h_w=Shape(0, 0), bool center_crop=false)']]],
  ['ctx',['ctx',['../classmxnet_1_1NDArray.html#a5e2eb64751872f537ae3cb25f949fff1',1,'mxnet::NDArray']]],
  ['cublasgeterrorstring',['CublasGetErrorString',['../namespacemxnet_1_1common_1_1cuda.html#a9feee613a4f16a954dd68e55345a72ac',1,'mxnet::common::cuda']]],
  ['cudamax',['CudaMax',['../namespacemxnet_1_1common_1_1cuda.html#a6f3ee04eb382c57e10916108db3efd80',1,'mxnet::common::cuda']]],
  ['cudamin',['CudaMin',['../namespacemxnet_1_1common_1_1cuda.html#a03888f252f813f6d052ae84bf8801498',1,'mxnet::common::cuda']]],
  ['curandgeterrorstring',['CurandGetErrorString',['../namespacemxnet_1_1common_1_1cuda.html#a97c06b2f4d26445a7386b0f54fae1feb',1,'mxnet::common::cuda']]],
  ['cusolvergeterrorstring',['CusolverGetErrorString',['../namespacemxnet_1_1common_1_1cuda.html#abf9bcb4cb696e9ae61b818510dac39c8',1,'mxnet::common::cuda']]],
  ['custom',['Custom',['../namespacemxnet_1_1cpp.html#aa4569bf622fc0b5109a958998451d785',1,'mxnet::cpp::Custom(const std::string &amp;symbol_name, const std::vector&lt; Symbol &gt; &amp;data, const std::string &amp;op_type)'],['../namespacemxnet_1_1cpp.html#a7667f538b000216fade42cb15ba39a8f',1,'mxnet::cpp::Custom(const std::vector&lt; Symbol &gt; &amp;data, const std::string &amp;op_type)']]]
];
