On 10 September 2010 21:42, Raul Miller <[email protected]> wrote:
> On Fri, Sep 10, 2010 at 4:07 PM, Justin Paston-Cooper
> <[email protected]> wrote:
>> What newFromWeight is doing is reflecting the weight in the mirrors n
>> where the nth components of the weight are positive, and then keeping
>> those approved by addVP. Could it be done differently? ("n reflect
>> weight" means reflecting in the nth mirror)
>
> Ok, but this raises a new question: what is a mirror?  (I suspect I need
> to know both the conceptual and the arithmetic definition for mirror.)
>
> I currently do not see any "mirror" names in the code, which should
> mean that this is an easy or trivial concept?

I mirror is just a (n-1) dimensional plane in n-dimensional space with
which one does reflections. Imagine a normal mirror (a plane) in three
dimensions or a line in two dimensions. You can do reflections along
these hyperplanes. I am trying to generate all of the unique elements
in a group.

Weights are points in n-dimensional space which have a special
property and they can be reflected in the n mirrors of the group in
question.depthFirst and byLevel work by successively applying
reflections to previous weights to new weights. If the initial weight
is n$1, then there is a one-to-one correspondence between the weights
and the group elements.

The special property of weights is that they are expressed in such a
way (they are expressed in the basis of a certain multiple of the
respective perpendicular vectors to the n mirrors) that it is trivial
and efficient to do reflections, and one needs only the Cartan Matrix
(A), the cartan matrix. In the practical context, weights are just
lists of length n and newFrom weight gives an unpredictable number of
new lists of length n. In byLevel, all of these weights must be
collected in one table for the next level.

>
>> The weight is a vector in n-dimensional space. Each weight is in a
>> vector space that is acted upon by a group generated by n reflections
>> in mirrors as embodied by the Cartan Matrix. Each row in the Cartan
>> Matrix corresponds to a certain reflection. It encodes the dot product
>> between a certain perpendicular vector to the mirror corresponding to
>> itself and those of all of the other reflections. A reflection acting
>> on a weight produces a new weight which is on the opposite side of the
>> mirror corresponding to the reflection.
>
> Is "A" the Cartan Matrix?
>
> Also, what do you mean by "encodes" here?
>
>> When the orbit is calculated with the initial vector n $ 1, one gains
>> a 1-to-1 correspondence to the elements in the group generated by the
>> reflections. That's the reason why I'm generating these weights.
>
> What does "orbit" mean?
If we have a group G acting on a set S, then the orbit under G of an
element s of S is the set of {g * s | g in G}. In this instance, it is
all the weights resulting from applying reflections to an initial
weight. byLevel (1 1 1 1;A;10) is the orbit of {1,1,1,1} under the
group corresponding to the Cartan Matrix A. The maxLevel (10) is the
maximum number of reflections with which an element in the group need
be represented. Every element in the group may be represented as a
product of the n reflection functions.

Let's say that we reflect the weight by the 1st, 2nd and then 3rd
reflections and gain the weight a b c d. then we say that (r_3 * r_2 *
r_1) 1 1 1 1 = a b c d. The group element r_3*r_2*r_1 acts on the
weight 1 1 1 1 to give the weight a b c d. The Cartan Matrix gives the
information needed to do a reflection in any of the n mirrors.

>
> Would simple examples make these explanations easier?
>


>>>  y - y *&(x&{) m
>> Is there a reason here why you haven't used &: ? Am I right in
>> thinking that they & and &: are interchangeable in this case?
>
> When u and v are verbs, and v has infinite rank, then u&v and
> u&:v do the same thing (Compose and Appose achieve the
> same end in that case).
>
> However, in the above code, x is not a verb but is a noun, so
> &: would not work (Appose is not Bond).
>
> Bond:  http://www.jsoftware.com/help/dictionary/d630n.htm
> Compose:  http://www.jsoftware.com/help/dictionary/d630v.htm
> Appose:  http://www.jsoftware.com/help/dictionary/d632.htm
>
>> There's a varying amount of new weights from each weight in the
>> current level. Is there still a solution?
>
> I imagine so, but I still do not really know what a weight is
> (you tried to explain it to me but I did not understand your
> explanation -- your explanation used words which I suspect
> have technical meanings that I need to understand).
>
> Before I can do a non-trivial job of refactoring the code, I have
> to understand it (though if I put enough time into it I can do
> achieve understanding through inspection).
>
> --
> Raul
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>

Justin
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to