Ahhh... of course, since we change the scale from 2⁰ to 2⁻¹! Nice catch.
Type: Posts; User: flp1969
Ahhh... of course, since we change the scale from 2⁰ to 2⁻¹! Nice catch.
Looks like you are trying to mimic the asprintf() GNU's function:
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
int asprintf ( char **p, char *fmt, ... )
{
int size;
There are some predefined symbols for Windows: _WIN32 (this exists on mingw and VC++), __WINNT__
That's interesting, Malcom! I completely forgot about linear interpolation!
#include <stdlib.h>
#include <float.h>
#define lerp(min_, max_, norm) \
( (min_)*(1.0 - (norm)) + (max_)*(norm)...
In time: You are correct about the duplicates. There are none. My mistake.
That's a common mistake. The precision of a floating point type is measured in bits, not decimal digits. In the case of a `double` type, using IEEE 754 format, if you have all the 53 bits set (the...
Hummm... sorry again, john.c... Taking another look, your approach use the range between -0.999999999068677425384521484375 and 0.999999999068677425384521484375, inclusive. Mine is wider, from...
Interesting the use of casting to unsigned int to avoid overflows. I have only 1 consideration:
RAND_MAX not necessarily is INT_MAX. It could be UINT_MAX. But, of course, rand() returns an int......
My soluction: Reducing precision by 1 ULP.
#include <stdlib.h>
#include <math.h>
#include <float.h>
// Transform rand() return value to [-1.0 e 1.0] range.
#define XFRM_RAND(x) ( 2.0 *...
INCLUDING these two is, of course, very easy. Excluding them is easy too, but there is a trick.
Of course, I'm waiting to see some code before showing it... :)
Do you know how to get a random value in an interval of 0 to 2?
And... are you sure you need to exclude -1 and 1?
I adivce against this affirmative. For example:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int main ( void )
{
The rand() function is often implemented using a "pseudo random number generator" called "linear congruence generator" (LCG). Most (if not all) "pseudo random number generators" depends on an initial...
You need to specify an initial "random" seed before using rand():
#include <stdio.h>
#include <stdlib.h>
#ifndef _WIN32
#include <unistd.h>
#include <fcntl.h>
#else
#include <time.h>
Linear congruential generator - Wikipedia
Anyway... try libpng: libpng Home Page (libpng-dev, on Debian/Ubuntu).
ISO 9899:1999 (and beyond):
7.19.7.10 § 2: "The puts function writes the string pointed to by s to the stream pointed to by stdout, and appends a new-line character to the output. The terminating...
I don't... puts() aumatically puts a '\n' the end of the string when printing...
You are using P6 instead of P3... P6 is for BINARY RGB values, P3 is for textual numeric values.
Not random. Can't you see the pattern?
#include <stdio.h>
#include <limits.h>
#include <time.h>
#define bitsof(x) (sizeof(x)*CHAR_BIT)
static unsigned int val2rgb( unsigned int x )
{
Only if one of the pointers is NULL. Or, putting the other way: If any of the fopen() fails.
Consider the case where file1 != NULL, file2 == NULL and file3 != NULL (failed to open file2 only)...
if ( file1 == NULL && file2 == NULL && file3 == NULL )
Will evaluate to:
if ( 0 && 1 && 0...
You are assuming:
1- Struct members alignment/padding will be the same for any architecture (false);
2- All architetures use the same endianmess (false);
3- All architectures use IEEE 754 format...
Indentation is a good start
One question: Since the lines (except the header) are fixed as
<int> <int> <int> <string>
Where string has no spaces, Why not read a line and use sscanf() to get these values?
char...