Kaydet (Commit) 0355caf7 authored tarafından Łukasz Hryniuk's avatar Łukasz Hryniuk Kaydeden (comit) Markus Mohrhard

Add a new file with matrix operators definitions

Change-Id: Ib42d0d51945f634a3052c387a0317d7a919a4d4b
Reviewed-on: https://gerrit.libreoffice.org/17482Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst ab092bdc
...@@ -244,6 +244,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\ ...@@ -244,6 +244,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
sc/source/core/tool/jumpmatrix \ sc/source/core/tool/jumpmatrix \
sc/source/core/tool/listenerquery \ sc/source/core/tool/listenerquery \
sc/source/core/tool/lookupcache \ sc/source/core/tool/lookupcache \
sc/source/core/tool/matrixoperators \
sc/source/core/tool/navicfg \ sc/source/core/tool/navicfg \
sc/source/core/tool/numformat \ sc/source/core/tool/numformat \
sc/source/core/tool/odffmap \ sc/source/core/tool/odffmap \
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#ifndef INCLUDED_SC_INC_MATRIXOPERATORS_HXX
#define INCLUDED_SC_INC_MATRIXOPERATORS_HXX
namespace sc {
namespace op {
template<typename T>
struct _Op
{
const double mInitVal;
const T maOp;
_Op(double InitVal, T aOp):
mInitVal(InitVal), maOp(aOp)
{
}
void operator()(double& rAccum, double fVal)
{
maOp(rAccum, fVal);
}
};
using Op = _Op<std::function<void(double&, double)>>;
struct Sum
{
static const double InitVal;
void operator()(double& rAccum, double fVal);
};
struct SumSquare
{
static const double InitVal;
void operator()(double& rAccum, double fVal);
};
struct Product
{
static const double InitVal;
void operator()(double& rAccum, double fVal);
};
}
}
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <functional>
#include "matrixoperators.hxx"
namespace sc {
namespace op {
void Sum::operator()(double& rAccum, double fVal)
{
rAccum += fVal;
}
const double Sum::InitVal = 0.0;
void SumSquare::operator()(double& rAccum, double fVal)
{
rAccum += fVal * fVal;
}
const double SumSquare::InitVal = 0.0;
void Product::operator()(double& rAccum, double fVal)
{
rAccum *= fVal;
}
const double Product::InitVal = 1.0;
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment