@kv  0.0.4
Library for graph problems in C and Python
array.h File Reference
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <at/core.h>

Go to the source code of this file.

Classes

struct  AtArrayHeader
 A directed weighted grid graph. More...
 

Macros

#define AT_DECLARE_ARRAY(UPPER, type)
 Vetor Multidimensional. More...
 
#define at_array_index_to_nd(array, s, s_nd)   at_index_to_nd(array->h.dim, array->h.step,s,s_nd)
 Convert 1D to ND.
 
#define at_array_index_to_1d(array, s_nd, s)   at_index_to_1d(array->h.dim, array->h.step,s_nd,s)
 Convert ND to 1D.
 
#define at_array_max(array)
 File max of array. More...
 
#define at_array_destroy(array_ptr)
 Delete array. More...
 
#define at_array_save(arrays, names, num, filename)   at_arrayu8_save((AtArrayU8**)arrays,names,num,filename);
 Save array to file.
 

Functions

void at_index_to_nd (uint8_t dim, uint64_t *step, uint64_t s, uint64_t *s_nd)
 at_index_to_nd More...
 
void at_index_to_1d (uint8_t dim, uint64_t *step, int64_t *s_nd, uint64_t *s)
 at_index_to_1d More...
 
void at_array_header_init (AtArrayHeader *header)
 at_array_header_init More...
 
void at_array_header_set (AtArrayHeader *header, uint8_t dim, uint64_t *shape)
 at_array_header_set More...
 
void at_array_header_dispose (AtArrayHeader *header)
 at_array_header_dispose More...
 
void at_arrayu8_save (AtArrayU8 **arrays, char **names, uint8_t num, const char *filename)
 at_arrayu8_save More...
 
AtArrayU8 * at_array_load (char ***namesp, uint8_t *nump, const char *filename)
 at_array_load More...
 
void at_arrayu8_set_nd_many (AtArrayU8 *ar, uint64_t *coords, uint8_t *value)
 at_arrayu8_set_nd_many More...
 
void at_arrayu16_sub_u8 (AtArrayU16 *ar, AtRange *ranges, AtArrayU8 **output)
 at_arrayu16_sub_u8 More...
 
void at_arrayheader_squeeze (AtArrayHeader *h)
 at_arrayheader_squeeze More...
 

Detailed Description

This file is part of the atkv project. Copyright 2016 Anderson Tavares noctu.nosp@m.rne..nosp@m.pe@gm.nosp@m.ail..nosp@m.com.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

#define at_array_destroy (   array_ptr)
Value:
_Generic((array_ptr), \
AtArrayU8**: at_arrayu8_destroy \
)(array_ptr)

Delete array.

#define at_array_max (   array)
Value:
_Generic((array), \
AtArrayU8*:at_arrayu8_max)(array)

File max of array.

#define AT_DECLARE_ARRAY (   UPPER,
  type 
)
Value:
typedef struct AtArray##UPPER{ \
AtArrayHeader h; /*00-31*/ \
type *data; /*32-39*/ \
}AtArray##UPPER;

Vetor Multidimensional.

Para criar um vetor, é necessário saber a dimensão (dim) e o tamanho (shape) de cada uma. Por exemplo, podemos criar uma matriz bidimensional 5x4: dim = 2 e shape={5,4}. Note-se que o tamanho é {Y,X} e não {X,Y}, e dimensões adicionais devem ser colocadas primeiro ({Z,Y,X} por exemplo). dimensão é uint8 e shape é um array de uint64.

Function Documentation

void at_array_header_dispose ( AtArrayHeader header)

at_array_header_dispose

Parameters
header
void at_array_header_init ( AtArrayHeader header)

at_array_header_init

Parameters
header
void at_array_header_set ( AtArrayHeader header,
uint8_t  dim,
uint64_t *  shape 
)

at_array_header_set

Parameters
header
dim
shape
AtArrayU8* at_array_load ( char ***  namesp,
uint8_t *  nump,
const char *  filename 
)

at_array_load

Parameters
namesp
nump
filename
Returns
void at_arrayheader_squeeze ( AtArrayHeader h)

at_arrayheader_squeeze

Parameters
h
void at_arrayu16_sub_u8 ( AtArrayU16 *  ar,
AtRange ranges,
AtArrayU8 **  output 
)

at_arrayu16_sub_u8

Parameters
ar
ranges
output
void at_arrayu8_save ( AtArrayU8 **  arrays,
char **  names,
uint8_t  num,
const char *  filename 
)

at_arrayu8_save

Parameters
arrays
names
num
filename
void at_arrayu8_set_nd_many ( AtArrayU8 *  ar,
uint64_t *  coords,
uint8_t *  value 
)

at_arrayu8_set_nd_many

Parameters
ar
coords
value
void at_index_to_1d ( uint8_t  dim,
uint64_t *  step,
int64_t *  s_nd,
uint64_t *  s 
)

at_index_to_1d

Parameters
dim
step
s_nd
s
void at_index_to_nd ( uint8_t  dim,
uint64_t *  step,
uint64_t  s,
uint64_t *  s_nd 
)

at_index_to_nd

Parameters
dim
step
s
s_nd