@interface GradientBuffer : NSObject { BOOL _isSparse; struct vector> { float *__begin_; float *__end_; struct __compressed_pair> { float *__value_; } __end_cap_; } _data; struct unordered_map, std::equal_to, std::allocator>> { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _sparseData; } @property (readonly) unsigned long long size; + (void)initialize; - (void)reset; - (id).cxx_construct; - (id)description; - (void).cxx_destruct; - (void)accumulateDifferenceBetweenTensorBefore:(id)a0 andTensorAfter:(id)a1 withScale:(float)a2 error:(id *)a3; - (void)applyToTensor:(id)a0 scale:(float)a1 error:(id *)a2; - (id)initWithTensorBefore:(id)a0 tensorAfter:(id)a1 withScale:(float)a2 shouldSparsify:(BOOL)a3 error:(id *)a4; - (float)l2norm; - (void)multiply:(float)a0; @end