Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,5 @@
*.exe
*.out
*.app

bin/*
33 changes: 13 additions & 20 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
sudo: false
language: cpp

notifications:
email: false
slack: sciinstitute:lZnpQQXNd4Io5iGDPQDpJmI1

compiler:
- gcc
- clang
#before_cache:

cache:
directories:
- $HOME/deps
Expand All @@ -14,13 +15,10 @@ before_install:
- if [ ! -d $HOME/deps ]; then mkdir $HOME/deps; fi
- if [ ! -f $HOME/deps/tetgen1.4.3.tar.gz ]; then wget --quiet --directory-prefix=$HOME/deps http://tetgen.org/files/tetgen1.4.3.tar.gz; fi
- if [ ! -f $HOME/deps/tetgen_cmake.tgz ]; then wget --quiet --directory-prefix=$HOME/deps http://www.sci.utah.edu/devbuilds/seg3d/tetgen_cmake.tgz; fi
- if [ ! -f $HOME/deps/release-1.7.0.tar.gz ]; then wget --quiet --directory-prefix=$HOME/deps https://github.com/google/googletest/archive/release-1.7.0.tar.gz; fi
- if [ ! -f $HOME/deps/release-1.10.0.tar.gz ]; then wget --quiet --directory-prefix=$HOME/deps https://github.com/google/googletest/archive/release-1.10.0.tar.gz; fi
- if [ ! -f $HOME/deps/3.2.10.tar.gz ]; then wget --quiet --directory-prefix=$HOME/deps http://bitbucket.org/eigen/eigen/get/3.2.10.tar.gz; fi
- pip install --user cpp-coveralls
- ls $HOME/deps
install:
# C++11 support required
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
addons:
apt:
sources:
Expand All @@ -29,10 +27,6 @@ addons:
packages:
- cmake
- cmake-data
- gcc-4.8
- g++-4.8
- clang
#before_script:
script:
# build Tetgen dependency
- mkdir build
Expand All @@ -43,26 +37,25 @@ script:
- tar xzf $HOME/deps/tetgen_cmake.tgz
- popd
# build Googletest dependency
- tar xzf $HOME/deps/release-1.7.0.tar.gz
- pushd googletest-release-1.7.0
- tar xzf $HOME/deps/release-1.10.0.tar.gz
- pushd googletest-release-1.10.0
- mkdir build
- cd build
- cmake ..
- make -j4
- make -j4 CXXFLAGS:=$(CXXFLAGS) -lpthread -lm
- popd
# untar Eigen dependency (no build needed)
- tar xzf $HOME/deps/3.2.10.tar.gz
# build ImplicitFunction library
- cmake -DBUILD_TESTING:BOOL=ON -DENABLE_COVERAGE:BOOL=ON -DTravisCI_BUILD:BOOL=ON
-DGTEST_INCLUDE_DIR:PATH=`pwd`/googletest-release-1.7.0/include
-DGTEST_LIBRARY:FILEPATH=`pwd`/googletest-release-1.7.0/build/libgtest.a
-DGTEST_MAIN_LIBRARY:FILEPATH=`pwd`/googletest-release-1.7.0/build/libgtest_main.a
-DGTEST_INCLUDE_DIR:PATH=`pwd`/googletest-release-1.10.0/googletest/include
-DGTEST_LIBRARY:FILEPATH=`pwd`/googletest-release-1.10.0/build/lib/libgtest.a
-DGTEST_MAIN_LIBRARY:FILEPATH=`pwd`/googletest-release-1.10.0/build/lib/libgtest_main.a
-DTetgen_DIR:PATH=`pwd`/tetgen1.4.3
-DEIGEN3_INSTALL_DIR:PATH=`pwd`/eigen-eigen-b9cd8366d4e8 ..
- make -j4
- make -j4 CXXFLAGS:=$(CXXFLAGS) -lpthread -lm
- ./ImplicitFunction_Tests
#after_failure:

after_success:
- cd $TRAVIS_BUILD_DIR
- coveralls --exclude build --exclude Tests --gcov-options '\-lp'
#after_script:
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
# USE OR OTHER DEALINGS IN THE SOFTWARE.

cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.5)

project(ImplicitFunction)

Expand Down
8 changes: 3 additions & 5 deletions ETSP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ void ETSP::MST()

graph[toAdd].push_back(i+j-toAdd);
graph[i+j-toAdd].push_back(toAdd);

}

}
Expand All @@ -119,14 +119,14 @@ vector<int> ETSP::match()
bestMatch.push_back(i);
}
}

//for(int i=0; i<oddNodes.size(); i++)
// printf("%d ",oddNodes[i]);
//printf("\n");
if(oddNodes.size()>0)
{
double best=1e10;
do
do
{
double curr = 0;
for(int i=0; i<oddNodes.size(); i+=2)
Expand Down Expand Up @@ -154,7 +154,6 @@ void ETSP::orderFromMST()
{
vector<bool> visited;
visited.resize(data.size(),false);
int curr=0;
inverse_mapped_order.resize(data.size());
traverse(0, visited);
/*for(int i=0; i<order.size(); i++)
Expand Down Expand Up @@ -205,4 +204,3 @@ void ETSP::orderFromMatch()
// printf("%d ",order[i]);
//printf("\n");
}

21 changes: 10 additions & 11 deletions RBF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@ void RBF::computeFunctionForData()
case None:
default:
// TODO: move to function
const double SMALL_EPSILON = 1.0e-6, ERROR_EPSILON = 1.0e-3;
const int N = static_cast<int>( this->data_->fnc_.size() );

#ifndef NDEBUG
Expand Down Expand Up @@ -329,27 +328,27 @@ void RBF::fmmBuildTree(vector<int> &myPoints, BHNode *myNode)
//printf("[%lf %lf %lf] [%lf %lf %lf] %d\n", myNode->box_.min_[0], myNode->box_.min_[1], myNode->box_.min_[2], myNode->box_.max_[0], myNode->box_.max_[1], myNode->box_.max_[2], myPoints.size());
vector<int> children[8];
const int N = myPoints.size();

myNode->index_ = fmm_->numOfNodes;
fmm_->numOfNodes += 1;
fmm_->nodePointer.push_back(myNode);

myNode->mass_ = N;
myNode->leaf_ = (N <= 1) ? true : false;
myNode->center_ = vec3::zero;

myNode->coeff_ = 1; //REPLACE
//add all the coefficients

for (int i = 0; i < N; i++)
myNode->pts_.push_back( myPoints[i] );

for (int i = 0; i < N; i++)
{
vec3 location(this->data_->surfacePoints_[0][myPoints[i]], this->data_->surfacePoints_[1][myPoints[i]], this->data_->surfacePoints_[2][myPoints[i]]);
myNode->center_ = myNode->center_ + (location/N);
}

if (N == 1)
{
for (int i = 0; i < 8; i++)
Expand Down Expand Up @@ -377,9 +376,9 @@ void RBF::fmmBuildTree(vector<int> &myPoints, BHNode *myNode)
octant += 2;
if (this->data_->surfacePoints_[2][myPoints[i]] > mid[2])
octant += 4;

//printf("%d %d %d %lf %lf %lf\n", i,octant, myPoints[i], this->data_->surfacePoints_[0][myPoints[i]],this->data_->surfacePoints_[1][myPoints[i]], this->data_->surfacePoints_[2][myPoints[i]]);

children[octant].push_back(myPoints[i]);
}

Expand Down Expand Up @@ -453,6 +452,6 @@ double RBF::fmmComputeValueRecurse(const vec3& x, BHNode *myNode)
double RBF::fmmComputeKernel(const vec3& b, BHNode *myNode)
{
double r = length(myNode->center_ - b);

return computeRadialFunction(r);
}
}
9 changes: 8 additions & 1 deletion Tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,11 @@
set(ImplicitFunction_Tests_SRCS
ConvexHull2DTests.cpp
ConvexHull3DTests.cpp
# RBFTests.cpp
RBFTests.cpp
RBFInterfaceTests.cpp
ScatteredDataTests.cpp
Vec3Tests.cpp
Seg3DIntegrationTest.cpp
)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ImplicitFunction_BINARY_DIR})
Expand All @@ -47,3 +48,9 @@ target_link_libraries(ImplicitFunction_Tests
${GTEST_LIBRARY}
${GTEST_MAIN_LIBRARY}
)

IF(UNIX)
TARGET_LINK_LIBRARIES(ImplicitFunction_Tests -lpthread -lm)
ENDIF()

ADD_TEST("ImplicitFunction_Tests" ${ImplicitFunction_BINARY_DIR}/ImplicitFunction_Tests)
8 changes: 4 additions & 4 deletions Tests/RBFInterfaceTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ TEST_F(RBFInterfaceTest, BasicInterfaceTestThinPlate)
std::string line;
std::getline(in, line);
//std::cerr << line << " vs " << rasterData[i][j][k] << std::endl;
double d = std::stod(line);
//double d = std::stod(line);
}
}
}
Expand Down Expand Up @@ -124,7 +124,7 @@ TEST_F(RBFInterfaceTest, BasicInterfaceTestGaussian)
std::string line;
std::getline(in, line);
//std::cerr << line << " vs " << rasterData[i][j][k] << std::endl;
double d = std::stod(line);
//double d = std::stod(line);
}
}
}
Expand Down Expand Up @@ -157,9 +157,9 @@ TEST_F(RBFInterfaceTest, BasicInterfaceTestMultiQuad)
std::string line;
std::getline(in, line);
//std::cerr << line << " vs " << rasterData[i][j][k] << std::endl;
double d = std::stod(line);
//double d = std::stod(line);
}
}
}
in.close();
}
}
13 changes: 4 additions & 9 deletions Tests/RBFTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,14 @@ class RBFTest : public ::testing::Test

func10.insert(func10.begin(), 10, 0);
axisInfo10.insert(axisInfo10.begin(), 10, axis_t::Z);
data = new ScatteredData( xCoords10, yCoords10, zCoords10, func10, axisInfo10 );
data.reset(new ScatteredData( xCoords10, yCoords10, zCoords10, func10, axisInfo10 ));
}

virtual void TearDown()
{
delete data;
}

ScatteredData *data;
std::unique_ptr<ScatteredData> data;
};

TEST_F(RBFTest, BasicSetup)
{
// TODO: need to expose getters to test RBF state
RBF rbf(data, ThinPlate);
}
RBF rbf(data.get(), ThinPlate);
}
Loading