Background for purpose sparse/compressible data structure/compressible honeycumbs, vague description to give you an idea: This would allow an array of [0..255] connection points hopefully. If all of the connection points would be empty it could be collapsed. Also 0..255 is a nice 8 bit index. Which would allow for example 64 bit indexes to be divided into 8x8 bit indexes to seek more efficiently across the earth/3d sphere for a max of 8 trips to DRAM 100 or 80 nanoseconds.
For example: Array[A,B,C,D,E] of connection points, or whatever resolution is desired.
Revealing the invention a little bit: Where the array consists out of multiple arrays connected together. Two data structures: 1: Array of pointer. 2: Array of data.
The intermediate arrays are pointers. The final array is data.
Two new concepts introduced based on nil pointer: empty pointer, full pointer. Using 64 KB of first virtual memory addresses would be safest: empty = 1; full = 2; Could also be implemented as: empty:=@empty; full:=@full; to use these virtual memory addresses as an indicator like nil, so that the compiler pulls them out of virtual memory space, like reserved addresses, like 0/nil.
then code to handle these pointers is something like: if not nil if not empty if not full then contains data pointer.
Also set/get would compress/expand data structure as necessery as count goes from 1 to 0 or from 256 to 255 or less.
Count could be a byte to save space.
Alternatively the counter could be left out to save memory and instead scan the array to see if all are empty or all or full, and if so remove the array and replace by single pointer in upper array to save memory and collapse/remove/recycle the pointer array.
memory consumption would be: pointer array: 256 x the size of a pointer + optionally 1 counter of 1 byte. data array: 256 x the size of a data element. root pointer: size of a pointer.
Background for purpose sparse/compressible data structure/compressible honeycumbs, vague description to give you an idea: This would allow an array of [0..255] connection points hopefully. If all of the connection points would be empty it could be collapsed. Also 0..255 is a nice 8 bit index. Which would allow for example 64 bit indexes to be divided into 8x8 bit indexes to seek more efficiently across the earth/3d sphere for a max of 8 trips to DRAM 100 or 80 nanoseconds.
For example: Array[A,B,C,D,E] of connection points, or whatever resolution is desired.
Revealing the invention a little bit: Where the array consists out of multiple arrays connected together. Two data structures: 1: Array of pointer. 2: Array of data.
The intermediate arrays are pointers. The final array is data.
Two new concepts introduced based on nil pointer: empty pointer, full pointer. Using 64 KB of first virtual memory addresses would be safest: empty = 1; full = 2; Could also be implemented as: empty:=@empty; full:=@full; to use these virtual memory addresses as an indicator like nil, so that the compiler pulls them out of virtual memory space, like reserved addresses, like 0/nil.
then code to handle these pointers is something like: if not nil if not empty if not full then contains data pointer.
Also set/get would compress/expand data structure as necessery as count goes from 1 to 0 or from 256 to 255 or less.
Count could be a byte to save space.
Alternatively the counter could be left out to save memory and instead scan the array to see if all are empty or all or full, and if so remove the array and replace by single pointer in upper array to save memory and collapse/remove/recycle the pointer array.
memory consumption would be: pointer array: 256 x the size of a pointer + optionally 1 counter of 1 byte. data array: 256 x the size of a data element. root pointer: size of a pointer.
Share Improve this question asked yesterday oOooOo 2911 gold badge2 silver badges16 bronze badges 1- Have you ever looked at the polygons on a football? – Martin Brown Commented yesterday
1 Answer
Reset to default 0If I understand the question (ignoring the apparent mention of a "256-sided polygon"!), then you can divide the surface of a sphere into 256 areas, very simply with 16 meridians and 15 parallels on a Mercator projection.