# forum.alglib.net

ALGLIB forum
 It is currently Tue May 30, 2023 7:50 am

 All times are UTC

### Forum rules

1. This forum can be used for discussion of both ALGLIB-related and general numerical analysis questions
2. This forum is English-only - postings in other languages will be removed.

 Page 1 of 1 [ 1 post ]
 Print view Previous topic | Next topic
Author Message
 Post subject: Compile and link alglib library with new codePosted: Sat Jul 16, 2016 4:18 am

Joined: Sat Jul 16, 2016 3:59 am
Posts: 1
Hi,

I just found out about alglib and wanted it give it a shot to a problem of spline fitting using constrained least squares optimization that I'm working on. I downloaded all the source code and took the example of lsfit_d_lin to get an introduction to the compilation and linking process. Here is the code:

Code:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "ap.h"
#include "alglibinternal.h"
#include "alglibmisc.h"
#include "diffequations.h"
#include "dataanalysis.h"
#include "fasttransforms.h"
#include "integration.h"
#include "interpolation.h"
#include "linalg.h"
#include "optimization.h"
#include "solvers.h"
#include "specialfunctions.h"
#include "statistics.h"
#include "stdafx.h"

using namespace alglib;

int main(int argc, char **argv)
{
//
// In this example we demonstrate linear fitting by f(x|a) = a*exp(0.5*x).
//
// We have:
// * y - vector of experimental data
// * fmatrix -  matrix of basis functions calculated at sample points
//              Actually, we have only one basis function F0 = exp(0.5*x).
//
real_2d_array fmatrix = "[[0.606531],[0.670320],[0.740818],[0.818731],[0.904837],[1.000000],[1.105171],[1.221403],[1.349859],[1.491825],[1.648721]]";
real_1d_array y = "[1.133719, 1.306522, 1.504604, 1.554663, 1.884638, 2.072436, 2.257285, 2.534068, 2.622017, 2.897713, 3.219371]";
ae_int_t info;
real_1d_array c;
lsfitreport rep;

//
// Linear fitting without weights
//
lsfitlinear(y, fmatrix, info, c, rep);
printf("%d\n", int(info)); // EXPECTED: 1
printf("%s\n", c.tostring(4).c_str()); // EXPECTED: [1.98650]

//
// Linear fitting with individual weights.
// Slightly different result is returned.
//
real_1d_array w = "[1.414213, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]";
lsfitlinearw(y, w, fmatrix, info, c, rep);
printf("%d\n", int(info)); // EXPECTED: 1
printf("%s\n", c.tostring(4).c_str()); // EXPECTED: [1.983354]
return 0;
}

I am using 64-bit Ubuntu 14.04 and also installed libalglib-dev and libalglib3.8 that was available from the repositories.

I used the following command to compile:
Quote:
g++ -g -Wall -I../src/ -L/usr/lib/x86_64-linux-gnu/ -lalglib linear.cpp

But I end up with a bunch of linker errors:
Quote:
/tmp/ccrVBuSp.o: In function `main':
/home/user/source/alglib/tests/linear.cpp:33: undefined reference to `alglib::real_2d_array::real_2d_array(char const*)'
/home/user/source/alglib/tests/linear.cpp:34: undefined reference to `alglib::real_1d_array::real_1d_array(char const*)'
/home/user/source/alglib/tests/linear.cpp:36: undefined reference to `alglib::real_1d_array::real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:37: undefined reference to `alglib::lsfitreport::lsfitreport()'
/home/user/source/alglib/tests/linear.cpp:42: undefined reference to `alglib::lsfitlinear(alglib::real_1d_array const&, alglib::real_2d_array const&, long&, alglib::real_1d_array&, alglib::lsfitreport&)'
/home/user/source/alglib/tests/linear.cpp:44: undefined reference to `alglib::real_1d_array::tostring(int) const'
/home/user/source/alglib/tests/linear.cpp:50: undefined reference to `alglib::real_1d_array::real_1d_array(char const*)'
/home/user/source/alglib/tests/linear.cpp:51: undefined reference to `alglib::lsfitlinearw(alglib::real_1d_array const&, alglib::real_1d_array const&, alglib::real_2d_array const&, long&, alglib::real_1d_array&, alglib::lsfitreport&)'
/home/user/source/alglib/tests/linear.cpp:53: undefined reference to `alglib::real_1d_array::tostring(int) const'
/home/user/source/alglib/tests/linear.cpp:50: undefined reference to `alglib::real_1d_array::~real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:37: undefined reference to `alglib::lsfitreport::~lsfitreport()'
/home/user/source/alglib/tests/linear.cpp:36: undefined reference to `alglib::real_1d_array::~real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:34: undefined reference to `alglib::real_1d_array::~real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:54: undefined reference to `alglib::real_2d_array::~real_2d_array()'
/home/user/source/alglib/tests/linear.cpp:50: undefined reference to `alglib::real_1d_array::~real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:37: undefined reference to `alglib::lsfitreport::~lsfitreport()'
/home/user/source/alglib/tests/linear.cpp:36: undefined reference to `alglib::real_1d_array::~real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:34: undefined reference to `alglib::real_1d_array::~real_1d_array()'
/home/user/source/alglib/tests/linear.cpp:54: undefined reference to `alglib::real_2d_array::~real_2d_array()'
collect2: error: ld returned 1 exit status

Could someone help me with this? Also, if anyone has an example of using CMake to use with linking the alglib library and wouldn't mind sharing it, I'd appreciate it.

Thanks,
Shaun.

Top

 Display posts from previous: All posts1 day7 days2 weeks1 month3 months6 months1 year Sort by AuthorPost timeSubject AscendingDescending
 Page 1 of 1 [ 1 post ]

 All times are UTC

#### Who is online

Users browsing this forum: No registered users and 4 guests

 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum

Search for: