This is an improved version of the acos function with input argument check:

function  y=acos1(x)
    // Check if components are real
    is_real  =  imag(x)==0;
    // Leave real-only components
    x1  =  is_real.*x;
    // Check if components are real and belong to [-1, 1]
    in_domain  =  is_real  &  (-1<=x1  &  x1<=1);
    // Imaginary part of acos(x) is accepted only if
    // x does not belong to [-1, 1]
    y  =  in_domain.*real(acos(x))  +  (~in_domain).*acos(x);
endfunction


This works on vectors and arrays as well. Unfortunately i couldn't find a component-wise isreal() function, otherwise it would have been simpler!

Federico Miyara


On 29/01/2019 12:58, Stéphane Mottelet wrote:
It is the same if x is slightly > 1:

--> x=1+%eps
 x  =

   1.


--> acos(x)
 ans  =

   2.107D-08i

--> format(25); x
 x  =

   1.0000000000000002220446

Le 29/01/2019 à 16:55, Carrico, Paul a écrit :

When I scroll to the list, the lowest (positive) value is 8.4^E -08 (works fine) and no %eps .

How Can I check if %eps is in?

*De :*users [mailto:users-boun...@lists.scilab.org] *De la part de* Stéphane Mottelet
*Envoyé :* mardi 29 janvier 2019 16:50
*À :* users@lists.scilab.org
*Objet :* [EXTERNAL] Re: [Scilab-users] acos leads to complex values

Le 29/01/2019 à 16:45, Carrico, Paul a écrit :

    Dear All

    I spent some time in looking for a mistake in my code ; finally
    I’ve found that the ACOS of a real vector leads to some complex
    values (???)

    acos(Scar_P(:,1)./CM_x_CN(:,1))

Are your really sure, because we may have

--> x=-1-%eps
 x  =

  -1.


--> acos(x)
 ans  =

   3.1415927 - 2.107D-08i

S.

    (the formula worked so far)

    I checked that the input values are correct:

    -Comprised between [-1; 1] using MIN and MAX

    -Composed only of real values using ISREAL (all the vectors are
    correct)

    Thus I do not understand why complex values appear ?

    May it come from the vectorization ?

    Paul



    _______________________________________________

    users mailing list

    users@lists.scilab.org <mailto:users@lists.scilab.org>

    
https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
    
<https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/urldefense.proofpoint.com/v2/url?u=https-3A__antispam.utc.fr_proxy_1_c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy_lists.scilab.org_mailman_listinfo_users&d=DwMG-g&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXfJhZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=rN8DsnGalih7CBHModSb9evOi3rmZRFFYcBFHTC71gU&s=RgKyyESZ7uSTxlU7V0nR42XTJybjC0Ar5fDcrouQThE&e=>

--
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/urldefense.proofpoint.com/v2/url?u=http-3A__www.utc.fr_-7Emottelet&d=DwMG-g&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXfJhZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=rN8DsnGalih7CBHModSb9evOi3rmZRFFYcBFHTC71gU&s=34gC0H3RYWxwcKp7fr4bR5XFfy1acxO72YI9AYJJFhA&e=>

_______________________________________________
users mailing list
users@lists.scilab.org
https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users


--
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet


_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users



------------------------------------------------------------------------
Avast logo <https://www.avast.com/antivirus>      

El software de antivirus Avast ha analizado este correo electrónico en busca de virus.
www.avast.com <https://www.avast.com/antivirus>


<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>


---
El software de antivirus Avast ha analizado este correo electrónico en busca de 
virus.
https://www.avast.com/antivirus
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to