16b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua/*
26b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * Copyright (C) 2012 The Android Open Source Project
36b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua *
46b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * Licensed under the Apache License, Version 2.0 (the "License");
56b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * you may not use this file except in compliance with the License.
66b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * You may obtain a copy of the License at
76b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua *
86b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua *      http://www.apache.org/licenses/LICENSE-2.0
96b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua *
106b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * Unless required by applicable law or agreed to in writing, software
116b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * distributed under the License is distributed on an "AS IS" BASIS,
126b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * See the License for the specific language governing permissions and
146b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua * limitations under the License.
156b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua */
166b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua
176b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua// Contains definitions commom to all classification and ranking algorithms
186b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua// in this package.
196b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua
206b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#ifndef LEARNING_STOCHASTIC_LINEAR_COMMON_DEFS_H_
216b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#define LEARNING_STOCHASTIC_LINEAR_COMMON_DEFS_H_
226b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua
236b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huanamespace learning_stochastic_linear {
246b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua// Defines standard types of regulariation methods.
256b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huaenum RegularizationType { L0, L1, L2, L1L2, L1LInf };
266b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua
276b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua// Defines standard adaptation modes for which Stochastic Sub-Gradient
286b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua// methods are known to converge.
296b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huaenum AdaptationMode { CONST, INV_LINEAR, INV_QUADRATIC, INV_SQRT };
306b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huaenum UpdateType { FULL_CS, CLIP_CS, REG_CS, SL, ADAPTIVE_REG };
316b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huaenum RankLossType { PAIRWISE, RECIPROCAL_RANK };
326b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huaenum KernelType { LINEAR, POLY, RBF };
336b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Huaenum MulticlassUpdateType { MAX, RANK };
346b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua}  // namespace learning_stochastic_linear
356b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua
366b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#ifdef ANDROID
376b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#define uint32 uint32_t
386b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#define int32 int32_t
396b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#define uint64 uint64_t
406b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#define int64 int64_t
416b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#include <cutils/log.h>
426b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#define CHECK_GT(x,y) if (x<y) ALOGE("CHECK_GT failed at file %s line %d", \
436b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua                                   __FILE__, __LINE__);
446b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#endif
456b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua
466b4eebc73439cbc3ddfb547444a341d1f9be7996Wei Hua#endif  // LEARNING_STOCHASTIC_LINEAR_COMMON_DEFS_H_
47