portur.top

  

Bästa artiklarna:

  
Main / Fortran 90 där uttalande i mysql

Fortran 90 där uttalande i mysql

Genom att använda vår webbplats bekräftar du att du har läst och förstått vår cookiepolicy, integritetspolicy och våra användarvillkor. Det finns ett problem men det verkar svårt att förstå vad som exakt händer. Jag skulle vilja förvandla den till DO-IF-struktur för att felsöka. Detta är nästan samma som i Marks svar förutom den andra maskdelen se nedan. Viktiga utdrag från F2008-dokumenten är ungefär så här :. Om en elementoperation eller funktionsreferens förekommer i expr eller variabel för en where-assignment-stmt eller i en mask-expr, och inte finns inom argumentlistan för en nonelemental funktionsreferens, utförs operationen eller funktionen utvärderas endast för de element som motsvarar verkliga värden för kontrollmasken.

B i Fortran anger inte ordningen för utvärderingen. Men som nämnts i ovanstående tråd kan det faktiska beteendet bero på kompilatorer ... Till exempel om vi sammanställer följande kod med gfortran5. Som en sidoanteckning, när vi använder "icke-elementära" funktioner i WHERE-konstruktioner, gäller inte kontrollmasken och alla element används i funktionsutvärderingen enligt sek.

Till exempel följande kod. Jag kommer inte att säga att det inte kan göras med kapslade var, men jag förstår inte varför det måste vara.

Om du sedan måste översätta för att göra loopar är översättningen väldigt enkel. Dina egna försök föreslår att du tänker på var som en slags loopkonstruktion, jag tycker att det är bättre att tänka på det som ett maskerat uppdrag, vilket är hur det förklaras i språkstandarden där varje enskild uppgift sker samtidigt.

I dessa dagar kan du överväga att översätta till samverkande konstruktioner. Ledsen för att avböja frågan lite, men det här är intressant. Jag är inte säker på att jag kan berätta hur den kapslade var kommer att sammanställas. Det kan till och med vara ett av de fall som skjuter kuvertet. Jag håller med High Performance Mark att var är bäst att betrakta som en maskeringsoperation och då är det oklart för mig om din "A" eller "B" kommer att resultera.

Jag tror att hans lösning borde vara densamma som din kapslade var. Min poäng: Eftersom det är svårt att ens urskilja, kan du skriva ny kod istället för detta, från grunden? Inte för att översätta det, utan ta bort det, glöm det och skriv kod för att göra jobbet. Om du vet exakt vad denna kod behöver göra, dess förhållanden före och efter, bör det inte vara svårt. Om du inte vet det kan algoritmen vara för intrasslad i vilket fall detta ska skrivas om ändå.

Det kan finnas subtiliteter involverade mellan vad detta var tänkt att göra och vad det gör. Du säger att du redan felsöker den här koden.

Återigen, ledsen att byta sammanhang men jag tror att det finns en möjlighet att detta är en av de situationer där kod bäst betjänas av en fullständig omskrivning. Om du vill behålla det och bara skriva loopar för felsökning: Varför inte skriva dem och jämföra utdata? Kör den med var den är, kör den sedan med "A" istället och sedan med "B". Skriv ut värden. Alla matriser har samma storlek. Det verkar, härledd genom att testa Det inre var är effektivt ett if-block som fungerar på det enskilda elementet som identifieras av det yttre där masken.

Det skulle göra omvandlingen lätt och det verkar som att "alternativ B" är korrekt. Varför om standarderna tillåter denna tvetydiga konstruktion istället för att bara använda if är en bra fråga. Viktiga utdrag från F2008-dokumenten är ungefär så här: Mask-expr utvärderas högst en gång. Till exempel följande kod heltal, dimension 4 :: Jag samlade information från nätet ledsen för ett långt inlägg!

Det här var hela poängen! Jag gillar definitivt din inställning. Är de exakt desamma jämfört med den jag skrev? Jag tror också att det gör detsamma. Det är min fråga. Registrera dig eller logga in Registrera dig med Google. Registrera dig med Facebook.

Registrera dig med e-post och lösenord. Lägg upp som gästnamn. E-post krävs, men visas aldrig. Kunskapsteknik: visas på Meta. Tagg synonym instrumentpanel 2.

Vi testar annonser i hela nätverket. Relaterade 389. Heta nätverksfrågor. Frågeflöde. Stack Overflow fungerar bäst med JavaScript aktiverat.

(с) 2019 portur.top