Citrus Freeze Protection

Ok, I think I've got it all together. This is all so new to me, but I like it and have already ordered my own UNO (can anyone recommend a kit with various components and jumpers?) .

I do have some operand errors in my code I would appreciate some guidance in...

freezeprotection.cpp:42:76: error: invalid digit "9" in octal constant
freezeprotection.cpp: In function 'void loop()':
freezeprotection:38: error: invalid operands of types 'double' and 'double' to binary 'operator^'
freezeprotection:38: error: expected primary-expression before '.' token
freezeprotection:38: error: expected unqualified-id before '(' token
freezeprotection:38: error: invalid operands of types 'float' and 'int' to binary 'operator^'
freezeprotection:40: error: expected ;' before 'if' freezeprotection:61: error: expected }' at end of input

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

const int critical = -3; //critcal plant freezing temp in degree C
const int relay = 5; //soleniod relay  
float wetbulb = 0;

#include "DHT.h"

#define DHTPIN 2     // what pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

DHT dht(DHTPIN, DHTTYPE);



void setup() {
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
 pinMode(relay, OUTPUT); 
  dht.begin();
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
    wetbulb=(t*atan(.151977*(h+8.313659)^.5))+atan(t+h)-atan(h-1.676331)+.(00391838*(h^(2/3)))*atan(.023101*h)-4.686035

  if (wetbulb <= critical) {
  digitalWrite (relay, HIGH);   //wetbulb below critical trips relay

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
     
     Serial.print("Wetbulb");
     Serial.print(wetbulb);
     Serial.print("*C");
     Serial.print("Critical");
     Serial.print(critical);
     Serial.print("*C");
  }
}}