PDL :: Internals

PDL :: Internals is een PERL-module die een beschrijving van enkele aspecten van de huidige internals bevat.
Download nu

PDL :: Internals Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Tuomas J. Lukka
  • Uitgever website:
  • http://search.cpan.org/~lukka/WeakRef-0.01/WeakRef.pm

PDL :: Internals Tags


PDL :: Internals Beschrijving

PDL :: Internals is een Perl module die een beschrijving van een aantal aspecten van de huidige inwendige bevat. PDL :: Internals is een Perl module die een beschrijving van een aantal aspecten van de huidige internals.IntroThis document worden verschillende aspecten van de huidige implementatie van PDL. Als je gewoon wilt PDL gebruiken voor iets, je hoeft zeker niet nodig om dit te lezen. Zelfs als u wilt uw C routines interface naar PDL of nieuwe PDL :: PP functies, hoeft u niet nodig om deze man pagina te lezen (hoewel het informatief kan zijn). Dit document is vooral bedoeld voor mensen die geïnteresseerd zijn in het opsporen van fouten of het veranderen van de interne keuken van PDL. Om dit te lezen, is een goed begrip van de taal C en programmeren en datastructuren in het algemeen vereist, evenals een aantal Perl begrip. Als u lezen via dit document en het allemaal te begrijpen en in staat zijn om te wijzen wat een deel van dit document verwijst naar de PDL kern bronnen en bovendien moeite hebben om PDL :: PP begrijpen, wordt u beloond met de titel "PDL Guru" ( natuurlijk, de huidige versie van dit document is zo incompleet dat dit bijna onmogelijk uit alleen deze notes) .WARNING: Als het lijkt erop dat dit document heeft gekregen verouderd, informeer de PDL portiers e-maillijst (PDL-porters @ jach.hawaii.edu). Dit kan goed happen.PiddlesThe pdl dataobject algemeen een opaak scalaire verwijzing naar een pdl structuur geheugen. Als alternatief kan een hash referentie met de PDL veld met de scalaire referentie (deze merken overbelasting piddles makkelijk Zie PDL :: Objects). U kunt gemakkelijk bij de Perl niveau welk type piddle u te maken met. Het voorbeeld code hieronder laat zien hoe het te doen: # check of dit een plasje sterven "niet een plasje" tenzij UNIVERSAL :: isa ($ PDL, 'PDL'); # Is het een scalaire ref of een hash ref? if (UNIVERSAL :: isa ($ PDL, "HASH")) {sterven "geen geldige PDL" tenzij bestaat $ pdl -> {PDL} UNIVERSAL :: isa ($ PDL -> {PDL}, 'PDL'); afdrukken "is een hash referentie", "het veld PDL bevat scalaire Refn"; } Else {print "Dit is een scalaire ref die verwijst naar het adres $$ pdl in memoryn"; } De scalaire referentiepunten om het numerieke adres van een structuur van het type C pdl die gedefinieerd in pdl.h. Voor het omzetten van het object op het niveau Perl en C structuur die de actuele data en structurele dat maakt een plasje gebeurt door de PDL typemap. De functies die in de PDL typemap vrij veel worden gedefinieerd op de top van het bestand pdlcore.h. Dus wat doet de structuur eruit: struct pdl {unsigned long magicno; / * Altijd winkels PDL_MAGICNO als een sanity check * / / * Dit is de eerste dus de meeste wijzer toegangen tot verkeerde type worden gevangen * / int staat; / * Wat zit er in deze PDL * / pdl_trans * trans; / * Ondoorzichtige verwijzing naar internals transformatie van ouder * / * pdl_vaffine vafftrans; leegte * sv; / * (Optioneel) pointer terug naar de oorspronkelijke sv. Controleer ALTIJD voor niet-nul voor gebruik. We kunnen niet inc refcnt op dit ene of we nooit krijgen vernietigd * / void * datasv; / * Pointer naar SV met gegevens. Refcnt inced * / void * gegevens; / * Null: geen gegevens alloced voor deze ene * / int nvals; / * Hoeveel waarden toegewezen * / int datatype; PDL_Long * dimt; / * Serie van gegevensdimensies * / * PDL_Long dimincs; / * Array Toenameregeling data default * / short ndims; / * Aantal gegevensdimensies * / unsigned char * threadids; / * Vanaf index van de draad indexreeks n * / unsigned char nthreadids; pdl * voorlopercellen; / * Ik ben in een gemuteerde familie. make_physical_now moet me te kopiëren naar de nieuwe generatie. * / Pdl * future_me; / * Ik ben de "dan" PDL en dit is mijn "nu" (of meer moderne versie, toch * / pdl_children kinderen, korte living_for; / * perl kant niet verwezen, verwijderen me als * / PDL_Long def_dims ; / * vooraf toegewezen ruimte voor efficiëntie * / PDL_Long def_dimincs ; / * vooraf toegewezen ruimte voor efficiëntie * / unsigned char def_threadids ; struct pdl_magic * tovenarij void * hdrsv; / * "header", instelbaar van buitenaf * /} ; Dit is een heel structuur voor slechts het opslaan van sommige gegevens in - wat is er aan Vereisten:? · Perl


PDL :: Internals Gerelateerde software