Changeset: 59873b05e556 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=59873b05e556
Removed Files:
        sql/backends/monet5/k3m/3dtree.c
        sql/backends/monet5/k3m/3dtree.h
        sql/backends/monet5/k3m/67_k3m.mal
        sql/backends/monet5/k3m/67_k3m.sql
        sql/backends/monet5/k3m/Makefile.ag
        sql/backends/monet5/k3m/Tests/All
        sql/backends/monet5/k3m/Tests/k3m.sql
        sql/backends/monet5/k3m/k3m.c
        sql/backends/monet5/k3m/k3m.mal
        sql/backends/monet5/k3m/k3match.h
        sql/backends/monet5/k3m/median.c
        sql/backends/monet5/k3m/median.h
        sql/backends/monet5/k3m/point.c
        sql/backends/monet5/k3m/point.h
Modified Files:
        configure.ag
        sql/backends/monet5/Makefile.ag
Branch: default
Log Message:

Backed out changeset 019e5733100a


diffs (truncated from 920 to 300 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2209,17 +2209,6 @@ if test "x$have_valgrind" != xno; then
                [if test "x$have_valgrind" = xyes; then AC_MSG_ERROR([no 
valgrind support found]); fi])
 fi
 
-org_have_k3m=no
-have_k3m=$org_have_k3m
-AC_ARG_WITH(k3m,
-       AS_HELP_STRING([--with-k3m],
-               [include Pim Schellart's K3Match library (default=no)]),
-       have_k3m=$withval)
-if test "x$have_k3m" != xno; then
-       AC_DEFINE(HAVE_K3M, 1, [Define if you want to use the K3Match library])
-fi
-AM_CONDITIONAL(HAVE_K3M, test x"$have_k3m" != xno)
-
 # check for sphinxclient
 org_have_sphinxclient="auto"
 have_sphinxclient=$org_have_sphinxclient
@@ -3465,7 +3454,6 @@ for comp in \
        'java         ' \
        'java_control ' \
        'java_jdbc    ' \
-       'k3m          ' \
        'liblas       ' \
        'libxml2      ' \
        'lidar        ' \
diff --git a/sql/backends/monet5/Makefile.ag b/sql/backends/monet5/Makefile.ag
--- a/sql/backends/monet5/Makefile.ag
+++ b/sql/backends/monet5/Makefile.ag
@@ -4,7 +4,7 @@
 #
 # Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V.
 
-SUBDIRS = NOT_WIN32?vaults UDF LSST HAVE_GSL?gsl generator HAVE_K3M?k3m
+SUBDIRS = NOT_WIN32?vaults UDF LSST HAVE_GSL?gsl generator
 
 INCLUDES = ../../include ../../common ../../storage ../../server \
                   ../../../monetdb5/modules/atoms \
diff --git a/sql/backends/monet5/k3m/3dtree.c b/sql/backends/monet5/k3m/3dtree.c
deleted file mode 100644
--- a/sql/backends/monet5/k3m/3dtree.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/**************************************************************************
- *  This file is part of the K3Match library.                             *
- *  Copyright (C) 2010 Pim Schellart <p.schell...@astro.ru.nl>            *
- *                                                                        *
- *  This library is free software: you can redistribute it and/or modify  *
- *  it under the terms of the GNU General Public License as published by  *
- *  the Free Software Foundation, either version 3 of the License, or     *
- *  (at your option) any later version.                                   *
- *                                                                        * 
- *  This library is distributed in the hope that it will be useful,       *
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *  GNU General Public License for more details.                          *
- *                                                                        *
- *  You should have received a copy of the GNU General Public License     *
- *  along with this library. If not, see <http://www.gnu.org/licenses/>.  *
- **************************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "k3match.h"
-
-#define SQUARE(x) ((x) * (x))
-
-void k3m_build_balanced_tree(node_t *tree, point_t **points, int_t npoints, 
int axis, int_t *npool)
-{
-  node_t *current = tree+(*npool);
-
-  int next_axis = (axis + 1) % 3;
-
-  int_t nleft, nright;
-
-  current->left = NULL;
-  current->right = NULL;
-  current->axis = axis;
-
-  current->point = k3m_median(points, npoints, current->axis);
-
-  nright = npoints / 2;
-  nleft = nright - (1 - npoints % 2);
-
-  if (nleft > 0)
-  {
-    (*npool)++;
-    current->left = tree+(*npool);
-    current->left->parent = &(*current);
-    k3m_build_balanced_tree(tree, points, nleft, next_axis, npool);
-  }
-
-  if (nright > 0)
-  {
-    (*npool)++;
-    current->right = tree+(*npool);
-    current->right->parent = &(*current);
-    k3m_build_balanced_tree(tree, points+nleft+1, nright, next_axis, npool);
-  }
-}
-
-void k3m_print_tree(node_t *tree)
-{
-  if (!tree) return;
-
-  k3m_print_tree(tree->left);
-  printf("%lu %f %f %f\n", (unsigned long)tree->point->id, 
tree->point->value[0], tree->point->value[1], tree->point->value[2]);
-  k3m_print_tree(tree->right);
-}
-
-void k3m_print_dot_tree(node_t *tree)
-{
-  if (!tree) return;
-
-  if (tree->left != NULL)
-  {
-    printf("%lu -> %lu;\n", (unsigned long)tree->point->id, (unsigned 
long)tree->left->point->id);
-  }
-  
-  if (tree->right != NULL)
-  {
-    printf("%lu -> %lu;\n", (unsigned long)tree->point->id, (unsigned 
long)tree->right->point->id);
-  }
-
-  printf("%lu [label=\"%lu\\n %f %f %f\"];\n", (unsigned long)tree->point->id, 
(unsigned long)tree->point->id,
-      tree->point->value[0], tree->point->value[1], tree->point->value[2]);
-
-  k3m_print_dot_tree(tree->left);
-  k3m_print_dot_tree(tree->right);
-}
-
-node_t* k3m_closest_leaf(node_t *tree, point_t *point)
-{
-  node_t* current = tree;
-  node_t* closest = NULL;
-
-  while (current)
-  {
-    closest = current;
-
-    if (point->value[current->axis] > current->point->value[current->axis])
-    {
-      current = current->right;
-    }
-    else
-    {
-      current = current->left;
-    }
-  }
-
-  return closest;
-}
-
-node_t* k3m_nearest_neighbour(node_t *tree, point_t *point)
-{
-  node_t* nearest = k3m_closest_leaf(tree, point);
-  node_t* current = nearest;
-  node_t* sub = NULL;
-  node_t* last = NULL;
-
-  real_t dn = k3m_distance_squared(nearest->point, point);
-  real_t dc = dn;
-  real_t ds;
-
-  while (1)
-  {
-    dc = k3m_distance_squared(current->point, point);
-    if (dc < dn)
-    {
-      nearest = current;
-      dn = dc;
-    }
-
-    if ((current->point->value[current->axis] - point->value[current->axis]) * 
(current->point->value[current->axis] - point->value[current->axis]) < dn)
-    {
-      if (last == current->left && current->right != NULL)
-      {
-        sub = k3m_nearest_neighbour(current->right, point);
-
-        ds = k3m_distance_squared(sub->point, point);
-        if (ds < dn)
-        {
-          nearest = sub;
-          dn = ds;
-        }
-      }
-      else if (last == current->right && current->left != NULL)
-      {
-        sub = k3m_nearest_neighbour(current->left, point);
-
-        ds = k3m_distance_squared(sub->point, point);
-        if (ds < dn)
-        {
-          nearest = sub;
-          dn = ds;
-        }
-      }
-    }
-
-    if (current == tree)
-    {
-      break;
-    }
-    else
-    {
-      last = current;
-      current = current->parent;
-    }
-  }
-
-  if (nearest == NULL)
-  {
-    return tree;
-  }
-  else
-  {
-    return nearest;
-  }
-}
-
-int_t k3m_in_range(node_t *tree, point_t **match, point_t *search, real_t ds)
-{
-  node_t* current = tree;
-  real_t d[3] = {0, 0, 0};
-  int_t nmatch = 0;
-  real_t dc = 0;
-  int i = 0;
-
-  while (current)
-  {
-    /* calculate distance from current point to search point */
-    for (i=0; i<3; i++)
-    {
-      d[i] = SQUARE(current->point->value[i] - search->value[i]);
-    }
-    dc = d[0] + d[1] + d[2];
-
-    /* check if current point is within search radius */
-    if (dc < ds)
-    {
-      current->point->ds = dc;
-      current->point->neighbour = *match;
-      *match = &(*current->point);
-      nmatch++;
-    }
-
-    /* next point is on the same side of the partition plane as the search 
point */
-    if (search->value[current->axis] > current->point->value[current->axis])
-    {
-      /* check if we need to examine the points on the opposite side */
-      if (d[current->axis] < ds)
-      {
-        nmatch += k3m_in_range(current->left, match, search, ds);
-      }
-
-      current = current->right;
-    }
-    else
-    {
-      /* check if we need to examine the points on the opposite side */
-      if (d[current->axis] < ds)
-      {
-        nmatch += k3m_in_range(current->right, match, search, ds);
-      }
-
-      current = current->left;
-    }
-  }
-
-  return nmatch;
-}
-
diff --git a/sql/backends/monet5/k3m/3dtree.h b/sql/backends/monet5/k3m/3dtree.h
deleted file mode 100644
--- a/sql/backends/monet5/k3m/3dtree.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**************************************************************************
- *  This file is part of the K3Match library.                             *
- *  Copyright (C) 2010 Pim Schellart <p.schell...@astro.ru.nl>            *
- *                                                                        *
- *  This library is free software: you can redistribute it and/or modify  *
- *  it under the terms of the GNU General Public License as published by  *
- *  the Free Software Foundation, either version 3 of the License, or     *
- *  (at your option) any later version.                                   *
- *                                                                        * 
- *  This library is distributed in the hope that it will be useful,       *
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *  GNU General Public License for more details.                          *
- *                                                                        *
- *  You should have received a copy of the GNU General Public License     *
- *  along with this library. If not, see <http://www.gnu.org/licenses/>.  *
- **************************************************************************/
-
-#ifndef __K3MATCH_3DTREE_H__
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to