2 * mlp-mnist is an implementation of a multi-layer neural network.
4 * Copyright (c) 2008 Idiap Research Institute, http://www.idiap.ch/
5 * Written by Francois Fleuret <francois.fleuret@idiap.ch>
7 * This file is part of mlp-mnist.
9 * mlp-mnist is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 3 as
11 * published by the Free Software Foundation.
13 * mlp-mnist is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with mlp-mnist. If not, see <http://www.gnu.org/licenses/>.
27 #define ASSERT(x, s) if(!(x)) { std::cerr << "ASSERT FAILED IN " << __FILE__ << ":" << __LINE__ << " [" << (s) << "]\n"; abort(); }
32 typedef float scalar_t;
34 template<class T> T sq(T x) { return x*x; }
36 template<class T> T pos(T x) { if(x < 0) return 0.0; else return x; }
43 int compare_couple(const void *a, const void *b);