1
0
mirror of https://github.com/aportelli/LatAnalyze.git synced 2025-06-16 06:27:05 +01:00

11 Commits
3.2 ... 3.2.2

7 changed files with 32 additions and 13 deletions

7
.gitignore vendored
View File

@ -3,7 +3,7 @@ build/*
build_debug/* build_debug/*
sandbox/* sandbox/*
# Apple stuffs # Apple stuff
*.xcodeproj *.xcodeproj
.DS_Store .DS_Store
@ -30,3 +30,8 @@ lib/eigen_files.mk
# CI builds # CI builds
ci-scripts/local/* ci-scripts/local/*
# CLion stuff
.idea/*
CMakeLists.txt
cmake-build-debug/*

View File

@ -55,6 +55,10 @@ in the `ci-scripts` directory where `<prefix>` is where you want LatAnalyze (and
For a more customised installation, one first needs to generate the build system by running `./bootstrap.sh` in the root directory. Then the library can be built and installed through the usual GNU mantra `./configure <options> && make && make install`. Use `./configure --help` to obtain a list of possible options for `./configure`. Because Eigen expressions rely a lot on inlining and compiler optimisations it is strongly recommended to set the `CXXFLAGS` variable to `-O3 -march=native -mtune=native`. For a more customised installation, one first needs to generate the build system by running `./bootstrap.sh` in the root directory. Then the library can be built and installed through the usual GNU mantra `./configure <options> && make && make install`. Use `./configure --help` to obtain a list of possible options for `./configure`. Because Eigen expressions rely a lot on inlining and compiler optimisations it is strongly recommended to set the `CXXFLAGS` variable to `-O3 -march=native -mtune=native`.
## History ## History
#### v3.2.1
Fix:
* Wrong argument number check in `latan-resample`
#### v3.2 (needs LatCore 1.1) #### v3.2 (needs LatCore 1.1)
Additions: Additions:
* 2-pt function fitter `latan-2pt-fit` * 2-pt function fitter `latan-2pt-fit`

View File

@ -2,7 +2,7 @@
# Initialization # Initialization
AC_PREREQ([2.63]) AC_PREREQ([2.63])
AC_INIT([LatAnalyze],[3.2],[antonin.portelli@me.com],[LatAnalyze]) AC_INIT([LatAnalyze],[3.2.1-dev],[antonin.portelli@me.com],[LatAnalyze])
AC_CONFIG_AUX_DIR([.buildutils]) AC_CONFIG_AUX_DIR([.buildutils])
AC_CONFIG_SRCDIR([lib/Global.cpp]) AC_CONFIG_SRCDIR([lib/Global.cpp])
AC_CONFIG_SRCDIR([utils/sample_read.cpp]) AC_CONFIG_SRCDIR([utils/sample_read.cpp])

View File

@ -690,6 +690,7 @@ void MathInterpreter::compile(RunContext &context)
if (root_) if (root_)
{ {
context.addVariable("pi", Math::pi); context.addVariable("pi", Math::pi);
context.addVariable("inf", HUGE_VAL);
ADD_STDMATH_FUNCS(context); ADD_STDMATH_FUNCS(context);
root_->compile(program_, context); root_->compile(program_, context);
for (unsigned int i = 0; i < program_.size(); ++i) for (unsigned int i = 0; i < program_.size(); ++i)

View File

@ -171,6 +171,20 @@ const DSample & XYSampleData::y(const Index k, const Index j) const
return yData_[j].at(k); return yData_[j].at(k);
} }
void XYSampleData::setUnidimData(const DMatSample &xData,
const vector<const DMatSample *> &v)
{
FOR_STAT_ARRAY(xData, s)
FOR_VEC(xData[central], r)
{
x(r, 0)[s] = xData[s](r);
for (unsigned int j = 0; j < v.size(); ++j)
{
y(r, j)[s] = (*(v[j]))[s](r);
}
}
}
const DMat & XYSampleData::getXXVar(const Index i1, const Index i2) const DMat & XYSampleData::getXXVar(const Index i1, const Index i2)
{ {
checkXDim(i1); checkXDim(i1);
@ -253,6 +267,7 @@ void XYSampleData::setDataToSample(const Index s)
const XYStatData & XYSampleData::getData(void) const XYStatData & XYSampleData::getData(void)
{ {
setDataToSample(central); setDataToSample(central);
computeVarMat();
return data_; return data_;
} }

View File

@ -80,6 +80,8 @@ public:
const DMatSample & x(const Index k); const DMatSample & x(const Index k);
DSample & y(const Index k, const Index j); DSample & y(const Index k, const Index j);
const DSample & y(const Index k, const Index j) const; const DSample & y(const Index k, const Index j) const;
void setUnidimData(const DMatSample &xData,
const std::vector<const DMatSample *> &v);
template <typename... Ts> template <typename... Ts>
void setUnidimData(const DMatSample &xData, void setUnidimData(const DMatSample &xData,
const Ts & ...yDatas); const Ts & ...yDatas);
@ -141,17 +143,9 @@ void XYSampleData::setUnidimData(const DMatSample &xData, const Ts & ...yDatas)
static_assert(static_or<std::is_assignable<DMatSample, Ts>::value...>::value, static_assert(static_or<std::is_assignable<DMatSample, Ts>::value...>::value,
"y data arguments are not compatible with DMatSample"); "y data arguments are not compatible with DMatSample");
std::vector<const DMatSample *> yData{&yDatas...}; std::vector<const DMatSample *> v{&yDatas...};
FOR_STAT_ARRAY(xData, s) setUnidimData(xData, v);
FOR_VEC(xData[central], r)
{
x(r, 0)[s] = xData[s](r);
for (unsigned int j = 0; j < yData.size(); ++j)
{
y(r, j)[s] = (*(yData[j]))[s](r);
}
}
} }
template <typename... Ts> template <typename... Ts>

View File

@ -59,7 +59,7 @@ int main(int argc, char *argv[])
opt.addOption("" , "help" , OptParser::OptType::trigger, true, opt.addOption("" , "help" , OptParser::OptType::trigger, true,
"show this help message and exit"); "show this help message and exit");
parsed = opt.parse(argc, argv); parsed = opt.parse(argc, argv);
if (!parsed or (opt.getArgs().size() != 1) or opt.gotOption("help")) if (!parsed or (opt.getArgs().size() != 2) or opt.gotOption("help"))
{ {
cerr << "usage: " << argv[0]; cerr << "usage: " << argv[0];
cerr << " <datafile list> <name list> <options>" << endl; cerr << " <datafile list> <name list> <options>" << endl;