瀏覽代碼

* Removed math.c from cucul, it's beyond uselessness. Kept cucul_rand in

cucul.c just in case.
tags/v0.99.beta14
Sam Hocevar sam 19 年之前
父節點
當前提交
c778d5301c
共有 6 個檔案被更改,包括 12 行新增84 行删除
  1. +0
    -5
      cpp/cucul++.cpp
  2. +0
    -1
      cpp/cucul++.h
  3. +0
    -1
      cucul/Makefile.am
  4. +11
    -0
      cucul/cucul.c
  5. +1
    -9
      cucul/cucul.h
  6. +0
    -68
      cucul/math.c

+ 0
- 5
cpp/cucul++.cpp 查看文件

@@ -194,11 +194,6 @@ int Cucul::rand (int min, int max)
return cucul_rand(min, max);
}

unsigned int Cucul::sqrt (unsigned int v)
{
return cucul_sqrt(v);
}

Cucul::Sprite * Cucul::load_sprite (char const *f)
{
Cucul::Sprite *s = new Cucul::Sprite();


+ 0
- 1
cpp/cucul++.h 查看文件

@@ -88,7 +88,6 @@ class Cucul {
void draw_thin_triangle ( int, int, int, int, int, int);
void fill_triangle ( int, int, int, int, int, int, char const *);
int rand (int, int);
unsigned int sqrt (unsigned int);
Sprite * load_sprite (char const *);
int get_sprite_frames (Cucul::Sprite const *);
int get_sprite_width (Cucul::Sprite const *, int);


+ 0
- 1
cucul/Makefile.am 查看文件

@@ -18,7 +18,6 @@ libcucul_la_SOURCES = \
transform.c \
charset.c \
colour.c \
math.c \
line.c \
box.c \
conic.c \


+ 11
- 0
cucul/cucul.c 查看文件

@@ -236,6 +236,17 @@ void cucul_free(cucul_t *qq)
free(qq);
}

/** \brief Generate a random integer within a range.
*
* \param min The lower bound of the integer range.
* \param max The upper bound of the integer range.
* \return A random integer comprised between \p min and \p max, inclusive.
*/
int cucul_rand(int min, int max)
{
return min + (int)((1.0*(max-min+1)) * rand() / (RAND_MAX+1.0));
}

/** \brief Export a canvas into a foreign format.
*
* This function exports a libcucul canvas into various foreign formats such


+ 1
- 9
cucul/cucul.h 查看文件

@@ -79,6 +79,7 @@ void cucul_set_size(cucul_t *, unsigned int, unsigned int);
unsigned int cucul_get_width(cucul_t *);
unsigned int cucul_get_height(cucul_t *);
void cucul_free(cucul_t *);
int cucul_rand(int, int);
/* @} */

/** \defgroup buffer Buffer handling
@@ -143,15 +144,6 @@ void cucul_draw_thin_triangle(cucul_t *, int, int, int, int, int, int);
void cucul_fill_triangle(cucul_t *, int, int, int, int, int, int, char const *);
/* @} */

/** \defgroup math Mathematical functions
*
* These functions provide a few useful math-related routines.
*
* @{ */
int cucul_rand(int, int);
unsigned int cucul_sqrt(unsigned int);
/* @} */

/** \defgroup sprite Sprite handling
*
* These functions provide high level routines for sprite loading, animation


+ 0
- 68
cucul/math.c 查看文件

@@ -1,68 +0,0 @@
/*
* libcucul Canvas for ultrafast compositing of Unicode letters
* Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org>
* All Rights Reserved
*
* $Id$
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Do What The Fuck You Want To
* Public License, Version 2, as published by Sam Hocevar. See
* http://sam.zoy.org/wtfpl/COPYING for more details.
*/

/*
* This file contains simple mathematical routines.
*/

#include "config.h"

#if !defined(__KERNEL__)
# include <stdlib.h>
#endif

#include "cucul.h"
#include "cucul_internals.h"

/** \brief Generate a random integer within a range.
*
* \param min The lower bound of the integer range.
* \param max The upper bound of the integer range.
* \return A random integer comprised between \p min and \p max, inclusive.
*/
int cucul_rand(int min, int max)
{
return min + (int)((1.0*(max-min+1)) * rand() / (RAND_MAX+1.0));
}

/** \brief Approximate a square root, using Newton's method to avoid
* costly floating point calculations.
*
* \param a A positive integer.
* \return The approximate square root of \p a.
*/
unsigned int cucul_sqrt(unsigned int a)
{
if(a == 0)
return 0;

if(a < 1000000000)
{
unsigned int x = a < 10 ? 1
: a < 1000 ? 10
: a < 100000 ? 100
: a < 10000000 ? 1000
: 10000;

/* Newton's method. Three iterations would be more than enough. */
x = (x * x + a) / x / 2;
x = (x * x + a) / x / 2;
x = (x * x + a) / x / 2;
x = (x * x + a) / x / 2;

return x;
}

return 2 * cucul_sqrt(a / 4);
}


Loading…
取消
儲存