GRASS GIS 8 Programmer's Manual 8.4.1(2025)-45ca3179ab
Loading...
Searching...
No Matches
address.c File Reference

Address routines. More...

#include "local_proto.h"
Include dependency graph for address.c:

Go to the source code of this file.

Macros

#define SEG_N_ROW_NONZERO(SEG, row, col)
 
#define SEG_INDEX_ROW_NONZERO(SEG, row, col)
 
#define SEG_N_ROW_ZERO(SEG, col)
 
#define SEG_INDEX_ROW_ZERO(SEG, col)
 
#define INDEX_ADJ(SEG, i)
 

Functions

int seg_address_fast (const SEGMENT *SEG, off_t row, off_t col, int *n, int *index)
 
int seg_address_slow (const SEGMENT *SEG, off_t row, off_t col, int *n, int *index)
 
int seg_address (const SEGMENT *SEG, off_t row, off_t col, int *n, int *index)
 Internal use only.
 

Detailed Description

Address routines.

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
GRASS GIS Development Team
Date
2005-2009

Definition in file address.c.

Macro Definition Documentation

◆ INDEX_ADJ

#define INDEX_ADJ ( SEG,
i )
Value:
((SEG)->fast_seek ? ((i) << (SEG)->lenbits) : ((i) * (SEG)->len))

Definition at line 27 of file address.c.

Referenced by seg_address_fast().

◆ SEG_INDEX_ROW_NONZERO

#define SEG_INDEX_ROW_NONZERO ( SEG,
row,
col )
Value:
((((row) & ((SEG)->srows - 1)) << (SEG)->scolbits) + \
((col) & ((SEG)->scols - 1)))

Definition at line 19 of file address.c.

Referenced by seg_address_fast().

◆ SEG_INDEX_ROW_ZERO

#define SEG_INDEX_ROW_ZERO ( SEG,
col )
Value:
((col) & ((SEG)->scols - 1))

Definition at line 25 of file address.c.

Referenced by seg_address_fast().

◆ SEG_N_ROW_NONZERO

#define SEG_N_ROW_NONZERO ( SEG,
row,
col )
Value:
(((row) >> (SEG)->srowbits) * (SEG)->spr + ((col) >> (SEG)->scolbits))

Definition at line 16 of file address.c.

Referenced by seg_address_fast().

◆ SEG_N_ROW_ZERO

#define SEG_N_ROW_ZERO ( SEG,
col )
Value:
((col) >> (SEG)->scolbits)

Definition at line 23 of file address.c.

Referenced by seg_address_fast().

Function Documentation

◆ seg_address()

int seg_address ( const SEGMENT * SEG,
off_t row,
off_t col,
int * n,
int * index )

Internal use only.

Gets segment address and setsn and index.

Parameters
[in]SEGsegment
[in]row
[in]col
[in,out]n
[in,out]index
Returns
always returns 0

Definition at line 108 of file address.c.

◆ seg_address_fast()

int seg_address_fast ( const SEGMENT * SEG,
off_t row,
off_t col,
int * n,
int * index )

Definition at line 30 of file address.c.

References INDEX_ADJ, SEG_INDEX_ROW_NONZERO, SEG_INDEX_ROW_ZERO, SEG_N_ROW_NONZERO, and SEG_N_ROW_ZERO.

Referenced by seg_setup().

◆ seg_address_slow()

int seg_address_slow ( const SEGMENT * SEG,
off_t row,
off_t col,
int * n,
int * index )

Definition at line 74 of file address.c.

Referenced by seg_setup().