1

Téma: Speciální funkce, nemožné vytvořit v SDS-C (např WindChill)

Vím, že je to využitelné jen pro zlomek uživatelů, ale možná by se dala postupně budovat knihovna funkcí, které by mohly být součástí SDS-C (a nedají se samozřejmě naprogramovat přímo pomocí SDS-C).
Jedná se mi třeba o výpočet Wind Chill  (nebo Heat Index) teploty; ve vzorci jsou využité reálné mocniny. Momentálně mi SDS vrací jen teplotu a vítr a já si pak externě počítám tu WindCill teplotu, ale je zbytečné počítat ji na x-místech, když by ji mohlo vypočíst přímo SDS.

int wind_chill (int tepl, int vitr_kmh) 
{
  if (tepl<=1000 && vitr_kmh>=468) //obě hodnoty jsou ve fixed point na 2 desetinná místa, t=10 st. C, v=4.68 km/h
    return 100*(13.12 + 0.6215 * tepl/100.0 - 11.37 * (vitr_kmh/100.0)^0.16 + 0.3965 * tepl/100.0  * (3.6*vitr_kmh/100.0)^ 0.16);
  else
    return tepl;
}

Pro HeatIndex je ten vzorec ještě složitější, ale opět hlavně kvůli reálným mocninám (a pár konstatntám), celkově jsou ale takové funkce jednoduše programovatelné přímo v ARM.