![]() |
Bsoft 2.1.4
Bernard's software package
|
Library functions useful in all the package. More...
#include <errno.h>
#include <sys/sysctl.h>
#include <stdio.h>
#include "utilities.h"
#include <iostream>
Macros | |
#define | MAX_GET_LEN 32 |
Functions | |
int | verbose (0) |
int | thread_limit (1000000) |
ostream & | tab (ostream &out) |
int | cmd_line (int argc, char **argv) |
Reconstructs the command line as a global string. More... | |
Bstring | command_line () |
Returns the command line. More... | |
Bstring | command_line_time () |
Returns the command line and time in a string. More... | |
string | command_line_time2 () |
string | get_user_name () |
Returns the user name. More... | |
void | usage (const char **use, int all) |
Prints usage information. More... | |
SysType | systype (int show) |
Finds the system type - mostly just for byte order. More... | |
size_t | system_processors () |
Returns the number of processors. More... | |
long | system_memory () |
Returns system memory size. More... | |
int | memory_check (long mem_required) |
Checking if there is enough memory, abort if not. More... | |
int | bexit (int value) |
Exit function for cleanup and debugging. More... | |
DataType | getdatatype (char letter) |
Get the data type indicated by a single letter code. More... | |
CompoundType | getcompoundtype (int ch, string sct) |
Get the compound type indicated by a single letter code. More... | |
int | select_numbers (Bstring &string, int n, int *numsel) |
Converts a string with a selection specification into an integer array. More... | |
vector< int > | select_numbers (Bstring &string, int n) |
int | findNextPowerOf (int startNumber, int powerOf) |
Finds the next greatest number that is a power of a given number. More... | |
int | get_integer (char *ptr, int len) |
Converts a defined length string into an integer. More... | |
float | get_float (char *ptr, int len) |
Converts a defined length string into a floating point number. More... | |
void | swapbytes (unsigned char *v, size_t n) |
Swaps bytes. More... | |
void | swapbytes (size_t size, unsigned char *v, size_t n) |
Swaps bytes. More... | |
void | vax2ieee (unsigned char *v, int sb) |
Converts VAX floating point format to IEEE floating point format. More... | |
double | angle_set_negPI_to_PI (double angle) |
Returns an angle between -PI and PI. More... | |
double | angle_set_0_to_TWOPI (double angle) |
Returns an angle between 0 and 2*PI. More... | |
float | remove_negative_zeros (float value0, float threshold) |
Prevent a negative sign from being placed in front of zero value in a text file. More... | |
size_t | get_chunk_size (size_t datasize) |
Returns the chunk size per thread. More... | |
size_t | get_chunk_size (size_t datasize, size_t c) |
Returns the chunk size per thread. More... | |
int | error_show (const char *message, const char *file, int line) |
Displays the error with file and line reference. More... | |
int | error_show (string message, string file, int line) |
Displays the error with file and line reference. More... | |
Variables | |
string | command |
Library functions useful in all the package.
#define MAX_GET_LEN 32 |
double angle_set_0_to_TWOPI | ( | double | angle | ) |
Returns an angle between 0 and 2*PI.
angle | input angle. |
double angle_set_negPI_to_PI | ( | double | angle | ) |
Returns an angle between -PI and PI.
angle | input angle. |
int bexit | ( | int | value | ) |
Exit function for cleanup and debugging.
value | exit value. |
int cmd_line | ( | int | argc, |
char ** | argv | ||
) |
Reconstructs the command line as a global string.
argc | the number of command line arguments. |
**argv | the command line arguments. |
Concatenates the command line arguments into one string.
Bstring command_line | ( | ) |
Returns the command line.
This is designed to pack the command line into a string.
Bstring command_line_time | ( | ) |
Returns the command line and time in a string.
This is designed to pack the command line into a string followed by a second string for the time.
string command_line_time2 | ( | ) |
int error_show | ( | const char * | message, |
const char * | file, | ||
int | line | ||
) |
Displays the error with file and line reference.
*message | a string to be included. |
*file | the file name (should be FILE). |
line | the line number (should be LINE). |
The function uses perror() to display a message containing the source file and line number where it originated.Reference: Derived from CCP4 code
int error_show | ( | string | message, |
string | file, | ||
int | line | ||
) |
Displays the error with file and line reference.
*message | a string to be included. |
*file | the file name (should be FILE). |
line | the line number (should be LINE). |
The function uses perror() to display a message containing the source file and line number where it originated.Reference: Derived from CCP4 code
int findNextPowerOf | ( | int | startNumber, |
int | powerOf | ||
) |
Finds the next greatest number that is a power of a given number.
startNumber | number to begin from. |
powerOf | power of this number is the number returned. |
Loop through the powerOf variable, multiplying it each successive iteration until it is greater than the starting number. Eg., the next greatest power of 2 starting at 100 is 128.
size_t get_chunk_size | ( | size_t | datasize | ) |
Returns the chunk size per thread.
datasize | size of data to be divided into chunks. |
If multiple processors are used, the chunk size is set to the data size divided by the number of processors. Otherwise, the chunk size is equal to the data size.Reference: Derived from CCP4 code
size_t get_chunk_size | ( | size_t | datasize, |
size_t | c | ||
) |
Returns the chunk size per thread.
datasize | size of data to be divided into chunks. |
c | channel size to align chunk to. |
If multiple processors are used, the chunk size is set to the data size divided by the number of processors. Otherwise, the chunk size is equal to the data size.Reference: Derived from CCP4 code
float get_float | ( | char * | ptr, |
int | len | ||
) |
Converts a defined length string into a floating point number.
*ptr | pointer to the string. |
len | length to be scanned. |
The string is copied, 0-terminated, and scanned for a floating point number.
int get_integer | ( | char * | ptr, |
int | len | ||
) |
Converts a defined length string into an integer.
*ptr | pointer to the string. |
len | length to be scanned. |
The string is copied, 0-terminated, and scanned for an integer.
string get_user_name | ( | ) |
Returns the user name.
It uses getpwuid_r (thread safe) to find the user in the password file.
CompoundType getcompoundtype | ( | int | ch, |
string | sct | ||
) |
Get the compound type indicated by a single letter code.
ch | number of channels. |
sct | string indicating compound type. |
This function is used in optional command-line arguments to indicate a new compound type for an image.
DataType getdatatype | ( | char | letter | ) |
Get the data type indicated by a single letter code.
letter | letter indicating data type. |
This function is used in optional command-line arguments to indicate a new data type for an image.
int memory_check | ( | long | mem_required | ) |
Checking if there is enough memory, abort if not.
mem_required | memory required. |
float remove_negative_zeros | ( | float | value0, |
float | threshold | ||
) |
Prevent a negative sign from being placed in front of zero value in a text file.
value0 | input value to be tested |
threshold | a small negative number |
This function is intended to be used when obvious zero values are set to a very small negative number. Input value is set to zero if value0 > threshold and value0 < 0 If so, the value is reset to zero. Otherwise, the input value is returned.Reference: Derived from CCP4 code
vector< int > select_numbers | ( | Bstring & | string, |
int | n | ||
) |
int select_numbers | ( | Bstring & | string, |
int | n, | ||
int * | numsel | ||
) |
Converts a string with a selection specification into an integer array.
&string | string. |
n | length of integer array. |
*numsel | pre-allocated integer array. |
The integer array must be allocated to a length that would accommodate the highest number in the selection. If the string length is zero, all elements are selected. Multiple subsets are separated by colons
void swapbytes | ( | size_t | size, |
unsigned char * | v, | ||
size_t | n | ||
) |
Swaps bytes.
size | size of the block to be swapped. |
*v | a pointer to the bytes. |
n | number of bytes to swap. Byte swapping is done in place. |
void swapbytes | ( | unsigned char * | v, |
size_t | n | ||
) |
Swaps bytes.
*v | a pointer to the bytes. |
n | number of bytes to swap. Byte swapping is done in place. |
long system_memory | ( | ) |
Returns system memory size.
size_t system_processors | ( | ) |
Returns the number of processors.
SysType systype | ( | int | show | ) |
Finds the system type - mostly just for byte order.
show | a flag to indicate if the result should be shown. |
Test the byte order of an arbitrary byte sequence by interpreting it as an integer or a floating point number.
ostream & tab | ( | ostream & | out | ) |
int thread_limit | ( | 1000000 | ) |
void usage | ( | const char ** | use, |
int | all | ||
) |
Prints usage information.
**use | the string array. |
all | flag to output all usage information. The usage information must be written into an array of srings, with each string a line and following a specific convention for the Bsoft package. The first line with non-space characters must start with "Usage:" followed by the command-line syntax. The next lines should describe the program. The options are indicated by lines strating with "-". The options are categorized as "Actions", "Parameters", "Input", and "Output". This constitutes the brief form. An additional section can be added as "Examples", that is shown only when the "all" argument is set. |
void vax2ieee | ( | unsigned char * | v, |
int | sb | ||
) |
Converts VAX floating point format to IEEE floating point format.
*v | four-byte array holding the floating point value |
sb | flag to swap bytes before conversion Swap bytes prior to conversion if the swap flag is set. Handle special cases of zero, infinity, NaN or normalized values Otherwise assign the new byte valuesReference: Derived from CCP4 code |
int verbose | ( | 0 | ) |
string command |