Calculate the Kronecker symbol
Python 3, 747 369 335 bytes
As an example answer, only slightly golfed, and to give you an idea of what an answer will look like.
And yes, the prime factorization and run-length-encoding bits are cribbed from Pyth with apologies to isaacg.
from itertools import*
def k(d,r):
if d<0:a=-d;m=1
else:a=d;m=0
if r==1:return 1
p=1;w=r;n=2;f=[]
while n*n<=w:
while w%n<1:w//=n;f+=n,
n+=1
if w>1:f+=w,
z=[[k,len(list(g))]for k,g in groupby(f)]
for i,j in z:
if i==2:p*=pow(-1,(a*a-1)//8)
x=pow(a,(i-1)//2,i)
if x>1:x-=i
p*=x**j
if m:p*=pow(-1,(r-1)//2)
return p
LabVIEW, 44 Bytes LabVIEW Primitives
Since its symetrical i swapped the inputs if a was bigger than b.
Represents the real formula now
counting like always according to
for true case
Mathematica, 169 175 165 bytes
(1|-1)~k~0=_~k~1=1
_~k~0=0
a_~k~-1=If[a<0,-1,1]
a_~k~2=DirichletCharacter[8,2,a]
a_~k~p_/;PrimeQ@p=Mod[a^((p-1)/2),p,-1]
a_~k~b_:=1##&@@(a~k~#^#2&@@@FactorInteger@b)