I have been looking for some time online. everything i know in-fact. ive liked sparse matrix representations, i have found gate level sharing optimization after 'formula reduction' and Inter-Thread Communication Storage. In parallel processing, in particular machine learning, multiple cores seem so important and there are many papers to this effect. There are so many interesting topics i have found out about that all seem to need this.

Double barreled Question

are word sizes are the only standard in machine computation?

word sizes, where 8 bits can represent 256 discrete values and all others are combinations of this standard? If the first answer is yes, why are structures not used in hardware?

Structure - If a byte had 9 bits i probably wouldnt be asking this question. An 81 bit wordsize (that is a page, a cube would be better (8 cubes, each 9 pages of 9x9 trits would be even better.)) would allow for any rotation/position/vector etc to relate to each other with simple bitshifts rather than software trig functions. an example use is the 3d game i made using the structure as global reference (with fractal to/from/through micro/macro scaleabilities) in the same project.

\$9(9(3*3)\$ trits to express \$((9^9)^3)^3\$ positions per cube so, potentially expressing 999999999,999999999,999999999 3 times per cube

\$(1000-n)^(9n)^(45) \$ positions per cube. \$(1000-n)^(9n)^(360) \$ with 8 cubes.

this is vector representation from 0,0,0 up to +/- 81 decimal digits per plane. a register perfectly fitting that range for every degree in the 3 planes. a full 64 is made of 216 cubes

the structure has a fractal growth of \$((8*27)^(27^(27)^9)^2\$ each repeating layer counting up the power by 1.

Orientation/Lateral motion - trig functions are avoided by my input style. the mouse click controls orientation. dragging horizontally controls roll and dragging vertically controls scale. these are in the RotIn2 sprite. wasdeq controls are lateral motion and rely entirely on the orientation to control distance in each plane; ie W = forward 3 (positive 3 z plane). the direction script, at the very bottom left of terminal sprite in my scratch project.

set moveX to (abs(-1 +(abs(currentX-180)/90)

set moveY to (abs(-1 +(abs(currentY-180)/90)

set moveZ to (abs(-1 +(abs(currentZ-180)/90)

\this calculates alignment of the current xyz (where x,y and z can each be 1-360) each is now between 1 and 0 where 1 is a 90 degree tangent to 0

if z plane (forward/back), set X2 to 3*(moveZ-moveX), set Y2 to 3*(moveZ-moveY), set Z2 to 3*moveZ

if x plane (strafe) set X2 to 3*moveX, set Y2 to 3*(moveX-moveY), set Z2 to 3*(moveX-moveZ)

if y plane (vert/drop) set X2 to 3*(moveX-moveZ), set Y2 to 3*moveY, set Z2 to 3*(moveY-moveZ)

set currentX to currentX+X2, set currentY to CurrentY+Y2, set currentZ to currentZ+Z2. \$


Using this structure to represent positions allows representations of triangles very simply. Therefor Regular Polygons. The costumes of sprite 4; i asked myself

A regular polygon drawn with x=0 y=0 as centre point, in simplex (x>0,y=0)v(x2,y2) of {s}. "what smallest X gives the smallest digit count(dc()) for dc(x,y,z)+dc(x2,y2,z2)"

if s=4, representing a square's edge, then x=1 and y2=1. 2 active trits of 9. Easily reproduced in 1 byte through a masked Xor gate.

int masksqx128 masksqy16. square|=sqxsqy. if (byte = 10001000) then it is a square where L= squareroot of 2. As a simplex {4} . simplex are new to me, and awesome, but i have a few ideas as to what else this necessitates mechanically.

if s=5, x=(1+ 2/3) x2=1 y2=1. 4 active trits of 9 (or x=5 x2=3 y2=3. 3 active trits of 27)

in binary coded decimal (if(Xor 01010011)=0)and(if(Xor 00110000)=0) then these 2 bytes are a pentagon.{5}.

if s=6, x=2/3 x2=1/3 y2=1/3. 3 active trits. again, 2 bytes of bcd for 6,3,3 to express all that is needed to make a hexagon and from this all further 2d regular polygons can be made as this is a positive equilateral triangle, L=x.

This can be expanded into an edge of a 3d triangular based pyramid, a tetrahedron, when z2=1/3. L=x. This is equally a cone with hight 1/3 and base radius of 1/6 in 4 active trits of 9. It is possible to express this pyramid in 2 bytes 6,3 and 3,3 for x,x2 and y2,z2 respectively and binary is only just behind by 7 bits, or {3,3} to generalise L.

There is a full representation of a dodecahedron, 12 pentagons = 20 corners = 20 (x,y,z)s, where only 23 trits are active in a single address space with all the required information. what is the optimal expression of a dodecahedron in binary. a Schläfli_symbol? what processes are required to make use of it?

i believe there are many other uses and have been trying to lay this problem onto the structure most recently.


using a representation of .1 to .9 or 1. to 9. probably both, we have a +-81 decimal digits either side of zero in a cube with little effort. a 0. or .0 or even a mid number string of 0 representation could simply be a zero counter. i'd standard 5 trit for up to 10^(162) but potentially up to a 9trit counter.

The neatest way of lining this up with current tech is to split each 8 bit byte into 1 bit for each of the 8 cubes and using 9*81 bytes in representing 8 cubes and an insane amount of control code. Accessing a single trit in the structure would add 2 trits onto the Digit or tryte address...

Addressing - In scratch i have not used the adder and gates, only the scratch blocks +,-, abs etc. (but i did build them and the 9bit base 10 bitshift adder with carry) i have not actually used the trit addressing system, I simply put the x,y,z's into lists and pretended.

1Digit..............1 page...........................9^3trits= 1cube

9trits..............81trits............each page now stacks as a Zco-ord.


.00 10 20.

.01 11 21...........10...........20

.02 12 22.




.................... 01

this is the repeated pattern throughout to Address positions

a full 64 (216cubes) can store 5832 decimal digits for each axis in the energy saving 9 bit base 10.

full 64 (216cubes) stores 52487 decimal digits in base 3 (if structure is trits) and a single 1st fractal trit can store 472383 decimal digits.

i say trits because the structure can be more easily addressed by trits \$((81^(81)^(216))^((6561)^(216))\$ = the fractal 64 in sprite2 costumes, 20trit address (1,162,261,467 trits)*3 or (2,324,522,934 bits)*3 for equivelency= 7 TB at 5 bytes per adress

\$((((81^(81)^(216) ^(6561)^(216)^(6561)^(216)^(6561)^(216)^(6561)^(216)^(6561)^(216)^(6561)^(216)^(6561)^3\$ =81 trits. a page of structure or 162 bits to address (if wordsize was not an issue).

Please Again, i ask can someone explain what i have done wrong or have misunderstood, if you have a problem, tell me. do not simply downvote for the question to be deleted leaving me no better off.

I have used a representation/simulation of a structure (buried in a busy scratch project) that can be used to express complicated relations succinctly. I am asking if anyone had found structures useful enough to build rather than simulate. could structures not simply be a more ordered word size?

For now i think others can make better use of this (link to scratch profile) if you can dig out the best bits of my efforts. (i have used 'dimensions' often in my project to mean discrete values.)

Thank you :D

  • \$\begingroup\$ I'm having trouble making much of your "scratch" possibly because I've never used it before which makes the specifics hard to follow. But does the question mainly condense down to if you could implement trits and/or arbitrary word sizes in hardware and if some devices actually do that? \$\endgroup\$ – PeterJ Jun 18 '15 at 12:29
  • \$\begingroup\$ largely, yes. but far from arbitrary. currently base2 word sizes are, i believe, the only standard. a necessary one, i understand. the question is more like "has anyone even questioned this standardization's limitations?" how much more energy does it take to keep using this standard for very complicated tasks? i compare scratch to base2. it makes life very easy for simple things, much harder for difficult things. why keep using scratch? because i already know how to do useful things with it... \$\endgroup\$ – Illimitable Jun 18 '15 at 12:42
  • 1
    \$\begingroup\$ What is "9 bit base 10"? Could you give some examples of this representation? Why use it rather than, say, binary-coded-decimal? Could you give a simple, 2D, worked example for how you're handling rotations without trig? \$\endgroup\$ – pjc50 Jun 18 '15 at 13:52
  • \$\begingroup\$ @pjc50 9 bit base 10 is the energetically lowest representation for decimal i could make up. (abs (-1 +((abs currentZ-180)/90) is the trig replacement. i simply add the mouseclick distance from centre screen to the stored orientation x,y to look around in exactly the same way as the lateral motion adds onto the stored position as shown. within particular brackets the stored orientation 'looks' at particular quadrants 1-8. i will work on a simple example for you - a working camera is in the project. \$\endgroup\$ – Illimitable Jun 18 '15 at 14:13
  • 1
    \$\begingroup\$ And what is the advantage of this representation? It requires a lot more bits than base-2. \$\endgroup\$ – pjc50 Jun 18 '15 at 14:22

Addressing only this...

Are only word sizes used as structural elements in machine computation?

word sizes, where 8 bits can represent a 2^128 dimension register and all others are combinations of this? If the first answer is yes, why are structures not used in hardware?

8 bits can represent only 256 discrete values. So in what sense can 256 discrete values represent a 2^128 anything?

Furthermore, in what sense can a "word size" (a small integer with an assigned meaning) be considered a "structural element"? (which will be normally understood by your audience here as a gate, or a flipflop, or a higher order construct composed of these - for example a register, multiplexer, arithmetic unit, memory etc)

You will need to clarify these points, and likewise improve your communication of every part of your question, because we cannot answer what we cannot understand.

The rest of the question appears to relate to a coding scheme whereby n-dimensional coordinates can be encoded into a number such as an address, therefore allowing rotations by swapping bitfields ... provided that such rotations are 90 or 180 degrees and thus simple axis swaps - it seems that any such scheme falls apart hopelessly as soon as you need an arbitrary rotation such as one degree or one radian : unless explained otherwise I see no gain from further contemplating the notion.

[Note : if a moderator should deem this not an answer and convert it to a comment : I quite understand]

  • \$\begingroup\$ thank-you very much for being informative. i am trying to use the words i have read appropriately but have taught myself. \$\endgroup\$ – Illimitable Jun 18 '15 at 12:08
  • \$\begingroup\$ the rotations are included as an aside. simply an idea of representation that includes any angle and diameter in a single xyz. if read appropriately. you are correct, as written they will not compute correctly. \$\endgroup\$ – Illimitable Jun 18 '15 at 12:18
  • 1
    \$\begingroup\$ Then a suggestion : delete the entire aside, explain the central part of the question, and make it standalone, self-contained, independent of that Adobe Flash website. \$\endgroup\$ – Brian Drummond Jun 18 '15 at 12:27
  • \$\begingroup\$ deleted the asides, tried to tidy up presentation but i have kept the links, moving them to the bottom, incase anyone wants to dig in :D \$\endgroup\$ – Illimitable Jun 18 '15 at 13:16
  • \$\begingroup\$ i have edited what i hope is a more interesting aside. i have read also that simulating a quantum superposition is impossible. i read this after doing it but this is not particularly relevant to the structure, except to add additional tools to manipulate what can be represented, so i'll keep it as a comment. \$\endgroup\$ – Illimitable Jun 20 '15 at 10:41

I think Scratch is limiting you here. In Verilog, when defining hardware, you can have whatever bus width you want. Nine bits? No problem!

Very occasionally you see this in real hardware, such as the PIC's 14-bit wide instructions.

You can also, in conventional computing, just allocate normal power-of-two bytes and words and only use part of them. Or you can pack and unpack bitfields with bit manipulation.

Compression standards often operate on packed bits. H264 for example is a bitstream that isn't necessarily aligned on 8-bit boundaries.

  • \$\begingroup\$ awesome, i will have to look into bitfields and verilog more. what i have found is that while it is possible to portray whatever i want in most languages; any size register, nine bit busses etc, the actual working of this information is reorganized by the time it reaches the hardware. very clever stuff but at the huge scales im considering this will cause some difficulties or take significantly more time. the bonus of structured 9 bit base 10 is, say, 50 million can be represented entirely by the position of the only active bit - a 1 in the 5th position of the 10's of millions. (2,2,3) \$\endgroup\$ – Illimitable Jun 18 '15 at 15:19
  • \$\begingroup\$ That's not a bonus, that's a massive disagvantage! \$\endgroup\$ – pjc50 Jun 18 '15 at 15:25
  • \$\begingroup\$ why is that a massive disadvantage? \$\endgroup\$ – Illimitable Jun 18 '15 at 15:28
  • \$\begingroup\$ Do you not see why representing a number that could easily be represented with just 32 (or even 26) bits instead with 63 bits that are required for this "bit position decimal" is a disadvantage? \$\endgroup\$ – pjc50 Jun 18 '15 at 15:28
  • \$\begingroup\$ (Now that you've explained this, it sounds closest to what's called "one hot encoding", which is occasionally used, but not for large numbers) \$\endgroup\$ – pjc50 Jun 18 '15 at 15:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.