393 lines
9.4 KiB
C
393 lines
9.4 KiB
C
/* utils.c generated by valac 0.56.0, the Vala compiler
|
|
* generated from utils.vala, do not modify */
|
|
|
|
#include "livechart.h"
|
|
#include <glib.h>
|
|
#include <float.h>
|
|
#include <math.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <gee.h>
|
|
#include <glib-object.h>
|
|
|
|
#define _g_free0(var) (var = (g_free (var), NULL))
|
|
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
|
|
|
|
VALA_EXTERN gint live_chart_num_of_digits (gint value);
|
|
static gfloat* _float_dup (gfloat* self);
|
|
static gint __lambda4_ (gint a,
|
|
gint b);
|
|
static gint ___lambda4__gcompare_data_func (gconstpointer a,
|
|
gconstpointer b,
|
|
gpointer self);
|
|
static inline gpointer _vala_memdup2 (gconstpointer mem,
|
|
gsize byte_size);
|
|
|
|
gfloat
|
|
live_chart_cap (gfloat value)
|
|
{
|
|
gint num_digits = 0;
|
|
gdouble size = 0.0;
|
|
gdouble integer_part = 0.0;
|
|
gdouble fractional_part = 0.0;
|
|
gdouble _tmp0_ = 0.0;
|
|
gdouble _tmp1_;
|
|
gdouble delta = 0.0;
|
|
gfloat result;
|
|
#line 6 "../src/utils.vala"
|
|
num_digits = live_chart_num_of_digits ((gint) value);
|
|
#line 8 "../src/utils.vala"
|
|
size = pow ((gdouble) 10, ((gdouble) num_digits) - 1);
|
|
#line 10 "../src/utils.vala"
|
|
if (fmod (value, size) == ((gdouble) 0)) {
|
|
#line 11 "../src/utils.vala"
|
|
result = value;
|
|
#line 11 "../src/utils.vala"
|
|
return result;
|
|
#line 48 "utils.c"
|
|
}
|
|
#line 15 "../src/utils.vala"
|
|
_tmp1_ = modf (value / size, &_tmp0_);
|
|
#line 15 "../src/utils.vala"
|
|
integer_part = _tmp0_;
|
|
#line 15 "../src/utils.vala"
|
|
fractional_part = _tmp1_ * size;
|
|
#line 17 "../src/utils.vala"
|
|
delta = size - fractional_part;
|
|
#line 19 "../src/utils.vala"
|
|
result = (gfloat) (value + delta);
|
|
#line 19 "../src/utils.vala"
|
|
return result;
|
|
#line 62 "utils.c"
|
|
}
|
|
|
|
gboolean
|
|
live_chart_has_fractional_part (gfloat value)
|
|
{
|
|
gboolean result;
|
|
#line 23 "../src/utils.vala"
|
|
result = value != ((gfloat) ((gint) value));
|
|
#line 23 "../src/utils.vala"
|
|
return result;
|
|
#line 73 "utils.c"
|
|
}
|
|
|
|
gchar*
|
|
live_chart_format_for_y_axis (const gchar* unit,
|
|
gfloat value)
|
|
{
|
|
gchar* pattern = NULL;
|
|
gchar* _tmp0_;
|
|
const gchar* _tmp2_;
|
|
gchar* _tmp3_;
|
|
gchar* result;
|
|
#line 26 "../src/utils.vala"
|
|
g_return_val_if_fail (unit != NULL, NULL);
|
|
#line 27 "../src/utils.vala"
|
|
_tmp0_ = g_strdup ("%0.0f%s");
|
|
#line 27 "../src/utils.vala"
|
|
pattern = _tmp0_;
|
|
#line 28 "../src/utils.vala"
|
|
if (live_chart_has_fractional_part (value)) {
|
|
#line 93 "utils.c"
|
|
gchar* _tmp1_;
|
|
#line 29 "../src/utils.vala"
|
|
_tmp1_ = g_strdup ("%0.2f%s");
|
|
#line 29 "../src/utils.vala"
|
|
_g_free0 (pattern);
|
|
#line 29 "../src/utils.vala"
|
|
pattern = _tmp1_;
|
|
#line 101 "utils.c"
|
|
}
|
|
#line 31 "../src/utils.vala"
|
|
_tmp2_ = pattern;
|
|
#line 31 "../src/utils.vala"
|
|
_tmp3_ = g_strdup_printf (_tmp2_, value, unit);
|
|
#line 31 "../src/utils.vala"
|
|
result = _tmp3_;
|
|
#line 31 "../src/utils.vala"
|
|
_g_free0 (pattern);
|
|
#line 31 "../src/utils.vala"
|
|
return result;
|
|
#line 113 "utils.c"
|
|
}
|
|
|
|
static gfloat*
|
|
_float_dup (gfloat* self)
|
|
{
|
|
gfloat* dup;
|
|
#line 37 "../src/utils.vala"
|
|
dup = g_new0 (gfloat, 1);
|
|
#line 37 "../src/utils.vala"
|
|
memcpy (dup, self, sizeof (gfloat));
|
|
#line 37 "../src/utils.vala"
|
|
return dup;
|
|
#line 126 "utils.c"
|
|
}
|
|
|
|
static gint
|
|
__lambda4_ (gint a,
|
|
gint b)
|
|
{
|
|
gint result;
|
|
#line 57 "../src/utils.vala"
|
|
result = a - b;
|
|
#line 57 "../src/utils.vala"
|
|
return result;
|
|
#line 138 "utils.c"
|
|
}
|
|
|
|
static gint
|
|
___lambda4__gcompare_data_func (gconstpointer a,
|
|
gconstpointer b,
|
|
gpointer self)
|
|
{
|
|
gint result;
|
|
result = __lambda4_ ((gint) ((gintptr) a), (gint) ((gintptr) b));
|
|
#line 56 "../src/utils.vala"
|
|
return result;
|
|
#line 150 "utils.c"
|
|
}
|
|
|
|
GeeList*
|
|
live_chart_golden_divisors (gfloat value)
|
|
{
|
|
gfloat _tmp1_ = 0.0F;
|
|
gfloat factor = 0.0F;
|
|
gfloat working_value = 0.0F;
|
|
gfloat sqrt = 0.0F;
|
|
GeeArrayList* divs = NULL;
|
|
GeeArrayList* _tmp2_;
|
|
GeeArrayList* _tmp7_;
|
|
GeeArrayList* ndivs = NULL;
|
|
GeeArrayList* _tmp8_;
|
|
gint last_div = 0;
|
|
GeeArrayList* _tmp9_;
|
|
gpointer _tmp10_;
|
|
GeeList* result;
|
|
#line 36 "../src/utils.vala"
|
|
if (value == ((gfloat) 0)) {
|
|
#line 171 "utils.c"
|
|
GeeArrayList* _tmp0_;
|
|
#line 37 "../src/utils.vala"
|
|
_tmp0_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL);
|
|
#line 37 "../src/utils.vala"
|
|
result = (GeeList*) _tmp0_;
|
|
#line 37 "../src/utils.vala"
|
|
return result;
|
|
#line 179 "utils.c"
|
|
}
|
|
#line 41 "../src/utils.vala"
|
|
if (value < ((gfloat) 10)) {
|
|
#line 41 "../src/utils.vala"
|
|
_tmp1_ = live_chart_cap (100 / value);
|
|
#line 185 "utils.c"
|
|
} else {
|
|
#line 41 "../src/utils.vala"
|
|
_tmp1_ = 1.f;
|
|
#line 189 "utils.c"
|
|
}
|
|
#line 41 "../src/utils.vala"
|
|
factor = _tmp1_;
|
|
#line 42 "../src/utils.vala"
|
|
working_value = value * factor;
|
|
#line 44 "../src/utils.vala"
|
|
sqrt = sqrtf (working_value);
|
|
#line 45 "../src/utils.vala"
|
|
_tmp2_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL);
|
|
#line 45 "../src/utils.vala"
|
|
divs = _tmp2_;
|
|
#line 201 "utils.c"
|
|
{
|
|
gint i = 0;
|
|
#line 47 "../src/utils.vala"
|
|
i = 1;
|
|
#line 206 "utils.c"
|
|
{
|
|
gboolean _tmp3_ = FALSE;
|
|
#line 47 "../src/utils.vala"
|
|
_tmp3_ = TRUE;
|
|
#line 47 "../src/utils.vala"
|
|
while (TRUE) {
|
|
#line 47 "../src/utils.vala"
|
|
if (!_tmp3_) {
|
|
#line 215 "utils.c"
|
|
gint _tmp4_;
|
|
#line 47 "../src/utils.vala"
|
|
_tmp4_ = i;
|
|
#line 47 "../src/utils.vala"
|
|
i = _tmp4_ + 1;
|
|
#line 221 "utils.c"
|
|
}
|
|
#line 47 "../src/utils.vala"
|
|
_tmp3_ = FALSE;
|
|
#line 47 "../src/utils.vala"
|
|
if (!(((gfloat) i) <= sqrt)) {
|
|
#line 47 "../src/utils.vala"
|
|
break;
|
|
#line 229 "utils.c"
|
|
}
|
|
#line 48 "../src/utils.vala"
|
|
if (fmodf (working_value, i) == ((gfloat) 0)) {
|
|
#line 233 "utils.c"
|
|
GeeArrayList* _tmp5_;
|
|
gfloat tmp = 0.0F;
|
|
#line 49 "../src/utils.vala"
|
|
_tmp5_ = divs;
|
|
#line 49 "../src/utils.vala"
|
|
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, (gpointer) ((gintptr) i));
|
|
#line 50 "../src/utils.vala"
|
|
tmp = working_value / i;
|
|
#line 51 "../src/utils.vala"
|
|
if (tmp != ((gfloat) i)) {
|
|
#line 244 "utils.c"
|
|
GeeArrayList* _tmp6_;
|
|
#line 52 "../src/utils.vala"
|
|
_tmp6_ = divs;
|
|
#line 52 "../src/utils.vala"
|
|
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp6_, (gpointer) ((gintptr) tmp));
|
|
#line 250 "utils.c"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#line 56 "../src/utils.vala"
|
|
_tmp7_ = divs;
|
|
#line 56 "../src/utils.vala"
|
|
gee_list_sort ((GeeList*) _tmp7_, ___lambda4__gcompare_data_func, NULL, NULL);
|
|
#line 60 "../src/utils.vala"
|
|
_tmp8_ = gee_array_list_new (G_TYPE_FLOAT, (GBoxedCopyFunc) _float_dup, (GDestroyNotify) g_free, NULL, NULL, NULL);
|
|
#line 60 "../src/utils.vala"
|
|
ndivs = _tmp8_;
|
|
#line 61 "../src/utils.vala"
|
|
_tmp9_ = divs;
|
|
#line 61 "../src/utils.vala"
|
|
_tmp10_ = gee_list_last ((GeeList*) _tmp9_);
|
|
#line 61 "../src/utils.vala"
|
|
last_div = (gint) ((gintptr) _tmp10_);
|
|
#line 270 "utils.c"
|
|
{
|
|
gint i = 0;
|
|
GeeArrayList* _tmp11_;
|
|
gint _tmp12_;
|
|
gint _tmp13_;
|
|
#line 62 "../src/utils.vala"
|
|
_tmp11_ = divs;
|
|
#line 62 "../src/utils.vala"
|
|
_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
|
|
#line 62 "../src/utils.vala"
|
|
_tmp13_ = _tmp12_;
|
|
#line 62 "../src/utils.vala"
|
|
i = _tmp13_ - 1;
|
|
#line 284 "utils.c"
|
|
{
|
|
gboolean _tmp14_ = FALSE;
|
|
#line 62 "../src/utils.vala"
|
|
_tmp14_ = TRUE;
|
|
#line 62 "../src/utils.vala"
|
|
while (TRUE) {
|
|
#line 291 "utils.c"
|
|
gint current = 0;
|
|
GeeArrayList* _tmp16_;
|
|
gpointer _tmp17_;
|
|
GeeArrayList* _tmp18_;
|
|
gfloat _tmp19_;
|
|
#line 62 "../src/utils.vala"
|
|
if (!_tmp14_) {
|
|
#line 299 "utils.c"
|
|
gint _tmp15_;
|
|
#line 62 "../src/utils.vala"
|
|
_tmp15_ = i;
|
|
#line 62 "../src/utils.vala"
|
|
i = _tmp15_ - 1;
|
|
#line 305 "utils.c"
|
|
}
|
|
#line 62 "../src/utils.vala"
|
|
_tmp14_ = FALSE;
|
|
#line 62 "../src/utils.vala"
|
|
if (!(i >= 0)) {
|
|
#line 62 "../src/utils.vala"
|
|
break;
|
|
#line 313 "utils.c"
|
|
}
|
|
#line 63 "../src/utils.vala"
|
|
_tmp16_ = divs;
|
|
#line 63 "../src/utils.vala"
|
|
_tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, i);
|
|
#line 63 "../src/utils.vala"
|
|
current = (gint) ((gintptr) _tmp17_);
|
|
#line 64 "../src/utils.vala"
|
|
if ((last_div / current) != 2) {
|
|
#line 65 "../src/utils.vala"
|
|
continue;
|
|
#line 325 "utils.c"
|
|
}
|
|
#line 67 "../src/utils.vala"
|
|
_tmp18_ = ndivs;
|
|
#line 67 "../src/utils.vala"
|
|
_tmp19_ = (gfloat) current;
|
|
#line 67 "../src/utils.vala"
|
|
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp18_, &_tmp19_);
|
|
#line 68 "../src/utils.vala"
|
|
last_div = current;
|
|
#line 335 "utils.c"
|
|
}
|
|
}
|
|
}
|
|
#line 71 "../src/utils.vala"
|
|
result = (GeeList*) ndivs;
|
|
#line 71 "../src/utils.vala"
|
|
_g_object_unref0 (divs);
|
|
#line 71 "../src/utils.vala"
|
|
return result;
|
|
#line 345 "utils.c"
|
|
}
|
|
|
|
gint
|
|
live_chart_num_of_digits (gint value)
|
|
{
|
|
gint num_digits = 0;
|
|
gint result;
|
|
#line 75 "../src/utils.vala"
|
|
num_digits = 0;
|
|
#line 76 "../src/utils.vala"
|
|
while (TRUE) {
|
|
#line 357 "utils.c"
|
|
gint _tmp0_;
|
|
#line 76 "../src/utils.vala"
|
|
if (!(value != 0)) {
|
|
#line 76 "../src/utils.vala"
|
|
break;
|
|
#line 363 "utils.c"
|
|
}
|
|
#line 77 "../src/utils.vala"
|
|
value = value / 10;
|
|
#line 78 "../src/utils.vala"
|
|
num_digits = num_digits + 1;
|
|
#line 78 "../src/utils.vala"
|
|
_tmp0_ = num_digits;
|
|
#line 371 "utils.c"
|
|
}
|
|
#line 81 "../src/utils.vala"
|
|
result = num_digits;
|
|
#line 81 "../src/utils.vala"
|
|
return result;
|
|
#line 377 "utils.c"
|
|
}
|
|
|
|
static inline gpointer
|
|
_vala_memdup2 (gconstpointer mem,
|
|
gsize byte_size)
|
|
{
|
|
gpointer new_mem;
|
|
if (mem && byte_size != 0) {
|
|
new_mem = g_malloc (byte_size);
|
|
memcpy (new_mem, mem, byte_size);
|
|
} else {
|
|
new_mem = NULL;
|
|
}
|
|
return new_mem;
|
|
}
|
|
|