Brick product (InstanceTopic, 3)
From Hi.gher. Space
Revision as of 16:16, 4 January 2012
The brick product is a very generalized operation, written as Q = P{A1, A2, ..., An}. P is called the operator and Ai are called the operands. Their values must satisfy the following constraints:
- P must be a brick.
- The dimensionality of P must equal n.
The resultant shape Q will have the following properties:
- The dimensionality of Q will be the sum of the dimensionalities of Ai.
- Q will be a brick if and only if all Ai are bricks.
- Q will be convex if and only if both P and all Ai are convex.
Definition
For each point x = (x1, x2, ..., xn) in P, the brick symmetry guarantees that (-x1, x2, ..., xn) is also in P. This means the line segment between these two points has length 2x1. In fact, for any 1 ≤ i ≤ n, a line segment can be constructed between (x1, ..., xi, ..., xn) and (x1, ..., -xi, ..., xn) with both endpoints in P, by definition of brick symmetry of P, each with length 2xi. Collect these lengths into an array l(x) = (l1, l2, ..., ln) = (2x1, 2x2, ..., 2xn).
Now, for each point x, we form the Cartesian product A1|l1 × A2|l2 × ... × An|ln, where the notation Ai|li means the operand Ai scaled by the length li.
Then Q = P{A1, A2, ..., An} is the union over all x in P of the surfaces of the Cartesian products A1|l1 × A2|l2 × ... × An|ln.
As a concise expression:
Q = ⋃{ surface( ∏{ Ai|2xi | 1 ≤ i ≤ n } ) | x ∈ P }
where ⋃ represents the union of all members of a set, ∏ represents the Cartesian product of all members of a set, and surface(X) is a function mapping X to its preceding frame, i.e. reduces the net space of X by one while keeping the bounding space the same.