05AB1E, 11 9 11 7 bytes
.²Šm*`›
Port of @Arnauld's JavaScript and @digEmAll's R approaches (I saw them post around the same time)
-2 bytes thanks to @Emigna
+2 bytes as bug-fix after @Arnauld's and @digEmAll's answers contained an error
-4 bytes now that a different input order is allowed after @LuisMendo's comments
Input as [a1,b1]
, [a3,b3]
, [a2,b2]
as three separated inputs.
Try it online or verify all test cases.
Explanation:
.² # Take the logarithm with base 2 of the implicit [a1,b1]-input
Š # Triple-swap a,b,c to c,a,b with the implicit inputs
# The stack order is now: [log2(a1),log2(b1)], [a2,b2], [a3,b3]
m # Take the power, resulting in [a2**a3,b2**b3]
* # Multiply it with the log2-list, resulting in [log2(a1)*a2**a3,log2(b1)*b2**b3]
` # Push both values separated to the stack
› # And check if log2(a1)*a2**a3 is larger than log2(b1)*b2**b3
# (after which the result is output implicitly)