core bitshifter als ersatz für multiplikation und division

Hier sollen alle kleinen Minilösungen und sonstiges Nützliches hinein

Moderator: herw

Antworten
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

core bitshifter als ersatz für multiplikation und division

Beitrag von toxonic »

wird vielleicht dem ein oder anderen doch noch nicht bewusst sein, deswegen hau ich's hier mal in die fundgrubenrubrik... :D
die bitshifter module in core (built in module/bit/bit>> und bit<<) sind in einigen fällen hervorragend als ersatz für multiplikation und division geeignet, wenn eingangswerte integer sind und die ergebnisse vorher auch schon als integer bekannt sind!
da diese module ja nix anderes machen als den anliegenden integer wert in eine binärzahl zu verwandeln und die einzelnen bits nach links/rechts zu verschieben, halbiert man den wert pro bit verschiebung nach rechts bzw. verdoppelt ihn pro bitverscheibung nach links, d.h. angenommen ein wert von 64 liegt am bit>> an und man verschiebt jetzt die bits um eine stelle, liegt am ausgang der wert 32 an, bei 2 stellen der wert 16, bei 3 stellen der wert 8, u.s.w.....
da im prinzip damit nur divisionen und multiplikationen mit durch 2 teilbaren zahlen möglich ist, schränkt das zwar die verwendbarkeit ein, aber ist in vielen fällen immer noch brauchbar, etwa bei der umrechnung von notenwerten u.s.w..... der eigentliche vorteil ist natürlich die cpu ersparnis, da so eine binär operation kaum so viel cpu power saugt, wie eine komplexe rechenprozedur wie etwa die division...
Benutzeravatar
herw
moderator
Beiträge: 3123
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: core bitshifter als ersatz für multiplikation und divisi

Beitrag von herw »

ja gut, dass Du das erwähnst. Die ganzen Bitoperatoren habe ich bisher noch nie benutzt. Ich denke, dass man damit einiges anfangen kann, nicht nur die Multiplikation oder Division, die Du hier ansprichst. Interessant sind da auch die Logik-Funktionen und die Benutzung der Maske.
Mir fällt nur im Augenblik auch noch keine Anwendung ein, aber man kann fast sicher sein, dass die Entwickler von NI diese Operatoren nicht ohne Hintergedanken hier anbieten.
Meist stellt man erst nach einigen Jahren (?!?!) deren Wert fest.

ciao herw
Zuletzt geändert von herw am 19. Juli 2007, 22:41, insgesamt 1-mal geändert.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Re: core bitshifter als ersatz für multiplikation und divisi

Beitrag von toxonic »

herw hat geschrieben:ja gut, dass Du das erwähnst. Die ganzen Bitoperatoren habe ich bisher noch nie benutzt. Ich denke, dass man damit einiges anfangen, nicht nur die Multiplikation oder Division, die Du hier ansprichst. Interessant sind da auch die Logik-Funktionen und die Benutzung der Maske.
Mir fällt nur im Augenblik auch noch keine Anwendung ein, aber man kann fast sicher sein, dass die Entwickler von NI diese Operatoren nicht ohne Hintergedanken hier anbieten.
Meist stellt man erst nach einigen Jahren (?!?!) deren Wert fest.

ciao herw
mir ist aufgefallen, das ich in kaum einer corecell je einen bit-operator gesehen habe, daher hab ich mich gefragt, was es damit genau auf sich hat..... ich muss zugeben, das binärsystem ist mir eher fremd, habe mich damit kaum befasst, also habe ich meinen mitbewohner mal um nachhilfe gebeten, der von beruf programmierer ist und mathe studiert hat. der hat mich auf den trichter mit den bitshiftern gebracht!
btw: die logik funktionen sind mir soweit bekannt, aber was hat es mit den masken auf sich, von denen du sprichst? weiss nicht was du damit meinst!?
die anderen bitoperatoren sind mir in ihrer funktion jetzt zwar auch klar, aber eine anwendungsmöglichkeit ist mir da bisher auch noch nicht eingefallen!
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

klingt interessant.
nur blöd, das audio selten im entsprechenden teilerfaktor vorliegt und bei event dürfte sich der gewinn im bereich der messunschärfe abspielen.

btw: ich hab mal n cpu vergleich zwischen multiply, realis und selektor gemacht (um das signal nur zu muten).
der laie denkt vielleicht hier, das n realis eigentlich günstiger als ne 0-multi sein soltte, da diese ja pro SR takt stattfindet. is aber nicht - nimmt sich beides nichts. nur vom selector ist abzuraten, auch bei curve = none (ergo relais mode), frist der manchmal entschieden (ca. 0.03% bei höchster SR) mehr. seltsamerweise nicht immer, aber ich gebs auf, mir darüber gedanken zu machen;)
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
herw
moderator
Beiträge: 3123
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

helmsklamm hat geschrieben:klingt interessant.
nur blöd, das audio selten im entsprechenden teilerfaktor vorliegt und bei event dürfte sich der gewinn im bereich der messunschärfe abspielen.

btw: ich hab mal n cpu vergleich zwischen multiply, realis und selektor gemacht (um das signal nur zu muten).
der laie denkt vielleicht hier, das n realis eigentlich günstiger als ne 0-multi sein soltte, da diese ja pro SR takt stattfindet. is aber nicht - nimmt sich beides nichts. nur vom selector ist abzuraten, auch bei curve = none (ergo relais mode), frist der manchmal entschieden (ca. 0.03% bei höchster SR) mehr. seltsamerweise nicht immer, aber ich gebs auf, mir darüber gedanken zu machen;)
ok es wäre mal interssant, alle Ensembles herauszusuchen, die den Bitshifter benutzen, um festzustellen, was der Clou daran ist.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

also wenn man das teil konseqeunt bei allen in frage kommenden eventberechnungen ersetzt, kommt man bei umfangreichen ensembles vielleicht uffn halbes prozentchen bei heutigen prozies.

ich denk mir das ding MUSS nen andren nutzen haben. vielleicht ist der "quotient" garnicht relevant, sondern nur der "nenner" oder vv. villeicht muss nur ein "operator" ganzzahlig sein und das teil spilet seine stärken aus.
aber das ist reine spekulation.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
tymes2
meister
Beiträge: 118
Registriert: 10. Mai 2006, 16:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von tymes2 »

helmsklamm hat geschrieben:btw: ich hab mal n cpu vergleich zwischen multiply, realis und selektor gemacht (um das signal nur zu muten)..." "...nur vom selector ist abzuraten, auch bei curve = none (ergo relais mode), frist der manchmal entschieden (ca. 0.03% bei höchster SR) mehr. seltsamerweise nicht immer, aber ich gebs auf, mir darüber gedanken zu machen;)
Dir ist aber schon klar, dass das RELAY laut Infotext nur zur "backward compatibility" da ist und das Ctl-Signal anders interpretiert wird?! Daher würde ich eher vom Relay abraten... wo kriegst Du eigentlich Zahlen wie "0,03% mehr" her? Nur mal so interessehalber.
Grüssung-> Jo.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

jo, den text kenn ich*, glaub ich aber nicht - das ding ist effizienter. zur "zahl" : nen cpu-modul und nen quantiziertes numerik (2 nachkommas) und dann intensiv beobachten. besser wär natürlich ein 50 mhz rechner oder so.

*mich stört natürlich auch das das relais bei >1 genau den anderen eingang ausgibt als der selektor, beliebte äh-was-denn-nu-schon-wieder fehlerqeulle;)
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
Triton
synthesist
Beiträge: 58
Registriert: 1. August 2010, 17:22
Wohnort: Gießen
Kontaktdaten:

Re: core bitshifter als ersatz für multiplikation und division

Beitrag von Triton »

Modulo 2^n mit Integer geht prima damit.

Wenn man z.B. eine Integer X hat und diese modulo 512 braucht, kann man X AND 511 nehmen. Kann man z.B. zum Bauen von Delays (Kreisbuffer) oder bei der EzFFT gebrauchen.
Antworten