* Bug 15599 fixed: now degree of zero polynomial is -Inf
[scilab.git] / scilab / modules / ast / includes / types / keepForSparse.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014 - Scilab Enterprises - Cedric Delamarre
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 #ifndef __KEEPFORSPARSE__
17 #define __KEEPFORSPARSE__
18
19 /*
20  * used by Eigen to prune sparse matrices.
21  * Scilab <6 keeps values <%eps, so we prune only 0. but it should really be a property of the sparse matrix.
22  */
23 template<typename T>
24 bool keepForSparse(std::size_t /* unused */, std::size_t /* unused */, T const& v)
25 {
26     static T const zero(0);
27     return v != zero;
28 }
29 #endif // __KEEPFORSPARSE__