mirror of
https://github.com/mapbox/tippecanoe.git
synced 2025-02-02 01:08:14 +00:00
Merge pull request #226 from mapbox/c++-math
use std::fabs instead of clib fabs
This commit is contained in:
commit
235939ea23
12
geometry.cc
12
geometry.cc
@ -4,15 +4,15 @@
|
||||
#include <stack>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <stdio.h>
|
||||
#include <cstdio>
|
||||
#include <unistd.h>
|
||||
#include <math.h>
|
||||
#include <sqlite3.h>
|
||||
#include <cmath>
|
||||
#include <limits.h>
|
||||
#include "geometry.hh"
|
||||
#include "clipper/clipper.hpp"
|
||||
|
||||
extern "C" {
|
||||
#include <sqlite3.h>
|
||||
#include "tile.h"
|
||||
#include "clip.h"
|
||||
#include "projection.h"
|
||||
@ -246,7 +246,7 @@ struct ring {
|
||||
}
|
||||
|
||||
bool operator<(const ring &o) const {
|
||||
if (fabs(this->area) < fabs(o.area)) {
|
||||
if (std::fabs(this->area) < std::fabs(o.area)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@ -811,7 +811,7 @@ drawvec reduce_tiny_poly(drawvec &geom, int z, int detail, bool *reduced, double
|
||||
// inner rings must just have their area de-accumulated rather
|
||||
// than being drawn since we don't really know where they are.
|
||||
|
||||
if (fabs(area) <= pixel * pixel || (area < 0 && !included_last_outer)) {
|
||||
if (std::fabs(area) <= pixel * pixel || (area < 0 && !included_last_outer)) {
|
||||
// printf("area is only %f vs %lld so using square\n", area, pixel * pixel);
|
||||
|
||||
*accum_area += area;
|
||||
@ -1012,7 +1012,7 @@ static void douglas_peucker(drawvec &geom, int start, int n, double e) {
|
||||
for (i = first + 1; i < second; i++) {
|
||||
double temp_dist = square_distance_from_line(geom[start + i].x, geom[start + i].y, geom[start + first].x, geom[start + first].y, geom[start + second].x, geom[start + second].y);
|
||||
|
||||
double distance = fabs(temp_dist);
|
||||
double distance = std::fabs(temp_dist);
|
||||
|
||||
if (distance > e && distance > max_distance) {
|
||||
farthest_element_index = i;
|
||||
|
10
tile.cc
10
tile.cc
@ -15,7 +15,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
#include <math.h>
|
||||
#include <cmath>
|
||||
#include <sqlite3.h>
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
@ -502,7 +502,7 @@ int manage_gap(unsigned long long index, unsigned long long *previndex, double s
|
||||
return 1; // Exact duplicate: can't fulfil the gap requirement
|
||||
}
|
||||
|
||||
if (exp(log((index - *previndex) / scale) * gamma) >= *gap) {
|
||||
if (std::exp(std::log((index - *previndex) / scale) * gamma) >= *gap) {
|
||||
// Dot is further from the previous than the nth root of the gap,
|
||||
// so produce it, and choose a new gap at the next point.
|
||||
*gap = 0;
|
||||
@ -534,7 +534,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s
|
||||
long long og = *geompos_in;
|
||||
|
||||
// XXX is there a way to do this without floating point?
|
||||
int max_zoom_increment = log(child_shards) / log(4);
|
||||
int max_zoom_increment = std::log(child_shards) / std::log(4);
|
||||
if (child_shards < 4 || max_zoom_increment < 1) {
|
||||
fprintf(stderr, "Internal error: %d shards, max zoom increment %d\n", child_shards, max_zoom_increment);
|
||||
exit(EXIT_FAILURE);
|
||||
@ -564,7 +564,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s
|
||||
double interval = 0;
|
||||
double seq = 0;
|
||||
if (z < basezoom) {
|
||||
interval = exp(log(droprate) * (basezoom - z));
|
||||
interval = std::exp(std::log(droprate) * (basezoom - z));
|
||||
}
|
||||
|
||||
double fraction_accum = 0;
|
||||
@ -1181,7 +1181,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
||||
threads = useful_threads;
|
||||
}
|
||||
// Round down to a power of 2
|
||||
threads = 1 << (int) (log(threads) / log(2));
|
||||
threads = 1 << (int) (std::log(threads) / std::log(2));
|
||||
|
||||
// Assign temporary files to threads
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user