DMUG-Archiv 2006

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

FW: Antwort: Re: Indizierung von Tables mit Null beginnen.

wünschenswert wäre es doch (nicht nur bei Part sondern generell bei allen system funktionen) bei umdefinition von 
Part[] innerhalb der neudefinition auf das originale Part[] zugreifen zu können.

in etwa so auf die art:

NewPart[x_List, n_Integer] := Part[x, n + 1];
Unprotect[Part];
Part /: Part[x_List, n_Integer] := NewPart[x, n];
Protect[Part];

funktioniert aber so nicht weil in der neudefinition von Part[] aufs eben auch auf das neue Part[] zugegriffen wird und 
somit eine nicht sinnvolle  rekursion erzeugt wird.

l.g. robert

-----Original Message-----
From: Jens-Peer Kuska [mailto:kuska@XXXXXXX.de] 
Sent: Monday, March 13, 2006 1:50 PM
To: Nowak Robert; Udo und Susanne Krause
Cc: Richard Gollreiter; demug@XXXXXXX.ch
Subject: Re: Antwort: Re: Indizierung von Tables mit Null beginnen.


Hallo,

also die Bemerkung "fast keine Zeit verbraucht" is 
ja wohl
ein Witz, man probiere

SetAttributes[myPart, HoldFirst]
myPart[a_, i_Integer] := a[[i + 1]]
SetAttributes[udoPart, HoldFirst]
udoPart[a_, i_Integer] := First[RotateLeft[a, i]]
Timing[
Table[
  k = Random[Integer, {0, Length[test] - 1}];
  myPart[test, k], {100000}
 ]
] // First
im Gegensatz zu
Timing[
Table[
  k = Random[Integer, {0, Length[test] - 1}];
  udoPart[test, k], {100000}
 ]
] // First

das Erste dauer bei mir 1.266 Sekunden, die 
Version mit
RotateLeft[] is nach unglaublichen 144.14 Sekunden 
fertig.

Gruß
  Jens

----- Original Message ----- 
From: "Nowak Robert" <robert.nowak@XXXXXXX.at>
To: "Udo und Susanne Krause" 
<su.krause@XXXXXXX.ch>; "Jens-Peer Kuska" 
<kuska@XXXXXXX.de>
Cc: "Richard Gollreiter" <RGollreiter@XXXXXXX.de>; 
<demug@XXXXXXX.ch>
Sent: Monday, March 13, 2006 12:05 PM
Subject: RE: Antwort: Re: Indizierung von Tables 
mit Null beginnen.


| hallo udo,
|
| > Part /: Part[x_List, n_Integer] :=
First[RotateLeft[x, n]]
|
| wie funktioniert deine lösung eigentlich, wieso
wird für das rotieren scheinbar keine zeit 
verbraucht ?
| wird das array nur ein einziges mal rotiert und
bei den individuellen zugriffen nicht mehr wenn 
ja, wodurch ?
|
| l.g. robert
| 





Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html