tlds
Transactional Operations for Linked Data Structures
|
#include <assert.h>
#include <stdlib.h>
#include "coordinate.h"
#include "grid.h"
#include "queue.h"
#include "router.h"
#include "tm.h"
#include "vector.h"
Classes | |
struct | point |
Typedefs | |
typedef enum momentum | momentum_t |
typedef struct point | point_t |
Enumerations | |
enum | momentum { MOMENTUM_ZERO = 0, MOMENTUM_POSX = 1, MOMENTUM_POSY = 2, MOMENTUM_POSZ = 3, MOMENTUM_NEGX = 4, MOMENTUM_NEGY = 5, MOMENTUM_NEGZ = 6 } |
Functions | |
router_t * | router_alloc (long xCost, long yCost, long zCost, long bendCost) |
void | router_free (router_t *routerPtr) |
static void | PexpandToNeighbor (grid_t *myGridPtr, long x, long y, long z, long value, queue_t *queuePtr) |
static bool_t | PdoExpansion (router_t *routerPtr, grid_t *myGridPtr, queue_t *queuePtr, coordinate_t *srcPtr, coordinate_t *dstPtr) |
static void | traceToNeighbor (grid_t *myGridPtr, point_t *currPtr, point_t *movePtr, bool_t useMomentum, long bendCost, point_t *nextPtr) |
static vector_t * | PdoTraceback (grid_t *gridPtr, grid_t *myGridPtr, coordinate_t *dstPtr, long bendCost) |
void | router_solve (void *argPtr) |
Variables | |
point_t | MOVE_POSX = { 1, 0, 0, 0, MOMENTUM_POSX} |
point_t | MOVE_POSY = { 0, 1, 0, 0, MOMENTUM_POSY} |
point_t | MOVE_POSZ = { 0, 0, 1, 0, MOMENTUM_POSZ} |
point_t | MOVE_NEGX = {-1, 0, 0, 0, MOMENTUM_NEGX} |
point_t | MOVE_NEGY = { 0, -1, 0, 0, MOMENTUM_NEGY} |
point_t | MOVE_NEGZ = { 0, 0, -1, 0, MOMENTUM_NEGZ} |
typedef enum momentum momentum_t |
enum momentum |
|
static |
|
static |
|
static |
router_t* router_alloc | ( | long | xCost, |
long | yCost, | ||
long | zCost, | ||
long | bendCost | ||
) |
void router_free | ( | router_t * | routerPtr | ) |
void router_solve | ( | void * | argPtr | ) |
|
static |
point_t MOVE_NEGX = {-1, 0, 0, 0, MOMENTUM_NEGX} |
point_t MOVE_NEGY = { 0, -1, 0, 0, MOMENTUM_NEGY} |
point_t MOVE_NEGZ = { 0, 0, -1, 0, MOMENTUM_NEGZ} |
point_t MOVE_POSX = { 1, 0, 0, 0, MOMENTUM_POSX} |
point_t MOVE_POSY = { 0, 1, 0, 0, MOMENTUM_POSY} |
point_t MOVE_POSZ = { 0, 0, 1, 0, MOMENTUM_POSZ} |