ldmc/morphisms/zigzag.morphism-base

27 lines
480 B
Text
Raw Normal View History

```
```
morph_i64_as_twos_complement_to_zigzag ()
2025-03-20 16:28:16 +01:00
~ native.Int64
--> ~ ZigZagInt ~ ~ native.UInt64
```
if( *src >= 0 ) {
*dst = (2 * (uint64_t)*src)
} else {
*dst = (2 * (uint64_t)(- *src)) - 1;
}
return 0;
```
morph_i64_as_zigzag_to_twos_complement ()
2025-03-20 16:28:16 +01:00
~ ZigZagInt ~ ~ native.UInt64
--> ~ native.Int64
```
if( *src % 2 == 0 ) {
*dst = *src / 2;
} else {
*dst = - ((*src+1) / 2);
}
```